相似度计算方法

一、编辑距离

字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字符串A转换成字符串B所需要的最少操作数。其中,字符操作包括:

# 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
标签: 算法