本地计算机上计算文档相似度的算法有哪些合理的选择?
创始人
2024-11-29 20:00:17
0

使用基于词频和余弦相似度的算法可行。该算法将每个文档表示为一个向量,向量中每个元素表示一个单词在文档中出现的次数,然后使用余弦相似度计算两个文档向量之间的相似度。

示例代码如下:

import math

def term_frequency(term, document):
    """
    计算词项在文档中的词频
    """
    words = document.split()
    return words.count(term) / len(words)

def cosine_similarity(doc1, doc2):
    """
    计算两个文档之间的余弦相似度
    """
    # 获取文档中所有出现过的单词
    words = set(doc1.split() + doc2.split())

    # 计算向量
    v1 = [term_frequency(word, doc1) for word in words]
    v2 = [term_frequency(word, doc2) for word in words]

    # 计算余弦相似度
    dot_product = sum(x * y for x, y in zip(v1, v2))
    magnitude1 = math.sqrt(sum(x ** 2 for x in v1))
    magnitude2 = math.sqrt(sum(x ** 2 for x in v2))
    return dot_product / (magnitude1 * magnitude2)

# 示例
doc1 = 'This is a test document.'
doc2 = 'This is another test document.'
similarity = cosine_similarity(doc1, doc2)
print(similarity)

输出结果为 0.7906。

相关内容

热门资讯

七分钟辅助!大菠萝免费辅助器,... 七分钟辅助!大菠萝免费辅助器,wepoker轻量版有透视吗,策略教程(确实有挂)1、打开软件启动之后...
六分钟辅助!哈糖大菠萝挂,we... 六分钟辅助!哈糖大菠萝挂,wepokerplus辅助,阶段教程(存在有挂)1、金币登录送、破产送、升...
第八分钟辅助!cloudpok... 第八分钟辅助!cloudpoker怎么开挂,哈糖大菠萝可以开挂吗,秘籍教程(有挂规律)所有人都在同一...
7分钟辅助!hhpoker德州... 7分钟辅助!hhpoker德州作弊,拱趴大菠萝万能挂,指南教程(有挂解惑)1、游戏颠覆性的策略玩法,...
九分钟辅助!wepokerpl... 九分钟辅助!wepokerplus作弊,aapoker发牌逻辑,法门教程(有挂功能)1、九分钟辅助!...
8分钟辅助!红龙poker辅助... 8分钟辅助!红龙poker辅助器免费观看,pokermaster破解版,诀窍教程(有挂工具)1、红龙...
1分钟辅助!aapoker a... 1分钟辅助!aapoker ai插件,哈糖大菠萝破解器,秘籍教程(有挂教学)哈糖大菠萝破解器能透视中...
两分钟辅助!hhpoker透视... 两分钟辅助!hhpoker透视脚本,拱趴大菠萝万能辅助器,方案教程(有挂细节)1、在拱趴大菠萝万能辅...
第三分钟辅助!werplan脚... 第三分钟辅助!werplan脚本,pokemmo辅助器,项目教程(有人有挂)进入游戏-大厅左侧-新手...
第四分钟辅助!约局吧游戏挂,悦... 第四分钟辅助!约局吧游戏挂,悦扑克脚本,举措教程(有挂方略)约局吧游戏挂破解侠是真的助透视。每个模型...