给定两个相等长度的字符串,Levenshtein距离允许找到获得第二个字符串所需的最小转换次数,给定第一个字符串。但是,我想找到一种方法来调整多对字符串的算法,因为它们都以相同的方式生成。
答案 0 :(得分:0)
阅读评论,看来这就是问题所在:
给定一组字符串对,长度相同,每对都是与函数输出配对的某些函数的输入。所以,对于A,B对,我们知道f(A)= B.目标是使用大量A,B对对f()进行逆向工程。
在整个集合上使用Levenshtein距离最多会告诉您必须进行的最大转换次数。
更好的开始是汉明距离(修改为允许多个字符)或Jaccard相似性,以确定字符串中的多少个位置对于所有对都不会发生变化。然后,你只剩下那些做出改变的人。
如果字母移位,这将失败。
要检测移位,您需要使用全局对齐( Needleman-Wunsch )。然后,您将看到类似"ABCDE"=>"xABCD"
的内容,以显示从输入到输出,左移。
总的来说,我觉得Levenshtein距离对于帮助你获得原始算法的作用很小。