Bag of Words
단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도 (frequency) 에만 집중하는 텍스트 데이터의 수치화 표현 방법
A.1) 장점
- 간단하다.
A.2) 단점
- 단어 간 순서의 정보를 잃게 된다.
- bag of n-grams 모델을 사용하면, 순서 이슈를 어느정도 해소할 수 있다.
- data sparsity & high dimensionality 문제가 존재한다.
- 모델이 단어의 실질적인 의미를 학습하지 못한다. 그래서 bag-of-words 를 통해 얻어진 vector 간 거리가 의미 자체의 다름을 의미하지 않는다.
- Word2Vec 모델을 통해 의미 학습 이슈를 해소할 수 있다.
B) BoW 만들기
- 단어 집합 생성: 각 단어에 고유한 정수 인덱스를 부여함
- 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만듬
C) 예시
doc1 = "정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다."
vocabulary : {'정부': 0, '가': 1, '발표': 2, '하는': 3, '물가상승률': 4, '과': 5, '소비자': 6, '느끼는': 7, '은': 8, '다르다': 9}
bag of words vector : [1, 2, 1, 1, 2, 1, 1, 1, 1, 1]D) Related
E) References
- https://wikidocs.net/22650 (딥 러닝을 이용한 자연어 처리 입문)