问题标签 [hamming-distance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1862 浏览

algorithm - OCR 的字距算法

我正在使用 OCR 输出,并且正在其中搜索特殊单词。

由于输出不干净,我根据低于特定阈值的字距查找与我的输入匹配的元素。

但是,我觉得 Levenshtein 距离或 Hamming 距离并不是最好的方法,因为 OCR 似乎总是犯同样的错误:I 代表 1,0 代表 O,Q 代表 O……而这些“经典”错误似乎例如,不如“A for K”重要。结果,这些距离不关心角色外观的差异量(低/高)。

是否有任何专门为 OCR 制作的字距算法,我可以使用它更适合我的情况?或者我应该根据字符的视觉差异经验性地实现我的自定义字距?

0 投票
2 回答
271 浏览

python - 旧帖子的解释:附加列表和递归(汉明距离) - Python 3

较早的帖子中有以下代码:

背后的原因是if len(num[item:]) > dist - 1什么?

0 投票
4 回答
10021 浏览

python - 在python中找到一组字符串的最小汉明距离

我有一组 n (~1000000) 个字符串(DNA 序列)存储在一个列表 trans 中。我必须找到列表中所有序列的最小汉明距离。我实现了一个幼稚的蛮力算法,已经运行了一天多,还没有给出解决方案。我的代码是

有没有更有效的方法来做到这一点?这里 hamdist 是我编写的用于查找汉明距离的函数。这是

0 投票
1 回答
350 浏览

sql-server - 古代 Microsoft DBMS 中的汉明距离

问题

我想在 MS SQL Server 7 中查找图像重复和类似图像。

编辑

我使用 sql 游标运行它 - 它很慢但它有效,再次感谢您的评论。请参阅我提出的解决方案的答案。

具体来说 ...

我有一个数据库,其中包含图像路径和借助此 dhash 算法计算的相关图像的指纹。我正在使用一种变体,其中每张图像(水平和垂直渐变)在一列中存储 128 位。BINARY(16)

我希望能够做的事情是:

什么在起作用?

获得精确的重复是微不足道的 - 只需使用 a 就可以了WHERE hash = @hash_to_compare

什么不工作?

但是,我希望能够使用相似性度量(汉明距离)来解释小的操作/缺陷/压缩伪影等。我想出了一个实现距离度量的存储过程:

不幸的是,DBMS(SQL Server 7 - 无法升级/更改它)不会让我用它来计算查询中的距离,并且这块 j*nk 不支持用户定义的函数。果然,我没有找到任何类似 MySQL 的东西BIT_COUNT,这会让 T-SQL 毫无疑问。

是否有希望让它在 SQL Server 7 上的 T-SQL 中工作?

非常感谢帮助!

0 投票
1 回答
1246 浏览

sqlite - 在 sqlite 中计算汉明距离和权重

有没有一种在sqlite中计算汉明距离和重量的好方法?它支持按位运算符,但我想根据汉明权重对结果进行排序,并且 sqlite 不支持位计数。

更详细地说,假设我有这些行: 1011 1000 1100 0011 并且给定第一行(1011),我想得到最后一行(0011),如果你和它们,它有最多的 1。

在我的例子中,这些数字大约有 650 位长,我有大约 3500 行。

我发现这个解决方案适用于文本块,但我想要更优化的东西:

0 投票
2 回答
7991 浏览

c - 在C中快速计算汉明距离

我阅读了有关Hamming Weight的 Wikipedia 文章并注意到一些有趣的事情:

因此它等价于Hamming distance相同长度的全零字符串。对于最典型的情况,一串位,这是字符串中 1 的数量。在这种二进制情况下,它也称为总体计数popcount或横向总和。

[强调我的]

所以我发生了一些事情。我可以通过计算两个字符串之间的汉明距离XOR然后获取结果字符串的汉明权重(POPCOUNT)吗?

与此类似的东西(使用gcc内在函数):


现在,至于我为什么要这样做,好吧,在某些平台上,是的,这只会转化为gcc对计算popcount. 例如,在没有 的 x64 上popcntgcc吐出(Godbolt 的 GCC Online):

OTOH,如果你有一个支持 POPCOUNT 的平台,比如 x64 模型,包括nehalem和之后(有POPCNT),你会得到(Godbolt 的 GCC Online):

这应该更快,尤其是内联后。


但回到最初的问题。你能用两个字符串的异或的汉明权重来找到它们的汉明距离吗?IE:

0 投票
1 回答
276 浏览

map - NetLogo:给定汉明距离删除海龟

对 NetLogo 非常陌生...我有两个品种“疫苗”和“抗体”。每个都拥有一串符号(例如 ["A" "B" "C"])。我希望抗体在它们占据相同的空间并且至少有 2/3 的符号匹配(后者是问题)时去除疫苗。我一直在尝试使用“地图”功能,但无法使其正常工作。请帮忙!这是我尝试过的:

0 投票
2 回答
472 浏览

assembly - 编译与手写程序集的性能差异

我一直在尝试在 Go 中使用汇编语言,并且编写了一个Hamming Weight函数作为练习。

我基于这个 SO 答案构建了一个原生 Go 版本,而汇编版本基于AMD 的这个文档(第 180 页)。在对这两个函数进行基准测试后,我发现原生 Go 版本比汇编版本快大约 1.5 倍 - 2 倍,尽管手写汇编版本几乎与go tool 6g -S popcount.go.

输出自go test -bench=.

popcount.go

popcount_test.go

popcount_amd64.s

输出自go tool 6g -S popcount.go

我从这里知道这些FUNCDATA行包含垃圾收集器的信息,但除此之外我没有看到任何明显的差异。

是什么导致这两个函数之间的速度差异如此之大?

0 投票
1 回答
1034 浏览

c++ - 我应该如何存储和计算二进制代码之间的汉明距离?

  1. 如何有效地存储二进制代码?对于某些固定大小,例如 32 位,可以使用原始类型。但是如果我的二进制代码更长呢?

  2. 计算两个二进制代码之间的汉明距离的最快方法是什么?

0 投票
1 回答
5938 浏览

c++ - 计算两个描述符之间的距离

我正在尝试计算已经计算的两个描述符之间的距离(欧几里得或汉明)。问题是我不想使用匹配器,我只想计算两个描述符之间的距离。我正在使用 OpenCV 2.4.9,并且我的描述符存储在 Mat 类型中:

现在我只想计算描述符1的第1行和描述符2的第1行之间的距离(最好是汉明距离,因为我使用的是二进制描述符)(例如)。

我曾尝试使用 bitwise_xor() 函数,但后来我没有一种有效的方法来进行位计数。有没有计算两个数组之间汉明距离的函数?

我注意到我对 OpenCV 还很陌生,但我很感激任何帮助。谢谢