如何比较两个文本文件与tfidf矢量化器?

时间:2018-12-12 17:20:31

标签: python nltk cosine-similarity tfidfvectorizer

我想使用tfidf向量化比较两个不同的文本。 我正在做的是:

  1. 标记每个文档
  2. 使用TFIDFVectorizer.fit_transform(tokens_list)矢量化

现在我在第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]

谢谢。

1 个答案:

答案 0 :(得分:0)

正如G. Anderson所指出的,并为将来的人们提供帮助,当我们在文档D1上使用TFIDFVectorizer的fit函数时,这意味着对于D1而言,单词袋是被构造的。

transform()函数计算单词袋中每个单词的tfidf频率。

现在,我们的目标是比较文档D2和D1。这意味着我们要查看D1与D2匹配的单词数。这就是为什么我们在D1上执行fit_transform()然后仅在D2上执行transform()函数将应用D1的单词袋并计算D2中令牌的倒数的原因。 这样可以得出D1与D2的相对比较。