0

我正在尝试使用 TFIDF 作为相对频率来计算余弦距离。我从一个文档中选择了 10 个单词说:文件 1 并从我的文件夹中选择了另外 10 个文件,使用 10 个单词及其频率来检查 10 个文件中哪些与文件 1 相似。说文件夹中的文件总数是46.我知道 DF(是该单词出现在的文档数) IDF(是 log(文件总数(46)/DF)和 TFIDF(是 TF(一个文档中单词的频率)的乘积)和以色列国防军)

问题:

  1. 假设我上面所说的是 100% 正确,在获得一个文档中所有 10 个单词的 TFIDF 之后说:文件 2,我是否将 10 个单词中的每一个单词的所有 TFIDF 加在一起以获得文件 2 的 TFIDF?

  2. 余弦距离是多少?

谁能帮忙举个例子?

4

1 回答 1

0

问题是您在余弦相似度和 tf-idf 之间感到困惑。虽然前者是衡量两个向量(在本例中为文档)之间的相似性,但后者只是一种设置向量组件的技术,最终将在前者中使用。

特别是您的问题,从每个文档中选择 10 个术语是相当不方便的。我宁愿建议使用所有条款。令 V 为术语总数(集合中所有文档的联合集的基数)。您可以将每个文档表示为 V 维向量。可以将特定文档 D 的第 i 个分量设置为对应于该术语(例如 t)的 tf-idf 权重,即 D_i = tf(t,D)*idf(t)

一旦您以这种方式表示集合中的每个文档,您就可以通过以下方式计算文档间的相似性。

cosine-sim(D, D') = (1/|D_1|*|D'|) * \sum_{i=1}^{V} D_i * D'_i
                  = (1/|D_1|*|D'|) * \sum_{i=1}^{V} tf(t,D)*idf(t)*tf(t,D')*idf(t)  

请注意,此总结中的贡献术语仅是两个文档中出现的那些。如果项 t 出现在 D 中但不在 D' 中,则 tf(t,D')=0,因此总和为 0。

于 2014-07-26T12:28:26.853 回答