本博自豪的采用PHP7。 PHP是世界上最好的语言,没有之一。

计算两个字符串相识度的Python包python-Levenshtein

NLP admin 572次浏览 已收录 0个评论 扫描二维码

算法维基地址:https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance

 

安装python-Levenshtein模块

pip install python-Levenshtein

使用python-Levenshtein模块

import Levenshtein

1. Levenshtein.hamming(str1, str2)

计算 汉明距离。 要求str1和str2必须长度一致。是描述两个等长字串之间 对应 位置上 不同 字符的个数。如

计算两个字符串相识度的Python包python-Levenshtein

2. Levenshtein.distance(str1, str2)

计算 编辑距离 (也成 Levenshtein距离 )。是描述由一个字串转化成另一个字串 最少 的操作次数,在其中的操作包括 插入删除替换 。如

计算两个字符串相识度的Python包python-Levenshtein

算法实现 参考动态规划整理: http://www.cnblogs.com/kaituorensheng/archive/2013/05/15/3080990.html 。

3. Levenshtein.ratio(str1, str2)

计算莱文斯坦比。计算公式  r = (sum – ldist) / sum, 其中sum是指str1 和 str2 字串的长度总和,ldist是 类编辑距离

注意 :这里的类编辑距离不是2中所说的编辑距离,2中三种操作中每个操作+1,而在此处,删除、插入依然+1,但是替换+2

这样设计的目的:ratio(‘a’, ‘c’),sum=2,按2中计算为(2-1)/2 = 0.5,’a’,’c’没有重合,显然不合算,但是替换操作+2,就可以解决这个问题。

计算两个字符串相识度的Python包python-Levenshtein

4. Levenshtein.jaro(s 1 , s 2 )

计算jaro距离,

计算两个字符串相识度的Python包python-Levenshtein

其中的 m 为s 1 , s 2 的匹配长度,当某位置的认为匹配 当该位置字符相同,或者在不超过 计算两个字符串相识度的Python包python-Levenshtein

t是调换次数的一半

5. Levenshtein.jaro_winkler(s 1 , s 2 )

计算 Jaro–Winkler距离 计算两个字符串相识度的Python包python-Levenshtein

Levenshtein全部函数链接

Jaro–Winkler distance链接

利用python-Levenshtein计算文本相似度

最近写爬虫的时候遇到需要对文本内容进行对比计算相似度,找了很久还真的让我找到个现成的模块 python-Levenshtein 这个模块用法直接用help看吧,我主要用到里面的distance和ratio,其它的暂时还不知道有什么功能。

 


pitata技术乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明计算两个字符串相识度的Python包python-Levenshtein
喜欢 (0)
[103531948@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址