本地计算机上计算文档相似度的算法有哪些合理的选择?
创始人
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。

相关内容

热门资讯

线上(wepoke真的)原来是... 线上(wepoke真的)原来是真的有挂!其实真的有挂(2022已更新)(哔哩哔哩);亲,其实确实真的...
两教程(Wepoke程序)软件... 两教程(Wepoke程序)软件透明挂辅助工具(软件透明挂)透视辅助(2024已更新)(哔哩哔哩);致...
软件(wepoke透明)原来是... 软件(wepoke透明)原来是真的有挂!其实真的有挂(2020已更新)(哔哩哔哩)是一款可以让一直输...
一模拟器(德扑工具)外挂辅助工... 一模拟器(德扑工具)外挂辅助工具(透视)透视辅助(2025已更新)(哔哩哔哩);亲真的是有正版授权,...
系统(aapoker讲解)竟然... 系统(aapoker讲解)竟然真的有挂!其实真的有挂(2021已更新)(哔哩哔哩);aapoker讲...
6系统(aapoker下载)外... 6系统(aapoker下载)外挂辅助工具(辅助挂)透视辅助(2023已更新)(哔哩哔哩)aapoke...
智能(德扑之星刷数据)果真真的... 智能(德扑之星刷数据)果真真的有挂!原来真的有挂(2025已更新)(哔哩哔哩);《WPK辅助透视》‌...
1机器人(德州nzt软件)软件... 1机器人(德州nzt软件)软件透明挂辅助软件(透视)透视辅助(2022已更新)(哔哩哔哩);人气非常...
ai代打(德扑之星决策)确实是... ai代打(德扑之星决策)确实是真的有挂!原来真的有挂(2020已更新)(哔哩哔哩);科技详细教程小薇...
第8透明(wepoke数据)外... 第8透明(wepoke数据)外挂透明挂辅助神器(辅助挂)透视辅助(2023已更新)(哔哩哔哩);原来...