분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
Python 튜토리얼
Lv1 전처리 python 파이썬 텍스트 데이터 벡터화 복습
안녕하세요 여러분👩🌾👨🌾 오늘은 Bag of Words의 개념에 대해 알아보겠습니다.
머신러닝 모델은 텍스트로 된 변수를 바로 사용할 수 없습니다. 텍스트를 특정 의미가 있는 숫자형 값인 벡터 값으로 변환해야 되는데, 이를 피처 벡터화라고 합니다.🏑🏏
텍스트 데이터를 벡터화 하는 방법은 여러가지가 있지만 그중 가장 단순한 방법인 Bag of Words에 대해 알아 보겠습니다.
Bag of Words란 단어들의 문맥이나 순서를 무시하고, 단어들에 대한 빈도 값을 부여해 변수를 만드는 방법입니다.
BOW를 이용하여 텍스트 데이터를 숫자형 값으로 변환해 보겠습니다.
문장 1 : 나는 축구 하는 것을 좋아합니다.
문장 2 : 나는 주말에 친구들을 만나 함께 축구 하는 것을 좋아합니다. 그리고 나는 친구들을 만나 축구 보는 것을 좋아합니다.
#1 문장1 과 문장2에 있는 모든 단어(중복을 제거한)에 고유의 인덱스를 부여 합니다.
'나는' : 0 , '축구' : 1, '하는' : 2, '것을' : 3, '좋아합니다' : 4, '주말에' : 5 ,' 친구들을' : 6, '만나' : 7 , '함께' : 8, '그리고' : 9 ,' 보는' :10
#2 개별 문장에서 해당 단어가 나타나는 횟수를 각 단어에 표시합니다.
위와 같은 방식으로 텍스트로 된 변수를 숫자형으로 변환 시킬 수 있습니다.
BOW는 단순히 단어의 발생 빈도에 기반하여 텍스트를 숫자형으로 변환 시켜주지만 문장에서 단어의 특징을 나타 낼 수 있어 여러 분야에서 활용도가 높습니다. 하지만 다음과 같은 단점도 존재 합니다.
BOW의 피처 벡터화는 다음과 같이 두 가지 방식이 있습니다.
카운트 기반 벡터화(CountVectorizer), TF-IDF(Term Frequency - Inverse Document Frequency) 기반 벡터화 다음 시간에는 카운트 기반 벡터화에 대해 알아보겠습니다.👨💻👩💻
Bag of Words를 설명하면서 텍스트 데이터를 숫자형 데이터로 변환하는 방법에 대해 알아보았습니다. 복습
그와 마찬가지로, 단어에 값을 부여할 때 각 문장에서 해당 단어가 나타나는 횟수
즉, Count를 부여하는 경우를 카운트 벡터화라고 합니다. 카운트 벡터화에서는 값이 높을수록 중요한 단어로 인식됩니다.
이전에 설명한 카운트 기반 벡터화는 숫자가 높을 수록 중요한 단어로 인식합니다. 하지만 단순히 단어의 빈도만 고려한다면 모든 문서에서 자주 쓰일 수 밖에 없는 단어들이 중요하다고 인식 될 수 있습니다. 이런 문제를 보완하기 위해 TF-IDF(Term Frequency - Inverse Document Frequency) 벡터화를 사용합니다.
TF-IDF는 개별 문서에서 자주 등장하는 단어에는 높은 가중치를, 모든 문서에서 자주 등장하는 단어에 대해서는 패널티를 주는 방식으로 값을 부여 합니다.
예를 들어 총 5개의 문서가 있다고 가정하면, 딥러닝이라는 단어는 5개 문서에서 모두 등장하고, 머신러닝이라는 단어는 1번문서에서만 빈번히 등장한다고 했을때, TF-IDF의 값은 딥러닝이란 단어는 낮게 부여 되고 머신러닝이라는 단어는 높게 부여 됩니다.
문서의 양이 많을경우 보통 TF-IDF 방식의 벡터화를 사용합니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved