python 文本相似度_python实现的文本相似度算法(余弦定理)

article/2025/9/11 8:24:58

只对汉字进行相似度分析,以单个字为向量,然后每个字在章节中出现的次数,便是以此字向量的值。现在我们假设:

章节1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn;它们在章节中的个数为:Z1n1,Z1n2,Z1n3……Z1nm;

章节2中出现的字为:Z2c1,Z2c2,Z2c3,Z2c4……Z2cn;它们在章节中的个数为:Z2n1,Z2n2,Z2n3……Z2nm;

其中,Z1c1和Z2c1表示两个文本中同一个字,Z1n1和Z2n1是它们分别对应的个数,

最后我们的相似度可以这么计算:6154e7493c054f96815ab4e55edb732b.png

代码如下:

#_*_encoding:utf-8_*_

import math

import time

#---------------------------------------------------------------

# 文本相似度计算

# 值0-1, 越靠近1越相似

#---------------------------------------------------------------

def Similarity(s1, s2):

'''

相似度计算,输入必须为unicode编码,且不为空

仅计算汉字

'''

#汉字U编码 4E00-9FA5

tmp = {}

for i in s1:

a = ord(i)

if 0x4DFF

try:

tmp[a][0] = tmp[a][0] + 1

except:

tmp[a] = [1, 0]

for i in s2:

a = ord(i)

if 0x4DFF


http://chatgpt.dhexx.cn/article/bkVxQDwP.shtml

相关文章

【基础算法 】文本相似度计算

在自然语言处理中,文本相似度是一种老生常谈而又应用广泛的基础算法模块,可用于地址标准化中计算与标准地址库中最相似的地址,也可用于问答系统中计算与用户输入问题最相近的问题及其答案,还可用于搜索中计算与输入相近的结果&…

文本相似度计算——HanLP分词+余弦相似度算法

一、余弦相似度简介 余弦相似度(又称为余弦相似性):是通过测量两个向量的夹角的余弦值来度量它们之间的相似性。余弦值接近1,夹角趋于0,表明两个向量越相似;余弦值接近于0,夹角趋于90度&#x…

文本相似度算法Jaccard相似度(杰卡德相似度)java实现

