草庐IT

Levenshtein

全部标签

php - 使用 PHP Levenshtein 比较 5000 个字符串

我在数组中有5000个(有时更多)街道地址字符串。我想将它们与levenshtein进行比较以找到相似的匹配项。如果不遍历所有5000并将它们直接与其他所有4999进行比较,我该如何做到这一点?编辑:如果有人有建议,我也对替代方法感兴趣。总体目标是根据用户提交的街道地址找到相似条目(并消除重复条目)。 最佳答案 我认为对相似地址进行分组的更好方法是:创建一个包含两个表的数据库-一个用于地址(和一个id),一个用于地址中单词或文字数字的发音(使用地址表的外键)大写地址,用空格替换[A-Z]或[0-9]以外的任何内容按空格拆分地址,计算

php - 字符串相似性算法(比 Levenshtein 和 similar_text 更好)? PHP, JS

我在哪里可以找到比levenshtein()和phpsimilar_text()方法更准确地评估错位字符拼写的算法?例子:similar_text('jonas','xxjon',$similar);echo$similar;//returns60similar_text('jonas','asjon',$similar);echo$similar;//returns60/乔纳斯 最佳答案 这是我想出的解决方案。它基于Tim的比较后续字符顺序的建议。一些结果:乔纳斯/乔纳克斯:0.8乔纳斯/舍纳:0.68乔纳斯/乔纳斯:0.66乔纳

android - 你能解释一下(数学计算)手势示例(Levenshtein)吗?

我在这个link中得到了例子.我无法理解addmove、costLeven和meatureGesture方法。你能一步步解释吗? 最佳答案 看看thispage上的算法因为它包含派生自的原始代码。以下是我对函数作用的总结:addmove:首先它决定鼠标/指针移动的距离是否足以算作要记录的新位置。如果有,则它会确定移动在8个方向中的哪个方向并将其添加到移动列表中。costLeven:计算Levenshteindistance两个序列之间。在这种情况下,它用于测量每个预定义手势序列与用户输入的手势序列之间的距离。它基本上用于根据输入手势

c++ - 在拼写检查器中使用 Levenshtein 距离

我正在使用C++开发拼写检查器,但在实现过程中卡在了某个步骤。假设我们有一个包含正确拼写单词的文本文件和一个我们想要检查拼写错误的输入字符串。如果该字符串是一个拼写错误的单词,我可以通过检查文本文件中的所有单词并选择与它的字母最少的单词来轻松找到它的正确形式。对于这种类型的输入,我实现了一个函数来计算2个字符串之间的Levenshtein编辑距离。到目前为止一切顺利。现在,困难的部分是:如果输入的字符串是拼写错误的单词的组合怎么办?例如,“iloevcokies”。考虑到“i”、“love”和“cookies”是可以在文本文件中找到的词,我如何使用已经实现的Levenshtein函数来

c++ - Damerau–Levenshtein distance (Edit Distance with Transposition) c实现

我在C++中实现了Damerau–Levenshtein距离,但它没有为输入(pantera,主动脉)提供正确的o/p,正确的o/p是4,但我的代码给出了5......inteditdist(strings,stringt,intn,intm){intd1,d2,d3,cost;inti,j;for(i=0;i0&&j>0&&s[i+1]==t[j]&&s[i]==t[j+1])//transposition{d[i+1][j+1]=min(d[i+1][j+1],d[i-1][j-1]+cost);}}}returnd[n+1][m+1];}我没有看到任何错误。有人能找到代码的问题吗

python - 如何在 Python 中对 Levenshtein 距离超过 80% 的单词进行分组

假设我有一个列表:-person_name=['zakesh','oldmanLLC','bikash','goldmanLLC','zikash','rakesh']我正在尝试以这种方式对列表进行分组,以便Levenshteindistance两个字符串之间是最大的。为了找出两个词之间的比例,我使用了一个python包fuzzywuzzy.例子:->>>fromfuzzywuzzyimportfuzz>>>combined_list=['rakesh','zakesh','bikash','zikash','goldmanLLC','oldmanLLC']>>>fuzz.ratio(

python - 如何在 OSX 上导入和使用 python Levenshtein 扩展?

我已经下载了python-Levenshtein存档并提取了Levenshtein目录。所以,结果我有以下文件结构:Levenshtein-__init__.py-_levenshtein.c-_levenshtein.h-StringMatcher.pymyscript.py以及以下myscript.py内容:fromLevenshteinimport*fromwarningsimportwarnprintLevenshtein.distance(string1,string2)但我收到以下错误-Traceback(mostrecentcalllast):File"myscript.

python - 如何加快 Levenshtein 距离计算

我正在尝试运行模拟来测试平均值Levenshteindistance随机之间二进制字符串。我的程序是用python编写的,但我正在使用这个Cextension.相关且花费大部分时间的函数计算两个字符串之间的Levenshtein距离,就是这个。lev_edit_distance(size_tlen1,constlev_byte*string1,size_tlen2,constlev_byte*string2,intxcost){size_ti;size_t*row;/*weonlyneedtokeeponerowofcosts*/size_t*end;size_thalf;/*stri

python - 编辑距离,例如 Levenshtein 考虑到键盘上的接近度

是否有像Levenshtein这样考虑替换距离的编辑距离?例如,如果我们考虑单词是否相等,typo和tylo非常接近(p和l在键盘上物理距离很近),而typo和tyqo相距很远。我想为更可能出现的拼写错误分配更小的距离。必须有一个指标来考虑这种邻近性吗? 最佳答案 你问的那种距离不包括在levenshtein-但你应该使用像欧几里德或曼哈顿距离这样的助手来获得结果。我的简单假设是,q(英文qwerty布局)是笛卡尔坐标(y=0;x=0)所以,w将是(y=0;x=1)等等。wholelistherekeyboard_cartesian

ios - Levenshtein 距离算法优于 O(n*m)?

我一直在寻找一种先进的编辑距离算法,并且thebestIhavefoundsofar是O(n*m),其中n和m是两个字符串的长度。该算法采用这种规模的原因是因为空间,而不是时间,创建了两个字符串的矩阵,例如这个:是否有比O(n*m)更好的公开可用的levenshtein算法?我不反对查看高级计算机科学论文和研究,但一直无法找到任何东西。我找到了一家公司,Exorbyte,据说它已经建立了一个super先进和super快速的Levenshtein算法,但这当然是商业secret。我正在构建一个iPhone应用程序,我想使用Levenshtein距离计算。Thereisanobjectiv