python 余弦相似性_Python 字符串相似性的几种度量方法

3d549e09a3374a00e7f9b7eaeabaa88f.png

字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。

评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein距离。海明距离是编辑距离的一种特殊情况,只计算等长情况下替换操作的编辑次数,只能应用于两个等长字符串间的距离度量。

其他常用的度量方法还有 Jaccard distance、J-W距离(Jaro–Winkler distance)、余弦相似性(cosine similarity)、欧氏距离(Euclidean distance)等。

python-Levenshtein 使用

使用 pip install python-Levenshtein 指令安装 Levenshtein

bd68627df2207b6da806df4d189d35c6.png

1. difflib

ca3ce43b62a2917477eabd4c59b89209.png

2. hamming距离,str1和str2长度必须一致,描述两个等长字串之间对应位置上不同字符的个数

e0f4896b2d67b35def0a21f8536f2afb.png

3. 编辑距离,描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括 插入、删除、替换

a662c2ffd6f43f03e5451be08d09be86.png

4.计算莱文斯坦比

0a49fe2c97b41b2bedec9396b9c74317.png

5.计算jaro距离

f807d9a2673bfa749dda432093a607ea.png

6. Jaro–Winkler距离

50043abbd19567ebe99f959bf1eff58e.png

输出:

c1d4d8702122627b2cc14c1b62beb26f.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值