You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
단어 feature에 값을 부여할 때, 각 문서에서 해당 단어가 나타나는 횟수, 즉 Count를 부여하는 경우 카운트 벡터화라고 한다. 값이 높을수록 중요한 단어로 인식한다.
fromsklearn.feature_extraction.textimportCountVectorizercorpus= ['you know I want your love. because I love you.']
vector=CountVectorizer()
print(vector.fit_transform(corpus).toarray()) # 코퍼스로부터 각 단어의 빈도 수를 기록한다.print(vector.vocabulary_) # 각 단어의 인덱스가 어떻게 부여되었는지를 보여준다.
you와 want가 2번씩 있으므로 중요한 단어로 인식한다.
CountVectorizer는 기본적으로 2자리 이상의 문자에 대해서만 토큰으로 인식하기 때문에 I는 없어졌다.
CountVectorizer에서 제공하는 불용어를 사용하여 제거할 수 있다.
vect=CountVectorizer(stop_words="english")
TF-IDF
카운트 기반 벡터화는 카운트 값이 높을수록 중요한 단어로 인식하기 때문에
불용어와 같은 모든 문서에서 자주 쓰일 수 밖에 없는 단어들이 중요하다고 인식될 수 있다.
이런 문제를 보완하기 위해 TF-IDF(Term Frequency - Inverse Document Frequency) 벡터화를 사용한다.
TF-IDF는 개별 문서에서 자주 등장하는 단어에 높은 가중치를 주되,
모든 문서에서 자주 등장하는 단어에는 페널티를 주고, 해당 문서에서만 자주 등장하는 단어에 높은 가중치를 주는 방식이다.
그렇게 함으로써 해당 단어가 실질적으로 중요한 단어인지 검사한다.
문서의 양이 많을 경우에는 일반적으로 카운트 기반의 벡터화보다 TF-IDF 방식의 벡터화를 사용한다.
fromsklearn.feature_extraction.textimportTfidfVectorizercorpus= [
'you know I want your love',
'I like you',
'what should I do ',
]
tfidfv=TfidfVectorizer().fit(corpus)
print(tfidfv.transform(corpus).toarray())
print(tfidfv.vocabulary_)
https://www.kaggle.com/c/sejong-ai-challenge-p2/overview
The text was updated successfully, but these errors were encountered: