晚安我从事模糊字符串匹配已有一段时间了,使用带有一些指针的C,我可以非常快速地(满足我的需要)实现两个字符串之间的Levenshtein距离。我尝试使用不安全代码和fixed关键字将代码移植到C#,但性能很慢。所以我选择构建一个C++dll并使用C#中的[DllImport],自动编码每个字符串。问题是,在分析之后,这一直是我程序中最耗时的部分,占程序总运行时间的50-57%。因为我认为我需要对来自大约300万条数据库记录的文本字段的大量子字符串进行一些繁重的工作,所以我认为Levenshtein距离所花费的时间几乎是NotAcceptable。也就是说,我想知道您是否对下面的代码有任
我正在尝试在我的MySQL数据库上进行搜索,以获取包含与搜索最相似值的行。即使最接近的结果截然不同,我仍然想返回(以后我进行字符串比较,然后将“未知”添加到学习池中)我想通过“MSG1”列搜索我的表“响应”,并获得一个结果,即Levenshtein分数最低的结果,就像整个列中最相似的结果一样。这种事情:SELECT*FROMpeopleWHERElevenshtein('$message','msg1')ORDERBY???LIMIT1我在这里不太了解Levenshtein的概念,因为您可以看到我在搜索整个桌子,对其进行排序???(该功能的分数?)然后将其限制为一个结果。然后,我想设置$回复我
我有两个表,一个包含大约17K(NLIST)条记录,另一个包含57K(FNAMES)条记录。我想通过使用levenshtein公式比较记录来加入两者。下面是表格内容的例子:表NLIST:+------+-------------+|ID|S_NAME|+------+-------------+|1|Avi||2|Moshe||3|David|....表FNAMES:+------+-------------+|ID|NICKNAMES|+------+-------------+|1|Avile||2|Dudi||3|Moshiko||4|Avi||5|DAVE|....以上表格仅为
我目前正在使用similar_text将字符串与~50,000的列表进行比较,虽然由于比较的数量非常慢,但它仍然有效。比较约500个独特的字符串大约需要11分钟。在运行它之前,我确实检查了数据库,看它是否在过去被处理过,所以每次在初始运行后它都接近即时。我确定使用levenshtein会稍微快一些,并且有人在手册中发布的LevenshteinDistance函数看起来很有趣。我是否遗漏了一些可以显着加快速度的东西? 最佳答案 最后,levenshtein和similar_text都太慢了,因为它必须经过的字符串数量太多,即使有很多检
我正在尝试使用Levenshtein距离算法在PHP中对齐字符串。问题是我的回溯代码不能在所有情况下正常工作。例如,当第二个数组在开头插入行时。那么回溯只会走到i=0的时候。如何正确实现Levenshtein距离的回溯?Levenshtein距离,$s和$t是字符串数组(行)functionmatch_rows($s,$t){$m=count($s);$n=count($t);for($i=0;$i0&&$j>0){$min=min($d[$i-1][$j],$d[$i][$j-1],$d[$i-1][$j-1]);switch($min){//equalorsubstitutionc
这是计算Levenshtein距离的一般算法的教科书示例(我从MagnusHetland'swebite中提取):deflevenshtein(a,b):"CalculatestheLevenshteindistancebetweenaandb."n,m=len(a),len(b)ifn>m:#Makesuren不过,我想知道是否有使用difflib的SequenceManager的更高效(并且可能更优雅)的纯Python实现。在玩弄它之后,这就是我想出的:fromdifflibimportSequenceMatcherassmdeflev_using_difflib(s1,s2):a
首先我想说我是python新手。我试图计算许多单词列表的Levenshtein距离。到目前为止,我成功地为一对单词编写了代码,但是我在为列表编写代码时遇到了一些问题。我只是有两个列表,一个在另一个下面,如下所示:卡洛斯坚持彼得我想将Levenshtein距离用于相似性方法。有人能告诉我如何加载列表,然后使用函数计算距离吗?我会很感激!这是我的两个字符串的代码:#!/usr/bin/envpython#-*-coding=utf-8-*-deflev_dist(source,target):ifsource==target:return0#words=open(test_file.txt
搜索了几天之后,我准备放弃为PythonLevenshteinlibrary的Python2.7(Windows64位)查找预编译二进制文件。,所以我不是在尝试自己编译它。我已经安装了最新版本的MinGW32(版本0.5-beta-20120426-1)并将其设置为distutils中的默认编译器。开始吧:C:\Users\tomas>pipinstallpython-levenshteinDownloading/unpackingpython-levenshteinRunningsetup.pyegg_infoforpackagepython-levenshteinwarning:n
搜索了几天之后,我准备放弃为PythonLevenshteinlibrary的Python2.7(Windows64位)查找预编译二进制文件。,所以我不是在尝试自己编译它。我已经安装了最新版本的MinGW32(版本0.5-beta-20120426-1)并将其设置为distutils中的默认编译器。开始吧:C:\Users\tomas>pipinstallpython-levenshteinDownloading/unpackingpython-levenshteinRunningsetup.pyegg_infoforpackagepython-levenshteinwarning:n
我正在尝试实现“您的意思是?”某种搜索功能。我正在尝试执行一个使用levenshtein函数的查询,该函数是用ruby编写的。我想知道如何在sqlite3查询中使用此函数。我在想它可能是这样的:@results=the_db.where('levenshtein(name,?)但我不确定如何让它工作。有人可以帮帮我吗? 最佳答案 试试editdist3函数:Theeditdist3algorithmisafunctionthatcomputestheminimumeditdistance(a.k.a.theLevenshtein