草庐IT

Damerau-Levenshtein

全部标签

Python:使用 scikit-learn 的 dbscan 进行字符串聚类,使用 Levenshtein 距离作为度量:

我一直在尝试对多个URL数据集(每个大约100万个)进行聚类,以找出每个URL的原文和拼写错误。我决定使用levenshtein距离作为相似性度量,同时使用dbscan作为聚类算法,因为k-means算法不起作用,因为我不知道聚类的数量。我在使用Scikit-learn的dbscan实现时遇到了一些问题。下面的代码片段适用于我使用的格式的小型数据集,但由于它是预先计算整个距离矩阵,因此需要O(n^2)的空间和时间,这对于我的大型数据集来说太多了。我已经运行了好几个小时,但它最终占用了我电脑的所有内存。lev_similarity=-1*np.array([[distance.leven

ios - iphone 是否有 Levenshtein 距离或类似的实现?

我想获取在iPhone应用程序中输入的字符串,并使用可能是该词正确拼写的字典中的字符串填充表格View。我了解levenshtein距离是执行此操作的方法,但想知道是否有人知道以任何方式在native执行此操作,或者是否有我可以使用的库? 最佳答案 除了评论中引用的实现,还有一个实现here它为您提供了更多的灵active,并且是为64位构建的。 关于ios-iphone是否有Levenshtein距离或类似的实现?,我们在StackOverflow上找到一个类似的问题:

hadoop - 如何在 Pig Latin 中实现 Levenshtein 算法

我有两个数据集。A{(1,apple),(2,orange),(3,banana)}和B={(1,oracle),(2,ape),(3,naana),(4,orlando),(5,应用程序)(6,横幅)}我有一个udf,它在两个字符串之间给出Levenshtein分数。但是如何计算A中的每个字段与B中的所有字段以获得B中最匹配的字符串。例如,A中“apple”的Levenshtein得分对于app的得分高于B中的ape甲骨文在A中的Levenshtein得分比奥兰多在B中得分更高A中“banana”的Levenshtein得分更多的是naana而不是B中的banner。

php - 为什么 PHP 中的函数 levenshtein 有 255 个字符的限制?

有谁知道为什么函数levenshtein在PHP中有255个字符的限制? 最佳答案 这是函数的PHP完整实现。如您所见,有基于字符串字符长度的嵌套循环:functionlev($s,$t){$m=strlen($s);$n=strlen($t);for($i=0;$ihttps://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#PHPPHP的版本名为levenshtein(),从4.0.1版开始,长度为255个字符。我认为引入限

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(