我想使用tfidf向量化比较两个不同的文本。 我正在做的是:
现在我在第2步之后得到的向量具有不同的形状。 因此,当我使用以下公式时:(((tfidf * tfidf.T).A [0,1],使用相同的单词袋,而对于不同的单词袋使用相同的分数,则得到1.0。
我在做什么错?请帮忙。
请考虑以下示例:
text = ['akshit']
text2 = ['human']
from sklearn.feature_extraction.text import TfidfVectorizer
vectoriser=TfidfVectorizer(stop_words='english')
tfidf = vectoriser.fit_transform(text,text2)
print ((tfidf * tfidf.T).A[0,1]
谢谢。
答案 0 :(得分:0)
正如G. Anderson所指出的,并为将来的人们提供帮助,当我们在文档D1上使用TFIDFVectorizer的fit函数时,这意味着对于D1而言,单词袋是被构造的。
transform()函数计算单词袋中每个单词的tfidf频率。
现在,我们的目标是比较文档D2和D1。这意味着我们要查看D1与D2匹配的单词数。这就是为什么我们在D1上执行fit_transform()然后仅在D2上执行transform()函数将应用D1的单词袋并计算D2中令牌的倒数的原因。 这样可以得出D1与D2的相对比较。