TF-idf функция веса с помощью sklearn.функция извлечения.текст.TfidfVectorizer

эта страница:http://scikit-learn.org/stable/modules/feature_extraction.html упоминает:

поскольку TF-idf очень часто используется для текстовых объектов, есть еще один класс под названием TfidfVectorizer что объединяет всех вариант CountVectorizer и TfidfTransformer в одной модели.

затем я следовал коду и использовал fit_transform () в моем корпусе. Как получить вес каждого функция, вычисленная fit_transform ()?

пробовал:

In [39]: vectorizer.idf_
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-39-5475eefe04c0> in <module>()
----> 1 vectorizer.idf_

AttributeError: 'TfidfVectorizer' object has no attribute 'idf_'

но этот атрибут отсутствует.

спасибо

2 ответов


начиная с версии 0.15, оценка TF-idf каждой функции может быть получена с помощью атрибута idf_ на


см. также этой о том, как получить значения TF-IDF всех документов:

feature_names = tf.get_feature_names()
doc = 0
feature_index = X[doc,:].nonzero()[1]
tfidf_scores = zip(feature_index, [X[doc, x] for x in feature_index])
for w, s in [(feature_names[i], s) for (i, s) in tfidf_scores]:
    print w, s

this 0.448320873199
is 0.448320873199
very 0.448320873199
strange 0.630099344518

#and for doc=1
this 0.448320873199
is 0.448320873199
very 0.448320873199
nice 0.630099344518

Я думаю, что результаты нормализуются документом:

>>>0.4483208731992+0.4483208731992+0.4483208731992+0.6300993445182 0.9999999999997548