Bag of Words(BoW)
개요
Bag of Words란 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법이다.
BoW 생성 과정
BoW는 만드는 과정은 다음과 같다.
우선, 각 단어에 고유한 인덱스를 부여한다.
각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만든다.
가령, 아래와 같은 문서에 대하여 각 단어들을 다음과 같은 BoW로 변환 하고 할 경우 다음과 예제 코드를 통해 BoW를 수행할 수 있다.
문서: 정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다.
BoW: ('정부': 0, '가': 1, '발표': 2, '하는': 3, '물가상승률': 4, '과': 5, '소비자': 6, '느끼는': 7, '은': 8, '다르다': 9)
BoW는 각 단어가 등장한 횟수를 수치화하는 텍스트 표현 방법이기 때문에, 주로 어떤 단어가 얼마나 등장했는지를 기준으로 문서가 어떤 성격의 문서인지를 판단하는 작업에 주로 사용된다. 즉 이번 프로젝트의 주제와 매우 유사한 방식이라는 것을 알 수 있다.
생성된 BoW를 바탕으로 불용어 전처리
불용어는 자연어 처리에서 별로 의미를 갖지 않는 단어를 뜻한다.
각 단어에 대한 빈도수를 수치화하겠다는 것은 결국 텍스트 내에서 어떤 단어들이 중요한지를 보고 싶다는 의미이며, 이는 주제 분석에 사용되지 않는 불용어를 제외하는 것만으로도 어느 정도의 정확도 개선에 도움이 된다고 볼 수 있다.
불용어 처리의 경우, 사용자가 직접 지정하여 불용어 사전을 만들어 낼 수도 있고, 아래와 같이 nltk와 같은 상용 라이브러리에서 지원하는 사전을 사용할 수도 있다.
Last updated