파이썬으로 영어와 한국어 텍스트 다루기
https://www.lucypark.kr/courses/2015-dm/text-mining.html
문서 전처리
https://datascienceschool.net/view-notebook/3e7aadbf88ed4f0d87a76f9ddc925d69/
모든 데이터 분석 모형은 숫자로 구성된 고정 차원 벡터를 독립 변수로 하고 있으므로 문서(document)를 분석을 하는 경우에도 숫자로 구성된 특징 벡터(feature vector)를 문서로부터 추출하는 과정이 필요하다. 이러한 과정을 문서 전처리(document preprocessing)라고 한다.
BOW (Bag of Words)
문서를 숫자 벡터로 변환하는 가장 기본적인 방법은 BOW (Bag of Words) 이다. BOW 방법에서는 전체 문서 {D1,D2,…,Dn}{D1,D2,…,Dn} 를 구성하는 고정된 단어장(vocabulary) {W1,W2,…,Wm}{W1,W2,…,Wm} 를 만들고 DiDi 라는 개별 문서에 단어장에 해당하는 단어들이 포함되어 있는지를 표시하는 방법이다.
만약 단어 Wj가 문서Di 안에 있으면 ,→xij=1
만약 단어 Wj가 문서Di 안에 있으면 ,→xij=1
Scikit-Learn 의 문서 전처리 기능
Scikit-Learn 의 feature_extraction.text 서브 패키지는 다음과 같은 문서 전처리용 클래스를 제공한다.
CountVectorizer:
문서 집합으로부터 단어의 수를 세어 카운트 행렬을 만든다.
TfidfVectorizer:
문서 집합으로부터 단어의 수를 세고 TF-IDF 방식으로 단어의 가중치를 조정한 카운트 행렬을 만든다.
HashingVectorizer:
hashing trick 을 사용하여 빠르게 카운트 행렬을 만든다.
from sklearn.feature_extraction.text import CountVectorizer
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?',
'The last document?',
]
vect = CountVectorizer()
vect.fit(corpus)
vect.vocabulary_