【问题标题】:Document similarity- Odd one out文档相似度——奇数
【发布时间】:2017-04-18 07:16:45
【问题描述】:

假设我有“n”份关于特定主题的文档,提供了某些详细信息。我想得到那些与大多数文件不相似的文件。尽管这看起来很模糊,但我知道如何找到两个文档之间的余弦相似度。但是可以说,我“知道”我有 10 个彼此相似的文档,我介绍了第 11 个文档,我需要一种方法来判断该文档与这 10 个文档的相似程度,而不仅仅是与每个单独的文档。

我正在使用 scikit learn,因此参考答案或技术会有所帮助!

【问题讨论】:

  • 我的回答对您有帮助吗?如果是,您可以接受。

标签: scikit-learn nlp information-retrieval


【解决方案1】:

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

您还可以考虑使用mutual information (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 文档与您的目标文档之间的相似性/不同性。

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2015-07-02
    • 2011-01-21
    • 2020-07-30
    • 2019-03-14
    • 2023-03-24
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多