BoW (Bag-of-Words)

Bag-of-Words란?

BoW(Bag-of-Words) 모델은 텍스트 분류, 감성 분석, 토픽 모델링과 같은 수많은 NLP(자연어 처리) 응용 분야에서 사용되는 가장 간단한 특징 추출 기법 중 하나입니다. BoW는 문서에서 단어와 기호 같은 고유 특징이 나타나는 횟수를 계수하여 구축됩니다.

이 예에서 MATLAB® 함수 bagOfWords는 arXiv에 게시된 수학 논문의 초록 모음에서 BoW 모델을 만듭니다. 모델을 시각화하는 가장 쉬운 방법 중 하나는 MATLAB 함수 wordcloud(bag)를 사용하여 워드 클라우드를 플로팅하는 것입니다. 더 큰 글꼴과 주황색으로 표시된 단어는 BoW 모델에서 가장 우세(빈번)하게 나타나는 단어입니다.

BoW 모델의 워드 클라우드.
BoW 모델의 워드 클라우드.

BoW 모델을 사용하는 경우

BoW는 이해하고 구현하기 쉽습니다. 따라서 많은 경우에 텍스트 데이터로 모델을 구축하는 데 가장 먼저 사용되는 방법입니다. 그러나 BoW에는 다음과 같은 한계가 있습니다.

  • 문맥의 부족: BoW 모델은 문서에서 특징이 나타나는 순서를 보존하지 않아, 경우에 따라선 중요한 정보를 제거할 수 있습니다. 예를 들어 텍스트 데이터를 분석할 때 문맥이 고려되지 않으면 “is this a good day”와 “this is a good day”가 동등한 것으로 간주됩니다.
  • 예측 불가한 모델 품질: BoW 모델에서 문서의 모든 특징을 포함하는 것은 모델 크기를 늘려 희소성 및 수치적 불안정성을 일으킬 수 있습니다. 유용한 BoW 모델을 구축하려면 문서 텍스트의 세심한 전처리가 종종 필요합니다.

BoW 모델의 대안

몇몇 우수한 모델 대안은 BoW가 갖는 태생적인 한계가 없습니다.

그러나 BoW는 이해하고 구현하기 쉬우며 많은 활용 사례에 충분히 사용 가능합니다. BoW와 기타 텍스트 데이터 관련 모델링 기법에 대해 자세히 알아보려면 MATLAB과 함께 사용하는 Text Analytics Toolbox™를 참조하십시오.

참조: 자연어 처리, 텍스트 분석, 감성 분석, word2vec, MATLAB을 사용한 텍스트 마이닝, 표제어 추출, 어간 추출, n-gram, 데이터 과학, 딥러닝, ngram