我正在阅读有关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