计算两个字符串之间的相似度
1.jaccard相似度:字符级别——相同字符的个数占总字符的个数
参考文档:https://blog.csdn.net/u012836354/article/details/79103099
只是衡量两个字符串之间的相同字符的占比,而未考虑字符的排序导致的两个字符的差异
s1="艾伦图灵传" s2="艾伦图灵传" def jaccard_score(s1,s2):print("s1",set(s1))print("s2", set(s2))print("s1&s2", set(s1)&set(s2))print("s1 | s2", set(s1)|set(s2))return len(set(s1)&set(s2))/len(set(s1)|set(s2))print(jaccard_score(s1,s2)) |
s1 {'灵', '传', '艾', '图', '伦'} s2 {'灵', '传', '艾', '图', '伦'} s1&s2 {'灵', '传', '艾', '图', '伦'} s1 | s2 {'灵', '传', '艾', '图', '伦'} score 1.0 |
2.最长公共子字符串的长度*2/(两个字符串的长度和)
动态规划:https://blog.csdn.net/qq_42233538/article/details/103433377
3.Levenshtein距离/编辑距离
是指两个字串之间,由一个转成另一个所需的最少的编辑操作次数。编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。
参考文档: https://blog.csdn.net/ustbclearwang/article/details/81288815
https://www.jb51.net/article/98449.htm
Levenshtein的使用方法
安装方式:pip install python-Levenshtein
Levenshtein.distance(str1,str2)计算编辑距离。是描述一个字符串转化成另一个字串最少的操作次数,在其中的操作包括插入、删除、替换。算法实现:动态规划。
s1="艾伦 图灵传" s2="艾伦•图灵传" print(Levenshtein.distance(s1,s2)) |
输出: 1 |
Levenshtein.hamming(str1,str2)计算汉明距离,要求str1和str2必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数。
s1="艾伦 图灵传" s2="艾伦•图灵传" print(Levenshtein.hamming(s1,s2)) |
输出: 1 |
Levenshtein.ratio(str1,str2)计算莱文斯坦比。计算公式其中sum1是指str1和str2字串的长度总和,ldist是类编辑距离。注意这里是类编辑距离,在类编辑距离中删除、插入依然+1,但是替换+2。
s1="艾伦 图灵传" s2="艾伦•图灵传" print(Levenshtein.ratio(s1,s2)) |
0.8333333333333334 | (12-2)/10 |
Levenshtein.jaro(str1,str2) 计算Jaro距离
参考:https://zhuanlan.zhihu.com/p/99788854
Levenshtein.jaro_winkler(str1,str2) 计算Jaro-Winkler距离
计算两个字符串之间的相似度相关推荐
- 计算两个字符串之间是否包含的简单方法
在前面介绍了两个字符串之间的匹配度 的算法 计算字符串相似度算法-Levenshtein 它解决了字符串A和B之间的相识度的问题,但是我现在遇到了一个新的问题,就是有字符串A是固定值,字符串C包括了字 ...
- ITK:计算两个图像之间的均方度量值
ITK:计算两个图像之间的均方度量值 内容提要 输出结果 C++实现代码 内容提要 计算两个图像之间的均方根度量. 输出结果 来自2张图像的数据通过输出传递: [-10, -10]: 23101.7 ...
- python 两个word文档之间的相似度_如何用 word2vec 计算两个句子之间的相似度?
现在是2018年7月,在这里总结这个问题下已有的答案,并补充一些2017年以来这方面研究的新进展. 从大类上分,计算句子相似度的方法可以分为两类: 1)无监督的方法,即不使用额外的标注数据,常用的方法 ...
- python计算两字符串中的位置_python – 计算两个字符串之间距离的算法
是否有任何字符串距离算法没有考虑到单词的顺序? 以下算法未提供所需结果(在该示例中,所需结果应为1): import jaro jaro.jaro_winkler_metric(u'Michael J ...
- 如何计算两个字符串之间的文本相似度?
如何计算两个字符串之间的文本相似度? 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错或者去重等等,那么我们应该以什么维度来判断相似性呢?这些算法又怎么实现呢?这篇文章对常见 ...
- similartext php,使用PHPsimilartext计算两个字符串相似度,similartext_PHP教程
使用PHP similar text计算两个字符串相似度,similartext 在网站开发中,我们经常使用php similar text 计算两个字符串相似度; 1,similar_text的用法 ...
- python 句子相似度 库_利用python语句的word2vec查找两个句子之间的相似度
我想用word2vectors计算两个句子之间的相似度,我试图得到一个句子向量的向量,这样我就可以计算出一个句子向量的平均值来找到余弦相似度.我试过这个代码,但它不起作用.它给出的输出是带有一的句子向 ...
- Java计算两个字符串日期之间的天数差
Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException {String a = & ...
- 编程之美3.3 计算两个字符串的相似度
假如有两个字符串分别是:abcd,bbcd,那么,这两个字符串不相同的字符个数是1,即第一个字符时不相同的,定义字符串的相似度为 1 / (x + 1),其中,x 就是不相同的字符个数. ...
最新文章
- Redis 到底是怎么实现“附近的人”这个功能的?
- Maven(3)--聚合与继承
- SAP License:SAP顾问该不该参与数据搜集
- Leetcode每日一题:29.divide-two-integers(两数相除)
- python写web界面读取txt_web端自动化——Python读取txt文件、csv文件、xml文件
- qq android qav,33 BK.QQAVManager 音视频管理
- 自动驾驶全球产业链全景图
- origin2021软件
- [Trie树] BZOJ3689: 异或之
- QS世界大学综合最新排名前100名
- 终极dos批处理循环命令详解
- 关于假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
- linux c 编译 未定义的引用,c – Linux makefile中的未定义引用
- 微信小程序添加开发者、赋予权限、添加体验者
- SaaS前端规范架构
- 2022年氯化工艺考试内容及氯化工艺考试报名
- PXE-MOF:EXITING INTEL PXE ROM是什么意思
- Note of Numerical Optimization Ch.3
- slax linux安装到硬盘,在硬盘上完美运行SLAX/FanX
- Error: Could not find tools necessary to compile a package/compilation failed for package
热门文章
- 第十章:如何制定项目目标?
- 志愿人生——带给你每一次温暖
- mac更新go到最新版本
- 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
- Installation failed due to: ‘‘cmd package install-create -r -t --user current --full --dont-kill -t
- zabbix4.4 启动失败分析
- 【LeetCode】初级算法:数组
- 这是?国内跨境电商降本增收营销神器
- iOS 警告 Local declaration of 'XXX' hides instance
- 微信定位真的泄露了你的精确位置