我正在寻找一个可以进行简单的模糊字符串比较的 Python 模块。具体来说,我想要字符串相似程度的百分比。我知道这可能是主观的,所以我希望找到一个可以进行位置比较以及最长相似字符串匹配等的库。
基本上,我希望找到足够简单的东西来产生单个百分比,同时仍然足够可配置,以便我可以指定要进行的比较类型。
我需要在Java字符串之间执行Diffs.我希望能够使用原始字符串和diff版本重建字符串.有没有人用Java做过这个?你用什么图书馆?
String a1; // This can be a long text
String a2; // ej. above text with spelling corrections
String a3; // ej. above text with spelling corrections and an additional sentence
Diff diff = new Diff();
String differences_a1_a2 = Diff.getDifferences(a,changed_a);
String differences_a2_a3 = Diff.getDifferences(a,changed_a);
String[] diffs = new String[]{a,differences_a1_a2,differences_a2_a3};
String new_a3 = Diff.build(diffs);
a3.equals(new_a3); // this is true
Run Code Online (Sandbox Code Playgroud) 比较必须即时工作,所以这必须通过javascript或php(将使javascript ajax请求)完成.
我需要的可能是高级差异显示,所以如果有任何好的支持库,它可能是最好的.
这张照片显示我需要的东西>

添加#1: 我发现这个http://ejohn.org/projects/javascript-diff-algorithm/(例如http://www.djsipe.com/js-diff/)这没关系,但不支持多行?当只有一个角色不同时,它会改变整个单词...
添加#2: 我测试了PHP脚本(https://github.com/paulgb/simplediff/),但它有缺陷.
添加了#3: 我找到了我要找的东西(http://code.google.com/p/google-diff-match-patch/)
最常见的子序列问题是典型的计算机科学问题,解决它的算法是版本控制系统和维基引擎的根源.两种基本算法是用于创建原始版本的Hunt-McIlroy算法diff,以及目前由GNU diff实用程序使用的Myers diff算法.通过在表示两个字符串或文本文件之间的编辑空间的图形中找到最短路径,两者似乎都或多或少地起作用.编辑空间是将一个序列转换为另一个序列所需的插入或删除次数.那么Myer的diff算法和Hunt-McIlroy算法之间到底有什么区别呢?
我必须编写一个函数,它接受一个字符串作为参数,并将该字符串与另外两个字符串进行比较,并返回最相似的字符串和差异数.
def func("LUMB"):
lst=["JIBM", "NUNE", "NUMB"]
should return:
("NUMB",1)
Run Code Online (Sandbox Code Playgroud)
我试过了:
def f(word):
lst=["JIBM", "NUNE", "NUMB"]
for i in lst:
d=k(word, lst)
return differences
for n in d:
print min(sum(n))
Run Code Online (Sandbox Code Playgroud)
哪里:
def k(word1, word2):
L=[]
for w in range(len(word1)):
if word1[w] != word2[w]:
L.append(1)
else:
L.append(0)
return L
Run Code Online (Sandbox Code Playgroud)
所以我得到一个例如[1,0,0,0]如果word1 ="NUMB"和word2 ="LUMB"的列表
我想获得两个单词的相似百分比,例如)
abcd versus zzabcdzz == 50% similarity
Run Code Online (Sandbox Code Playgroud)
不需要非常准确.有没有办法做到这一点?我正在使用python,但随时可以推荐其他语言.
python ×3
diff ×2
algorithm ×1
comparison ×1
java ×1
javascript ×1
jquery ×1
lcs ×1
php ×1
search ×1
similarity ×1
string ×1