Tfidfvectorizer от sklearn - как получить матрицу - PullRequest
0 голосов
/ 08 января 2019

Я бы хотел получить матрицу из объекта Tfidfvectorizer из sklearn. Вот мой код:

from sklearn.feature_extraction.text import TfidfVectorizer
text = ["The quick brown fox jumped over the lazy dog.",
        "The dog.",
        "The fox"]

vectorizer = TfidfVectorizer()
vectorizer.fit_transform(text)

Вот что я попробовал и получил ошибки:

vectorizer.toarray()
--------------------------------------------------------------------------- 
AttributeError                            Traceback (most recent call last) <ipython-input-117-76146e626284> in <module>()   
----> 1 vectorizer.toarray()

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

еще одна попытка

vectorizer.todense()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-118-6386ee121184> in <module>()
----> 1 vectorizer.todense()

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

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Обратите внимание, что vectorizer.fit_transform возвращает матрицу срочных документов, которую вы хотите получить. Так что сохраните то, что он возвращает, и используйте todense, так как оно будет в разреженном формате:

Возвращает : X: разреженная матрица, [n_samples, n_features]. Tf-idf-взвешенная матрица термина документа.

a = vectorizer.fit_transform(text)
a.todense()

matrix([[0.36388646, 0.27674503, 0.27674503, 0.36388646, 0.36388646,
         0.36388646, 0.36388646, 0.42983441],
        [0.        , 0.78980693, 0.        , 0.        , 0.        ,
         0.        , 0.        , 0.61335554],
        [0.        , 0.        , 0.78980693, 0.        , 0.        ,
         0.        , 0.        , 0.61335554]])
0 голосов
/ 08 января 2019

.fit_transform сама возвращает матрицу сроков документа. Итак, вы делаете:

matrix = vectorizer.fit_transform(text)

matrix.todense() используется для преобразования разреженной в плотную матрицу.
matrix.shape даст вам форму матрицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...