얼렁뚱땅 스며드는 Data Science

Deep Learning/NLP

[NLP] Bag of words

Jesip14 2021. 7. 19. 07:05

Bag of Words

하나의 문장을 하나의 벡터로 표현한 방법 중 하나

 

벡터의 각 원소들은 문장 안의 단어 빈도 수이다. 
위의 방식대로 진행하면 문장을 bag of words로 표현 가능하다.

 

Bag of Words는 머신러닝 모델의 입력값으로 사용이 가능하다. 머신러닝 모델은 string을 입력값으로 받지 못하므로 bag of words로 string을 vector로 변환시킨다.

 

단점

  • sparsity : 실제 사전에는 백만개 이상의 단어들이 존재하기 때문에 문장들을 bag of words로 표현했을 때, vector의 크기가 커지는 반면, 0이 무수히 많아 1이 sparse해진다. 이를 머신러닝 모델에 입력값으로 쓰일때, 연산에 많은 시간과 메모리를 차지하게 된다.
  • Frequent words have big power : the, a 와 같은 관사들이 높은 빈도 수를 보이면 이들의 파워가 매우 세진다. 하지만 실제 데이터에서는 이 단어들이 큰 의미가 있는 것이 아니므로 bag of words를 이용해 분석을 했을 때 원하지 않은 결과가 나올 수도 있다.
  • ignoring word orders 단어의 순서를 없애고 단순한 빈도 수를 표현하므로 문장의 의미가 무시된다.
  • Out of vocabulary : 오타, 줄임말, 슬랭 등 단어들은 처리하기가 어렵다.

 


강의 출처 : [허민석님의 자연어 처리 강의] https://www.youtube.com/watch?v=dKYFfUtij_U&list=PLVNY1HnUlO26qqZznHVWAqjS1fWw0zqnT&index=1

 

'Deep Learning > NLP' 카테고리의 다른 글

[NLP] 자연어 유사도 측정  (0) 2021.07.19
[NLP] TF-IDF  (0) 2021.07.19
[NLP] n-gram  (0) 2021.07.19