전체 문서에 대해 고유한 token, 예를 들어 단어로 이루어진 vocabulary를 작성하여 특정 문서에 각 단어가 얼마나 자주 등장하는 지를 통해 문서의 특성 벡터를 만든다. 각 단어의 출현 횟수 이외의 정보를 제공하지 않지만 텍스트 분류의 효율성을 높여준다.

Term-Documenct Matrix

각 문서에서 단어가 등장하는 빈도를 행렬 형태로 표현한 것이다. 각 문서에 대한 BoW를 행렬로 표현한 것이라 볼 수 있다.

구분메밀꽃 필 무렵운수 좋은 날사랑 손님과 어머니
기차0210
막걸리010
선술집010

Multiclass Classification

다중 클래스 분류를 위해 BoW 와 label 간의 적합도를 반환하는 함수 는 다음과 같이 쓸 수 있다:

여기서 는 feature vector로 각 label에 대한 BoW를 나타낸다. 즉, . 가능한 label을 라고 한다면 이고 는 label이 y인 문서들의 BoW이다.

일반적으로 의 끝에 offset feature 1을 추가하고 나머지 label의 BoW에 0을 추가해준다.

는 BoW와 label 사이의 가중치로 다양한 방법으로 구할 수 있으며, Naive Bayes의 log likelihood를 통해 다음과 같이 구할 수 있다:

요약하자면, 전체 문서에서 각 클래스의 BoW를 조사하고, 각 클래스의 BoW에 가중치 를 곱해주어 BoW 내의 포함된 단어들에 대해 각 클래스에 대한 점수를 나타내는 함수 를 얻는다. 이후 분석하고자 하는 문장의 BoW를 만든 뒤 와 곱해주어 label에 대한 score 얻을 수 있다. 이를 통해 를 다음과 같이 구할 수 있다: