운동하는 공대생

[NLP] 워드 임베딩(Word Embedding 1/2)-BOW,Count Vector 본문

Deep Learning/NLP

[NLP] 워드 임베딩(Word Embedding 1/2)-BOW,Count Vector

운동하는 공대생 2022. 12. 28. 13:39
728x90
반응형

 NLP 방식에서 횟수 기반 임베딩(Frequency - based Embedding)은 단어의 빈도수를 바탕으로 하는 NLP 방법이다. 여기서 가장 자주 사용하고 있는 방식은 BOW, Count Vector, TF-IDF Vector 기법이 있다.

BOW

 BOW 방식은 주어진 문장을 형태소 분석을 통해 문자나 단어를 분리하고, 분리된 문자를 인덱스 번호를 부여하여 빈도수로 벡터화를 시키는 방식을 BOW 방식이라고 말한다. 예를 들어, 다음과 같은 단어별로 인덱스를 부여했다고 가정해 보자. 이를 'BOW를 정의했다'라고 한다.

 

  • "I" -------------- 0
  • "teacher" ------- 1
  • "am"------------ 2
  • "top" ----------- 3
  • "a" ------------- 4
  • "girl" ----------- 5
  • "minho" -------- 6

 

 가령 "I am a girl, I am Minho." 라는 문장을 BOW를 이용하여 벡터를 생성하면 [2, 0, 2, 0, 2, 0, 1, 1]로 표현된다. 즉 "I"라는 단어가  비교하는 문장에서 2번 등장했으니 BOW 벡터에서 0번에 2가 된 것이다. 이렇게 BOW 방식은 BOW 벡터를 지정하고 각 단어마다 등장한 빈도를 표시한다.

 

 이 방식의 특징은 단어를 포함하는 문장을 찾을때 유용하다 예를 들면 자신이 찾고자 하는 문장이 포함된 문서를 찾으려고 한다면 이 방식이 효과적이다. 하지만 이 방식의 단점은 문장이 길어지면 벡터값의 표현이 0으로 표현되는 경우가 많아서 처리하는 효율이 떨어진다.

 

Count Vector

 

 이 방식은 BOW의 개념에서 확장을 하는 방식으로 문서마다 설정된 단어를 세어 이를 행렬로 나타내는 방식이다. 여러 문서를 비교할 수 있는 기준을 제공한다. 

 

문서 1: He is a love boy, She is also love.

문서 2: Minho is a love person.

  He She love boy Minho person
문서 1 1 1 2 1 0 0
문서 2 0 0 1 0 1 1

 

이 방식 또한 문장이 길어진다면 역시 효율이 떨어지는 문제가 발생한다.

728x90
반응형
Comments