全部,
写信是为了看看是否有人对他们认为适用于以下场景的最佳技术有任何意见。无论是 python、solr、redis、memcache 等。
情况如下。
我有 1 亿多个二进制字符串,长度约为 1100 个字符... '0010100010101001010101011....'
您认为执行以下操作最合乎逻辑的方法是什么?
对于给定的相同字符数的字符串,找到最接近匹配项的最有效方法是什么?最接近的意思是在给定位置共享最多的 0 和 1。我相信汉明距离。
我的用例实际上涉及获取 10 万个左右的字符串并尝试在超过 1 亿个字符串的池中找到它们的最佳匹配。
有什么想法吗?无需使用特定的技术,最好使用相当常见的技术。
很想知道大家有什么想法。
谢谢, 骨头
最佳答案
为此,您可以使用 numpy、R 或 MATLAB,或任何其他适用于大型矩阵的工具:
假设您有一个 NxM 矩阵 A,其中 N 是 len(string),M 是字符串的数量。并假设您有一个要匹配的字符串 S。你可以:
- 从 A 中减去 S 的数组版本
- 对(1)的结果取所有元素的绝对值
- 将(2)的结果沿N轴求和
- 对 (3) 的结果进行排序,以找到与 S 距离最短的字符串的索引。
关于python - 比较大量二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52558975/