我正在阅读有关scikit-learn的TfidfVectorizer implementation的信息,我不明白该方法的输出是什么,例如:

new_docs = ['He watches basketball and baseball', 'Julie likes to play basketball', 'Jane loves to play baseball']
new_term_freq_matrix = tfidf_vectorizer.transform(new_docs)
print tfidf_vectorizer.vocabulary_
print new_term_freq_matrix.todense()

输出:
{u'me': 8, u'basketball': 1, u'julie': 4, u'baseball': 0, u'likes': 5, u'loves': 7, u'jane': 3, u'linda': 6, u'more': 9, u'than': 10, u'he': 2}
[[ 0.57735027  0.57735027  0.57735027  0.          0.          0.          0.
   0.          0.          0.          0.        ]
 [ 0.          0.68091856  0.          0.          0.51785612  0.51785612
   0.          0.          0.          0.          0.        ]
 [ 0.62276601  0.          0.          0.62276601  0.          0.          0.
   0.4736296   0.          0.          0.        ]]

什么是?(例如:u'me':8):
{u'me': 8, u'basketball': 1, u'julie': 4, u'baseball': 0, u'likes': 5, u'loves': 7, u'jane': 3, u'linda': 6, u'more': 9, u'than': 10, u'he': 2}

这是矩阵还是 vector ?,我无法理解告诉我的输出是什么:
[[ 0.57735027  0.57735027  0.57735027  0.          0.          0.          0.
   0.          0.          0.          0.        ]
 [ 0.          0.68091856  0.          0.          0.51785612  0.51785612
   0.          0.          0.          0.          0.        ]
 [ 0.62276601  0.          0.          0.62276601  0.          0.          0.
   0.4736296   0.          0.          0.        ]]

有人能详细解释这些输出吗?

谢谢!

最佳答案

TfidfVectorizer-将文本转换为可以用作估计器输入的特征 vector 。
vocabulary_是一个字典,它将每个标记(单词)转换为矩阵中的特征索引,每个唯一的标记都获得一个特征索引。



它告诉您 token “me”在输出矩阵中表示为功能部件号8。



每个句子是一个 vector ,您输入的句子是带有3个 vector 的矩阵。
在每个 vector 中,数字(权重)代表特征tf-idf得分。
例如:
'julie':4->告诉您在每句话'Julie'出现时,您将具有非零(tf-idf)权重。如您在第二 vector 中所见:

[0. 0.68091856 0. 0. 0.51785612 0.51785612
0. 0. 0. 0. 0.]

第五元素得分为0.51785612-'朱莉'的tf-idf得分。
有关Tf-Idf评分的更多信息,请阅读:http://en.wikipedia.org/wiki/Tf%E2%80%93idf

09-26 19:00
查看更多