记录相似性 - 奇怪的一个



假设我在一个特定主题上有" n"文档数量,提供了某些详细信息。我想获得与大多数文件不同的文件。尽管看起来很含糊,但我知道如何在2个文档之间找到余弦相似性。但是可以说,我"知道"我有10个彼此相似的文档,我介绍了第11个文档,我需要一种方法来判断该文档与这10个文档的共同相似,而不仅仅是每个单独的文档。

我正在与Scikit Learn合作,因此带有参考的答案或技术会有所帮助!

将每个文档表示为 bag of words,并使用 tf-idf的权重代表特定文档中的单词。然后计算所有n文档的余弦相似性。总和所有相似性值,然后归一化(将最终SIM值除以n)。它应该使您在n文档和目标文档之间具有合理的相似性。

您还可以考虑相互信息(sklearn.metrics.mutual_info_score),kl-divergence以测量两个文档之间的相似性/差异。请注意,如果要使用它们,则需要表示文档作为概率分布。要计算文档中一个术语的概率,您可以简单地使用以下公式:

Probability(w) = TF(w) / TTF(w)

在哪里,

TF(w) = term frequency of word, w in a document, d
TTF(w) = total term frequency of word, w [sum of tf in all documents]

我相信他们中的任何一个都会为您提供有关n文档和您的目标文档之间相似性/差异的合理想法。

相关内容

  • 没有找到相关文章

最新更新