文本相似度——汉明距离

时间:2022-07-24
本文章向大家介绍文本相似度——汉明距离,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 基本思路

汉明距离定义:在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

示例:

  • 1011101与1001001之间的汉明距离是2。
  • 2143896与2233796之间的汉明距离是3。
  • "toned"与"roses"之间的汉明距离是3。

2 算法实现

2.1 Python 实现

  1. 方法一:
def hamming_distance(chaine1, chaine2):
    return sum(c1 != c2 for c1, c2 in zip(chaine1, chaine2))
  1. 方法二:
def hamming_distance2(chaine1, chaine2):
    return len(list(filter(lambda x : ord(x[0])^ord(x[1]), zip(chaine1, chaine2))))

2.2 Python 包

使用distance

# pip install distance
import distance
print(distance.hamming("hamming", "hamning"))
  1. https://en.wikipedia.org/wiki/Hamming_distance