BOW(Bag of Words), BOW 원리, BOW 특징

CODEDRAGON Development/Big Data, R, ...

반응형


 

 

BOW(Bag of Words)

·         문서 데이터를 고정된 크기의 숫자 벡터로 바꾸는 방법 가장 널리 쓰이는 방법입니다.

·         문서를 이루는 단어의 순서, 의미 등의 정보를 모두 무시하고 오로지 특정한 단어가 문서에 나왔는지만 세어 빈도를 벡터로 표시합니다.

 

https://en.wikipedia.org/wiki/Bag-of-words_model

 

 

 

 

BOW 방법에서는 전체 문서  {d1,d2,…,dn}  구성하는 고정된 단어장(vocabulary)  {t1,t2,…,tm}  만들고  di 라는 개별 문서에 단어장에 해당하는 단어들이 포함되어 있는지를 표시하는 방법입니다.

 

xi,j=문서 di내의 단어 tj 출현 빈도

 

 

또는

 


 

 

 

 

 

 

BOW 원리

·         대부분의 문서가 10,000개의 단어로 구성된다고 가정하겠습니다.

·         단어에 1부터 10,000이라는 번호를 붙입니다. 이를 단어장(vovaulary)이라고 합니다.

·         어떤 하나의 문서를 하나의 숫자 벡터로 바꾸려면 해당 문서에 1 단어가 나오면 숫자 벡터의 첫번째 원소값이 1 되고, 2 단어가 번도 나오지 않는다면 숫자 벡터의 번째 원소값이 0 됩니다. 이러한 방식으로 어떤 길이를 가지는 문서든 10,000개의 길이를 가지는 동일한 크기의 숫자 벡터로 바꿀 있습니다(입력차원이 같은 데이터를 얻을 있습니다).


 

 

 

 

BOW 특징

·         , 문단, 문장, 서식과 같은 입력 텍스트의 구조를 제외하고 단어가 말뭉치에 얼마나 많이 나타나는지만 헤아린다.

·         구조와 상관없이 단어의 출현횟수만 세기 때문에 텍스트를 담는 가방(bag)으로 생각할 있다.

·         BOW 단어의 순서가 완전히 무시 된다는 단점이 있다. 예를 들어 의미가 완전히 반대인 문장인 it's bad, not good at all. it's good, not bad at all. 여기 있는 문장은 의미가 전혀 반대지만 동일한 결과를 반환합니다.

·         이를 보완하기 위해 n-gram 사용하는 BOW 하나의 토큰을 사용하지만, n-gram n개의 토큰을 사용할 있습니다.