ruby中大型数组中的快速近似字符串匹配

Raz*_*aza 5 ruby algorithm fuzzy-search levenshtein-distance

在Ruby中,我有一个由大约一百万个字符串组成的数组dictionary_array.我有另一个由大约数千个字符串组成的数组arr.

对于每个元素arr,我想找到一个dictionary_array最接近的元素.

迭代每个元素arr,并且arr迭代每个元素dictionary_array以找到具有最小Levenshtein距离的元素是O(n ^ 2)并且对于我的目的而言太慢.

有没有更好的方法来解决这个问题?

sep*_*eph 1

通过向您的问题添加预计算发现了这篇有趣的文章:

http://stevehanov.ca/blog/index.php?id=114

代码是 Python 语言,但应该可以翻译。