Note

Bag of Words(BOW) 본문

Deep Learning/NLP

Bag of Words(BOW)

알 수 없는 사용자 2021. 7. 16. 16:25
728x90

1. Bag of Words(BOW)

문서가 가지는 모든 단어를 문맥이나 순서를 무시하고 단어에 대한 빈도 값을 부여한 후 피쳐 값으로 추출하는 방식.

 

2. Bag of Words(BOW) 구조

문장 1 : My wife likes to watch baseball games and my daughter likes to watch baseball games too

문장 2 : My wife likes to play baseball

문장 1과 문장 2에 대해서 중복을 제거하고 고유한 인덱스를 부여한다.

and, baseball, daughter, games, likes, my, play, to, too, watch, wife

위의 순서대로 0번부터 10번의 번호를 부여하는 방법.

 

3. Bag of Words(BOW) 장단점

장점 : 쉽고 빠른 구축, 문서의 특징을 잘 나타내어 여러 분야에서 활용도가 높음

단점 :  문맥 의미 반영 문제, 희소 행렬 문제

 

4. Bag of Words(BOW) 피처 벡터화

단순 카운트 기반의 벡터화(CountVectorizer) - 단어 빈도수에 따라 카운트를 부여하는 것. 카운트 값이 높을수록 중요한 단어로 인식

TF-IDF - 카운트만 부여할 경우 문서의 특징보다는 문장에서 자주 사용될 수밖에 없는 단어까지 높은 값을 부여하는데 이를 보완하기 위한 방법. 자주 나타나는 단어에 높은 가중치를 주되, 모든 문서에 전반적으로 자주 나타나는 단어에 대해서 페널티 주는 방식

  • TF - 문서에 해당 단어가 얼마나 나왔는지 나타내는 지표
  • DF - 해당 단어가 몇 개의 문서에 나타났는지 나타내는 지표
  • IDF - DF의 역수로서 전체문서수 / DF

 

5. 희소 행렬

벡터화하는 모델은 너무 많은 0이 메모리 공간에 할당되어 많은 공간을 차지하고 연산할 경우에도

오랜 시간이 소모된다.

  • COO 형식 - 좌표 방식을 의미하며, 0이 아닌 데이터만 별도의 array에 저장하고 그 데이터를 가리키는 행과 열의 위치를 별도의 배열로 저장하는 방식
  • CSR 형식 - COO 형식이 위치 배열 값을 중복적으로 가지는 문제를 해결한 방식. 보다 많이 사용된다.

'Deep Learning > NLP' 카테고리의 다른 글

불용어 (Stopword)  (0) 2021.07.27
정제와 정규화  (0) 2021.07.27
토큰화(Tokenization)  (0) 2021.07.25
텍스트 분석  (0) 2021.07.16
유튜브 댓글 워드 클라우드  (0) 2021.06.09
Comments