[PYTHON] sklearn : TFIDF Transformer : 문서에서 주어진 단어의 tf-idf 값을 얻는 법
PYTHONsklearn : TFIDF Transformer : 문서에서 주어진 단어의 tf-idf 값을 얻는 법
나는 명령을 사용하여 문서의 용어에 대한 TFIDF 값을 계산할 때 sklean을 사용했다.
from sklearn.feature_extraction.text import CountVectorizer
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(documents)
from sklearn.feature_extraction.text import TfidfTransformer
tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts)
X_train_tf = tf_transformer.transform(X_train_counts)
X_train_tf는 scipy 스파 스 매트릭스 형태입니다.
X_train_tf.shape
(2257, 35788)과 같이 출력됩니다. 필통 문서에서 단어에 대해 TF-IDF를 얻으려면 어떻게해야합니까? 더 구체적으로, 주어진 문서에서 최대 TF-IDF 값을 가진 단어를 얻는 방법?
해결법
-
==============================
1.sklearn의 TfidfVectorizer를 사용할 수 있습니다.
sklearn의 TfidfVectorizer를 사용할 수 있습니다.
from sklearn.feature_extraction.text import TfidfVectorizer import numpy as np from scipy.sparse.csr import csr_matrix #need this if you want to save tfidf_matrix tf = TfidfVectorizer(input='filename', analyzer='word', ngram_range=(1,6), min_df = 0, stop_words = 'english', sublinear_tf=True) tfidf_matrix = tf.fit_transform(corpus)
위의 tfidf_matix는 코퍼스에있는 모든 문서의 TF-IDF 값을가집니다. 이것은 큰 희소 행렬입니다. 지금,
feature_names = tf.get_feature_names()
이것은 모든 토큰 또는 n-gram이나 단어 목록을 제공합니다. 귀하의 코퍼스에있는 첫 번째 문서의 경우,
doc = 0 feature_index = tfidf_matrix[doc,:].nonzero()[1] tfidf_scores = zip(feature_index, [tfidf_matrix[doc, x] for x in feature_index])
그 (것)들을 인쇄하게하십시오,
for w, s in [(feature_names[i], s) for (i, s) in tfidf_scores]: print w, s
from https://stackoverflow.com/questions/34449127/sklearn-tfidf-transformer-how-to-get-tf-idf-values-of-given-words-in-documen by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 셀레늄 python find_element_by_class_name () v 2.2에서 작동을 중지 2.21 - '복합 클래스 이름'을 사용할 수 없습니다. (0) | 2018.11.26 |
---|---|
[PYTHON] Windows의 Python 3에서 "로케일 기본 인코딩"변경 (0) | 2018.11.26 |
[PYTHON] Matplotlib 3D 플롯 zorder 문제 (0) | 2018.11.26 |
[PYTHON] 파이썬 문자열 포맷 : % 대 연결 (0) | 2018.11.26 |
[PYTHON] flask-admin 양식 : 필드 1의 값에 따라 필드 2의 값 제한 (0) | 2018.11.26 |