sklearn的TfidfVectorizer

sklearn的TfidfVectorizer

当sklearn的TfidfVectorizer执行每个文档中单词的频率时,我有一个问题。

我看到的示例代码是:

>>> from sklearn.feature_extraction.text import TfidfVectorizer

>>> corpus = [

>>>     'The dog ate a sandwich and I ate a sandwich',
>>>     'The wizard transfigured a sandwich'
>>> ]

>>> vectorizer = TfidfVectorizer(stop_words='english')

>>> print vectorizer.fit_transform(corpus).todense()

[[ 0.75458397  0.37729199  0.53689271  0.          0.        ]
[ 0.          0.          0.44943642  0.6316672   0.6316672 ]]


我的问题是:如何解释矩阵中的数字?我了解0意味着单词(即向导)在第一个文档中出现0次,因此为0,但是如何解释数字0.75458397?第一个文件中出现“吃”这个词的频率是多少?还是整个语料库中出现“吃”这个词的频率?

最佳答案

TF-IDF(意为“术语频率-逆文档频率”)并未为您提供术语表示形式的频率。

TF-IDF对仅在很少文档中出现的术语给出高分,而对在许多文档中出现的术语给出低分,因此它大致上是对术语在给定文档中的区分度的一种度量。查看this资源,以找到对TF-IDF的出色描述并更好地了解其工作情况。

如果只想计数,则需要使用CountVectorizer

关于python - sklearn的TfidfVectorizer词频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35757560/

10-12 19:21