当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/