딥러닝 이전에 단어를 숫자로 나타내는 기법.
여러 문장에 걸쳐 중복되게 사용된 단어라도 Vocabulary에서는 한번만 표현된다.
Vocabulary에 존재하는 단어들을 일종의 categorical data로 볼 수 있어서 one-hot vecotr로 표기해보는 것.
가령, Vocabulary에 8개의 단어가 있다면 8차원의 one-hot vector를 구성하는 것이다.
For any pair of words, the Euclid distance is .
For any pair of words, the cosine similarity is 0. 모든 내적의 조합이 0이니까.
즉, 단어의 의미에 관계없이 모든 단어가 동일한 관계를 가진 형태로 벡터를 표현한다.
One-hot vector로 단어들을 표현했다면 문장을 one-hot vecotr로도 표현 가능하다.
즉, 문장을 모든 단어들의 one-hot vector의 합으로 나타내는 것인데 이것이 Bag-of-Words vector다.
문장이나 문서를 Bag-of-words vector로 표현했을 때, 해당 vector를 특정 category로 분류하는 방법론.
d: document
c: class
즉, 와 를 추정할 수 있다면 NaiveBayes classifier에서 원하는 parameter들을 모두 추정할 수 있다.
학습 데이터 상에 존재하지 않는 입력이 들어올 경우, 해당 단어에 대해서는 $P(w_i|c)이 0이 된다. 즉, 다른 단어들이 특정 class와 아주 밀접한 관련이 있음에도 모든 클래스에 대한 확률이 0이 될 수 있다.
=> regularization을 통해 해결한다고 한다.
와 은 단순히 개수를 세는 것처럼 구할 수도 있지만 실제로는 MLE 등을 활용해 구한다고 한다.