我需要安装才能使用。不幸的是,我无法成功地安装它。我通常用pip安装库。然而,这一次我得到了以前从未发生过的error: [WinError 2] The system cannot find the file specified (在安装库时)。我尝试过使用python setup.py install安装它,但是我得到了完全相同的错误。这是我从控制台得到的输出。
C:\Users\my_user\Anaconda3\Lib\site-packages\python-Levenshtein-0.10.2>python setup.py install
running install
r
假设我们有三个字符串
songA = "(Used to Be A) Cha-Cha.flac"
songB = "(Used to Be A) Cha-Cha [Alt Take].flac"
我们想要匹配第三个字符串
songC = "(Used to Be A) Cha-Cha.flac"
现在,虽然songA和SongB都匹配songC,但是很明显,songA是一个“更好的”匹配,因为它没有Alt参与,因此是一个完美的匹配。如果我使用songA in songB方法,这两个方法都将被匹配,那么我如何解释匹配的好坏呢?
我的错误越来越小。有没有办法在不安装python-Levenshtein的情况下修复它,如果没有,那么如何在linux上安装python-Levenshtein。
UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning
warnings.warn
是一个非常流行的字符串匹配库。根据文库的,提到它使用Levenshtein距离来计算序列之间的差异。但是关闭后,我发现它实际上使用了difflib库中的SequenceMatcher函数。根据,此函数使用Ratcliff/Obershelp模式匹配算法。
根据定义,是将一个字符串转换为另一个字符串所需的最小编辑次数,计算匹配字符的倍数除以两个字符串中的字符总数。一个比较两者的密切相关的。
当我运行一个例子,我得到了同样的结果,SequenceMatcher和比率函数在模糊。
from difflib import SequenceMatcher
from fuzzywuzzy import f
我有两个相同数量的斜杠,每个位置都有相同的字母。总是有一个字母和一个方括号表示索引。在两个字符串中总是有一个对应的字母。
var first = "/a/b[1]/c/d[3]/e[1]/f"
var second = "/a/b[1]/c/d[4]/e/f"
我希望输出应该是
result = "/a/b[1]/c/d/e/f"
这就是我想出来的,但也许有一种更好的方法,因为它返回/a/b/c/d/e/f,这不是我想要的。
var first = "/a/b[1]/c/d[3]/e[1]/f".split("/
我安装了模块python-Levenshtein-0.11.2。我认为设置成功了(当我输入help('modules')时,我在列表中看到了"Levenshtein“模块)。
但是当我尝试“距离”函数时,我得到了一个错误:"NameError: name 'distance' is not defined"。
我不明白为什么距离函数不能工作。
我一直在互联网上研究模糊匹配/搜索算法。我已经尝试了几种解决方案。
唯一给出一些准确结果的是Excel先生()。这种方法存在的问题是字符在单词中的顺序或相对位置,而单词本身的顺序对结果没有影响。
我想得到更好的结果,根据相对词的位置,以及字母的顺序,每个字。
Function FuzzyMatchByWord(ByVal lsPhrase1 As String, ByVal lsPhrase2 As String, Optional lbStripVowels As Boolean = False, Optional lbDiscardExtra As Boolean = False) As
我已经在MYSQL中安装了。制作者建议使用这种方法:
select levenshtein('butt', 'but') from test;
select levenshtein_ratio('butt', 'but') from test;
我想要计算$search与DB中每个"name“条目之间的Levenshtein比率,然后在PHP中回显它。
我怎样才能做到这一点?提前感谢
$search = "Paul"; // The string I want compared to each DB ent
我试图写一个程序,比较一个列表的加扰名称,与一个大列表的常规名称,一个字符的字符。
例如,假设加扰列表中的名称之一是B@B St@r#,我正在尝试将该名称与常规名称列表进行比较,看看它有多少个字符,或者它是否与常规列表的名称完全匹配。
到目前为止我的代码是:
for ch in list2: ##list 2 has the decrypted names
parts = ch.split()
decryptedfirst_names.append(parts[0]) ##Im trying to compare first names for now
for c
我正在尝试构建一个构建在Func postgres扩展上的类工具包。
例如,我有一个包装器,它接受一个表达式和一个搜索项,并返回levenshtein距离:
class Levenshtein(Func):
"""This function calculates the Levenshtein distance between two strings:"""
template = "%(function)s(%(expressions)s, '%(search_term)s')"
funct
def email_matcher(emails_file,names_file):matches = {}
with open(names_file, 'r') as names:
for i in names:
with open(emails_file, 'r') as emails:
first = i[:(i.index(' '))]
pattern2 = i[0]
last = i[::-1].strip()
las