Bag of Words
Data Analyst

빅데이터 관련 자료/Dacon

Bag of Words

carpe08 2021. 11. 12. 16:24
320x100
320x100

오늘은 Bag of Words의 개념에 대해 알아보겠습니다.

머신러닝 모델은 텍스트로 된 변수를 바로 사용할 수 없습니다. 텍스트를 특정 의미가 있는 숫자형 값인 벡터 값으로 변환해야 되는데 이를 피처 벡터화라고 합니다.

텍스트 데이터를 벡터화하는 방법은 여러가지가 있지만, 그중 단순한 방법인 Bag of Words에 대해 알아 보겠습니다.

 

Bag of Words(BOW) ? ?

Bag of Words란 단어들의 문맥이나 순서를 무시하고, 단어들에 대한 빈도 값을 부여해 변수를 만드는 방법입니다.

BOW 를 이용하여 텍스트 데이터를 숫자형 값으로 변환해 보겠습니다.

문장1: 나는 축구하는 것을 좋아합니다.

문장2: 나는 주말에 친구들을 만나 함께 축구하는 것을 좋아합니다. 그리고 나는 친구들을 만나 축구 보는 것을 좋아합니다.

 

#1 문장1 과 문장2에 있는 모든 단어(중복을 제거한)에 고유의 인덱스를 부여 합니다.

'나는' : 0 , '축구' : 1, '하는' : 2, '것을' : 3, '좋아합니다' : 4, '주말에' : 5 ,' 친구들을' : 6, '만나' : 7 , '함께' : 8, '그리고' : 9 ,' 보는' :10

 

#2 개별 문장에서 해당 단어가 나타나는 횟수를 각 단어에 표시합니다.

 

이와 같은 방식으로 텍스트로 된 변수를 숫자형으로 변환 시킬 수 있습니다.

BOW는 단순히 단어의 발생 빈도에 기반하여 텍스트를 숫자형으로 변환시켜주지만 문장에서 단어의 특징을 나타낼 수 있어 여러분야에서 활용도가 높습니다. 하지만 다음과 같은 단점도 존재합니다.

  • 문맥 의미를 완벽하게 반영 할 수 없다 : BOW는 단어의 순서를 고려하지 않기 때문에 문맥적인 의미가 완전히 무시 됩니다. 이를 보완하기 위해 n_gram 기법을 활용 할 수 있지만 제한적입니다.
  • 희소 행렬 문제 : 단어가 굉장히 많은 데이터에서 BOW로 텍스트 데이터를 벡터화 하면 행렬 대부분의 값이 0 으로 채워진 희소 행렬 형태로 변환 됩니다. 희소 행렬은 일반적으로 머신러닝의 성능을 떨어뜨립니다.

 

 

BOW의 피처 벡터화는 다음과 같이 두 가지 방식이 있습니다.

카운트 기반 벡터화(CountVectorizer), TF-IDF(Term Frequency - Inverse Document Frequency) 기반 벡터화 다음 시간에는 카운트 기반 벡터화에 대해 알아보겠습니다

320x100
320x100

'빅데이터 관련 자료 > Dacon' 카테고리의 다른 글

CountVectorizer - (2)  (0) 2021.11.16
CountVectorizer - (1)  (0) 2021.11.15
형태소 분석기 - (3)  (0) 2021.11.11
형태소 분석기 - (2)  (0) 2021.11.10
형태소 분석기 - (1)  (0) 2021.11.09