요약
- TF(단어 빈도) * IDF(역문서 빈도)로 특정 문서에서 단어의 중요도를 수치화
본문
TF-IDF = TF * IDF
TF: Terms Frequency
- 특정 문서 d에서 특정 단어 t의 출현 빈도
참고 DTM, Bag of Words
- 띄어쓰기 기준으로 토큰화
DF : Document Frequency
- DF 전체 문서 D에서 특정 단어 t가 등장한 문서 개수
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(df['processed_text'])
word_freq = X.toarray().sum(axis=0)
doc_freq = np.sum(X > 0, axis=0)
total_docs = len(df)
# IDF 및 NIDF 계산
idf_values = np.log(total_docs / (doc_freq + 1))
min_idf = np.min(idf_values)
max_idf = np.max(idf_values)
nidf_values = (idf_values - min_idf) / (max_idf - min_idf)
- 전체 코퍼스에서 유저가 얼마나 다양한 단어를 쓰는지 평균 점수로 나타낼 수 있음