欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python计算汉明距离_有效地使用python计算汉明距离

发布时间:2024/7/23 python 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python计算汉明距离_有效地使用python计算汉明距离 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

python中的

distance软件包提供汉明距离计算器:

import distance

distance.levenshtein("lenvestein", "levenshtein")

distance.hamming("hamming", "hamning")

还有一个levenshtein包提供了levenshtein距离计算.最后difflib可以提供一些简单的字符串比较.

在this old question上有所有这些的更多信息和示例代码.

您现有的代码很慢,因为您在最内部循环中重新计算文件哈希值,这意味着每个文件都会多次进行哈希处理.如果先计算哈希值,那么该过程将更有效:

files = ...

files_and_hashes = [(f, pHash.imagehash(f)) for f in files]

file_comparisons = [

(hamming(first[0], second[0]), first, second)

for second in files

for first in files

if first[1] != second[1]

]

这个过程从根本上涉及O(N ^ 2)比较,因此以适合地图减少问题的方式分配这个过程涉及获取完整的字符串集并将它们分成B块,其中B ^ 2 = M(B =字符串块的数量,M =工人数量).因此,如果您有16个字符串和4个工作符,则可以将字符串列表拆分为两个块(因此块大小为8).划分工作的一个例子如下:

all_strings = [...]

first_8 = all_strings[:8]

last_8 = all_strings[8:]

compare_all(machine_1, first_8, first_8)

compare_all(machine_2, first_8, last_8)

compare_all(machine_3, last_8, first_8)

compare_all(machine_4, last_8, last_8)

总结

以上是生活随笔为你收集整理的python计算汉明距离_有效地使用python计算汉明距离的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。