[NLP] Bag-of-Words

지윤곽·2022년 3월 30일
0

NLP

목록 보기
6/6

Bag-of-Words

: 자연어 처리, text-mining 분야에서 딥러닝 기술이 적용되기 이전에 많이 활용된, 단어 및 문서를 숫자형태로 나타내는 가장 간단한 형태의 기술

step1) 문장에서 고유 단어를 뽑아 단어 모음집을 만든다.

sentences : “John really really loves this movie”, “Jane really likes this song”

vocabulary : {John, really, loves, this, movie, Jane, likes, song}

⇒ 각 단어를 범주형 변수로 볼수 있고 이를 one-hot-vector로 변환

step2) 고유 단어들을 one-hot-vector로 변환한다.

각 단어를 범주형 변수로 보고 이를 N(단어의 개수) dimmension vector로 encoding

ex. John : [1 0 0 0 0 0 0 0] ...

  • 각 단어의 거리는 루트 2로 동일하고, 각 단어의 cosine similarity는 0이다. ⇒ 단어의 의미와 상관없이 모두 동일한 관계를 가진다.

step3) one-hot vector의 합으로 각 문장이나 문서를 표현한다. (Bag-of-Words)

  1. John really really loves this movie : [1 2 1 1 1 0 0 0]
  2. Jane really likes this song : [0 1 0 1 0 1 1 1]

Naive based classifier

카테고리 개수 : C (정치, 경제, 사회...), 문서 : d

1) MAP (Maximum a posteriori)

: d given c(d 라는 문서가 c카테고리일 확률)

2) Bayes Rule

P(dc)P(c)=P(w1,w2,,wnc)P(c)P(c)wiWP(wic)P(d \mid c) \mathrm{P}(c)=P\left(w_{1}, w_{2}, \ldots, w_{n} \mid c\right) \mathrm{P}(c) \rightarrow \mathrm{P}(c) \prod_{w_{i} \in W} P\left(\mathrm{w}_{i} \mid c\right)

: c라는 카테고리가 주어졌을 경우에 d(문서)를 이루는 단어 하나하나의 확률을 더한 값(단어는 서로 독립이라고 가정) = 카테고리가 c일 확률

3) Dropping denominator

P(d) : 문서를 선택할 확률. 하지만 우리는 하나의 문서를 고정하고 있기 때문에 상수값으로 무시할 수 있다.

step1) 각 카테고리가 나올 확률을 구한다. (CV, NLP 각각 2개씩 가지고 있기 때문에 1/2)

step2) 각 단어가 카테고리 전체 단어에서 나올 확률을 하나씩 구한다.

ex. task는 CV의 14개 단어 중 1번, NLP의 10개의 단어중 2번 나오기 때문에 1/14, 2/10으로 구할 수 있다.

step3) 결과적으로 카테고리 확률 * 각 단어의 확률의 곱 = 해당 카테고리일 확률

profile
아는게 힘이다

0개의 댓글