[Bag-Of-Words]
1. The problem with Text
머신러닝 모델은 대체로 고정된 길이의 inputs과 ouputs을 요구한다.
이러한 문제 때문에 대표적인 비정형 데이터인 text는 ML에서 작동하기 힘들다.
그래서 text는 숫자(vectors of numbers)로 변환되는 과정을 거치게 되는데,
text가 vector로 표현된 형태를 vector representation 이라고 한다.
e.g.) bag-of-words (occurence / count / frequency / tf_idf / bm25 ) / word2vec / doc2vec
REF : NLP의 기본가정- vector space model
2. What is a Bag-of-words?
1) hypothesis
bag-of-words은 text를 vector로 표현하는 방법 중에 하나이고, '비슷한 문서는 비슷한 단어로 구성되있다.' 라는 가정에서 부터 시작한다.
2) STEP
Step1) 데이터를 모은다.
Step1) Vocabulary(전체 doucument에 등장하는 token들의 set)를 구성한다.
(informative 한 keyword를 추출하기 위해 uni-gram 뿐만 아니라 bi-gram, tri-gram도 고려하기도 함)
Step2) measure에 따라 document들 각각의 벡터를 구한다.
3) Measurement
- occurence : document에 등장했을 경우 1, 아닐경우 0으로 표현
- count : document에 등장한 횟수만큼 표현 (0~n)
- frequency : document에 등장한 모든 token 들 중에서 해당 token이 차지하는 빈도(비율) (0~1)
- tf_idf :
4) “Bag” of words
"Bag"은 "Set(집합)"의 성격을 띄기 때문에 "Bag"내의 순서와 구조가 무시된다.
즉, 오직 token이 그 document에 등장했는지만 고려되고 token들의 순서는 알 수 없다.
5) Example (Measurement : occurence)
"it was the worst of times" = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]
"it was the age of wisdom" = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0]
"it was the age of foolishness" = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]
3. Limitations of Bag-of-words
Simple to understand and implement, easy for customisation but…
1) Vocabulary
Vocabulary에 매우 dependent해서 어떻게 구성 하는가에 따라서 전혀 다른결과가 나올 수 있다.
feature selection을 통해 유의미한 feature만 vocabulary로 구성하는 것이 중요하다.
2) Sparsity
Sparsity가 기본적으로 매우 큰 표현 방법으로써 공간, 시간 복잡도에 악영향을 끼친다.
구성하는 방법에 따라서 simple 해질 수도, complex 해질 수도 있다.
3) Meaning
단어들이 등장하는 순서를 고려하지 않으므로 문맥을 무시하게 된다.
Example)
"That's true, I am not a fan.” vs. ”That’s not true, I am a fan."
-> 전혀 다른 문장인데 같은 vector로 표현됨
used bike vs. old bike
-> 같은 뜻인데 다른 vector로 표현됨
'Data Science > NLP' 카테고리의 다른 글
텍스트 전처리 과정과 사전의 쓰임 (0) | 2019.04.05 |
---|---|
Text Preprocessing (텍스트 전처리) (0) | 2018.11.25 |
NLP 기본 가정 (0) | 2018.11.25 |
Text Similarity (Jaccard Similarity, Cosine Similarity, Euclidean distance) (0) | 2018.11.15 |