全部
撰写文章,看看是否有人在以下情况下对自己认为最好的技术有所投入。是python,solr,redis,memcache等。
情况如下。
我有1亿+个二进制字符串,长度约为1100个字符... '0010100010101001010101011 ....'
您认为最符合逻辑的方法是执行以下操作?
对于给定的相同字符数的字符串,找到最接近的匹配项的最有效方法是什么?最接近的意思是在给定位置共享最大数量的0和1。我相信汉明距离。
我的用例实际上涉及到100k个左右的字符串,并试图在1亿多个字符串中找到最匹配的字符串。
有什么想法吗?不必使用特定的技术,而最好使用相当普遍的技术。
想知道任何人可能有什么想法。
谢谢, 丁骨
答案 0 :(得分:0)
您可以使用numpy,R或MATLAB或其他适用于大型矩阵的方法:
假设您有一个NxM矩阵A,其中N是len(string),M是字符串数。并说您有一个要匹配的字符串S。您可以:
答案 1 :(得分:0)
您基本上正在尝试在Elasticsearch的汉明空间中进行最近邻居搜索。
对此,[1]中最近提出的FENSHSES方法似乎是Elasticsearch上最先进的方法。
[1] Mu,C,Zhao,J.,Yang,G.,Yang,B. and Yan,Z.,2019年10月。在全文搜索引擎上的汉明空间中进行快速,精确的最近邻搜索。在关于相似性搜索和应用的国际会议上(第49-56页)。湛史普林格。