文本相似度算法 杰卡德相似度,指的是文本A与文本B中交集的字数除以并集的字数,公式非常简单: java代码 import java.util.HashSet; import java.util.Scanner; import java.util.Set;public class StrJaccard {public static void main(Str…

python中文相似度_基于TF-IDF、余弦相似度算法实现文本相似度算法的Python应用

基于TF-IDF算法、余弦相似度算法实现相似文本推荐——文本相似度算法,主要应用于文本聚类、相似文本推荐等场景。 设计说明 使用jieba切词,设置自定义字典 使用TF-IDF算法,找出文章的关键词; 每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于…

NLP文本相似度算法LCS

目录 一、什么是LCS子序列最长公共子序列 二、LCS的应用场景三、LCS的查找方法1. 动态规划法计算LCS的长度和两字符串的相似度2. 回溯算法查找LCS 四、代码实现 一、什么是LCS 子序列 子序列:一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列 最长公共…

文本相似度算法对比分析,判断内容相似的算法有

有哪些算法用于比较两个字符串的相似程度 终于知道怎么判断字符串相似度了 一直不理解,为什么要计算两个字符串的相似度呢rfid。什么叫做两个字符串的相似度。经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面…

文本相似度算法对比分析,短文本相似度主流算法

如何检查多个word文档内容的相似度 工具/材料:电脑、WORD。第一步,打开电脑进入桌面,打开软件进界面。第二步,打开软件进入后,打开相应的文档。第三步,找到上方菜单栏的审阅点击。第四步,点击后…

文本相似度算法总结

文本匹配算法主要用于搜索引擎,问答系统等,是为了找到与目标文本最相关的文本。例如信息检索可以归结成查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配,对话系统可以归结为对话和回复的匹配。 一、传统模型 基于字面…

计算文本相似度

 计算文本相似度 推荐 2 收藏 简单讲解 上一章有提到过[基于关键词的空间向量模型]的算法,将用户的喜好以文档描述并转换成向量模型,对商品也是这么处理,然后再通过计算商品文档和用户偏好文档的余弦相似度。 文本相…

计算文本相似度的常用算法

文章目录 1. 余弦相似度2. TF-IDF模型2.1 词频TF的计算方法2.2 反文档频率IDF的计算方法2.3 TF-IDF的计算方法 3. 基于语义相似度的计算 —— DSSM4. LSI/LSA模型5. LDA模型6. 编辑距离计算7. 杰卡德系数计算8. Word2Vec计算9. BM25 NLP、数据挖掘领域中,文本分析是…

LCS、LIS

LCS是最长公共子序列的表示: 题目链接 代码也十分简单就不敲了。 LIS是最长上升子序列的英文缩写。 (动态规划) O(n2)O(n2) 状态表示:f[i]表示从第一个数字开始算,以w[i]结尾的最大的上升序列。(以w[i]结尾的所有上升序列中属性为最大值的…

LCMV相关的算法

写这个程序的时候,我们遵循如下的设计过程: 第一:设计LCMV; 第二:降秩LCMV; 第三:自适应降秩LCMV; 下面我首先给你捋一下整个算法的大致思路: 输入信号: …

SCC算法求强连通分量简单讲解证明及实现

目录 强连通分量SCC算法简介两个概念dfs结束时间转置图 SCC算法伪代码描述SCC算法正确性证明引理1:引理2:SCC证明不错找不漏找 代码实现 强连通分量 连通分量要求任意两点可达,而强连通分量要求任意两点互相可达,即必须存在a->…

最长公共子串LCS (Longest Common Subsequence) 算法

三个方法都有所借鉴,但代码部分是自己试着写出来的,虽然最后的运行结果都是正确的,但此过程中难免会有考虑不周全的地方,如发现代码某些地方有误,欢迎指正。同时有新的想法,也可以提出! 采用顺序结构存储串…

常考的经典算法--最长公共子序列(LCS)与最长公共子串(DP)

《1》最长公共子序列(LCS)与最长公共子串(DP) http://blog.csdn.net/u012102306/article/details/53184446 https://segmentfault.com/a/1190000007963594 http://www.cppblog.com/mysileng/archive/2013/05/14/200265.html 1. 问题描述 子串应该比…

LCS算法学习

LCS的定义 最长公共子序列,即Longest Common Subsequence,LCS。一个序列S任意删除若干个字符得到新序列T,则T叫做S的子序列;两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列。 字符…

算法系列之六:最长公共子序列(LCS)问题(连续子序列)的三种解法

最长公共子序列(LCS)问题有两种方式定义子序列,一种是子序列不要求不连续,一种是子序列必须连续。上一章介绍了用两种算法解决子序列不要求连续的最终公共子序列问题,本章将介绍要求子序列必须是连续的情况下如何用算法…

Hirschberg的LCS算法实现

解决Longest Common Subsequence(LCS)问题最常用的算法是Dyanmic programing,细节可以参考Ch15.4 of Introduction of Algorithm(2ED), MIT press, p 350。这个算法最大的问题是他的空间复杂度是O(m*n)。这样,当两个序列达到上万个节点时,内存…

SLIC算法

基础知识 在介绍SLIC之前,先来介绍以下Lab颜色空间的介绍。 Lab色彩模型是由亮度(L)要素和与有关色彩的a,b要素组成,L的值由0(黑色)到100(白色),a表示从洋红色至绿色的范围(a为负值表示绿色而正值表示品红),b表示从黄色至蓝色的…

动态规划之LCS算法

一、前言 LCS是Longest Common Subsequence的缩写,即最长公共子序列。一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。 另外还有个分支问题:最长公共子串。子串的字符位置必…