为什么向量化语料的值与通过向量化得到的值不一样idf_
属性?不应该idf_
属性只是以与语料库矢量化中出现的相同方式返回逆文档频率(IDF)?
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = ["This is very strange",
"This is very nice"]
vectorizer = TfidfVectorizer()
corpus = vectorizer.fit_transform(corpus)
print(corpus)
语料库矢量化:
(0, 2) 0.6300993445179441
(0, 4) 0.44832087319911734
(0, 0) 0.44832087319911734
(0, 3) 0.44832087319911734
(1, 1) 0.6300993445179441
(1, 4) 0.44832087319911734
(1, 0) 0.44832087319911734
(1, 3) 0.44832087319911734
词汇和idf_
values:
print(dict(zip(vectorizer.vocabulary_, vectorizer.idf_)))
Output:
{'this': 1.0,
'is': 1.4054651081081644,
'very': 1.4054651081081644,
'strange': 1.0,
'nice': 1.0}
词汇索引:
print(vectorizer.vocabulary_)
Output:
{'this': 3,
'is': 0,
'very': 4,
'strange': 2,
'nice': 1}
为什么这个词的IDF值是this
is 0.44
在语料库中和1.0
当获得时idf_
?