相似度计算方法
一、编辑距离
字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字符串A转换成字符串B所需要的最少操作数。其中,字符操作包括:
- 删除一个字符 a) Insert a character
- 插入一个字符 b) Delete a character
- 修改一个字符 c) Replace a character
# https://github.com/doukremt/distance
# pip install distance -i https://pypi.douban.com/simple
import distance
distance.levenshtein("lenvestein", "levenshtein")
二、汉明距离
汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离
汉明距离是编辑距离中的一个特殊情况,仅用来计算两个等长字符串中不一致的字符个数。因此汉明距离不用考虑添加及删除,只需要对比不同即可。
distance.hamming("hamming", "hamning")
三、杰卡德相似系数
杰卡德系数,英文叫做 Jaccard index, 又称为 Jaccard 相似系数,用于比较有限样本集之间的相似性与差异性。Jaccard 系数值越大,样本相似度越高。实际上它的计算方式非常简单,就是两个样本的交集除以并集得到的数值,当两个样本完全一致时,结果为 1,当两个样本完全不同时,结果为 0
distance.jaccard("decide", "resize")
-- EOF --
最后更新于:
2024-08-17 14:44
发表于:
2018-03-05 22:36
标签:
算法