【问题标题】:Incremental Document Similarity Algorithm增量文档相似度算法
【发布时间】:2013-08-06 20:01:25
【问题描述】:

我正在尝试计算大量动态文本文档之间的相似度。对于静态集,余弦相似度 + tf-idf 之类的东西会很好用。但是,我正在寻找一种方案,该方案允许我添加新文档而无需重新计算整个相似性集。有没有这样的算法?

【问题讨论】:

    标签: algorithm bigdata computer-science


    【解决方案1】:

    您似乎已接近解决方案。只需存储 f(document) 结果的每个实例,然后组合结果。

    映射每个文档的词频并存储:

    d0:
        "the" : 70,
        "quick" : 22,
        "fox" : 1
    
    d1:
        "the" : 42,
        "lazy" : 2,
        "dog" : 13
    

    合并文档并在聚合上评估:

    d0_d1:
        "the" : 112.
        "lazy" : 2,
        "dog" : 13,
        "quick" : 22,
        "fox" : 1
    
    tf_idf(d0_d1)
    

    【讨论】:

    • 但是每次我添加一个文档时,tf-idf 的值都会发生变化,从而使之前添加的文档不再具有相似性。
    • @user1000229 我回答的要点是存储每个文档的映射以备将来使用。一旦你有了一个不可变的映射,key=word,value=occurrence,你就已经完成了大部分的计算。接下来是对要包含的文档的键进行交集并聚合它们的值。通过这个新的映射,您现在可以知道组合文档的词频。
    猜你喜欢
    • 2023-03-24
    • 2011-08-13
    • 2011-07-03
    • 2014-02-25
    • 1970-01-01
    • 2019-10-23
    • 2020-01-25
    • 1970-01-01
    相关资源
    最近更新 更多