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개의 토큰을 사용할 수 있습니다.
'Development > Big Data, R, ...' 카테고리의 다른 글
가설(Hypothesis), Andreas Cellarius의 가설 (0) | 2018.11.09 |
---|---|
검정 vs 검증 (0) | 2018.11.04 |
인공지능신문(Artificial Intelligence Times) (0) | 2018.10.25 |
Titanic: Machine Learning from Disaster (0) | 2018.10.22 |
Fashion-MNIST with tf.Keras (0) | 2018.10.17 |