首页 > 解决方案 > 如何将两个文本文档与 tfidf 矢量化器进行比较?

问题描述

我有两个不同的文本,我想使用 tfidf 矢量化进行比较。我正在做的是:

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

现在我在第 2 步之后得到的向量具有不同的形状。但根据概念,我们应该对两个向量具有相同的形状。只有这样才能比较向量。

我究竟做错了什么?请帮忙。

提前致谢。

标签: pythonnltkcosine-similaritytfidfvectorizer

解决方案


正如 G. Anderson 已经指出的那样,并且为了帮助未来的人,当我们在文档 D1 上使用 TFIDFVectorizer 的拟合函数时,这意味着对于 D1,构建了词袋。

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

现在我们的目标是将文档 D2 与 D1 进行比较。这意味着我们想看看有多少 D1 的单词与 D2 匹配。这就是为什么我们在 D1 上执行 fit_transform() ,然后只有 D2 上的 transform() 函数会应用 D1 的词袋并计算 D2 中标记的逆频率。这将给出 D1 与 D2 的相对比较。


推荐阅读