python中的字符串比较但不是Levenshtein距离(我认为)

时间:2012-10-31 19:22:43

标签: python compare using levenshtein-distance

我在一篇论文中发现了一个粗略的字符串比较,我正在阅读如下:

他们使用的等式如下(从文章中提取小词更改,使其更通用和可读) 我试图用自己的话来解释一下,因为作者的描述不是很清楚(使用作者的例子)

例如对于2个序列ABCDE和BCEFA,有两个可能的图

图1)将B与B C连接,C与E连接,E

图2)将A与A

连接起来

当我连接其他三个(图1)时,我无法将A连接到A,因为那将是交叉线(想象你在B-B,C-C和E-E之间画线);墨水A-A线将穿过连接B-B,C-C和E-E的线。 所以这两个序列产生2个可能的图;一个有3个连接(BB,CC和EE)而另一个只有一个(AA)然后我计算得分d,由下面的等式给出。

  

因此,要定义两者之间的相似程度   penta-strings我们计算它们之间的距离d。对齐   两个五弦,我们寻找他们之间的所有身份   字符,无论它们位于何处。如果每个身份都是   由两个五角形之间的链接表示,我们定义一个图形   这对。我们将此图的任何部分称为配置。

     

接下来,我们保留所有没有字符的配置   交叉配对(其含义在我上面的例子中解释,即,相同字符之间没有链接的交叉,只保留那些图形)。   然后将这些中的每一个作为...的函数进行评估   与图形相关的字符数p,移位Δi为   相应的对和连通字符之间的间隙δij   每个五弦。选择最小值作为特征和   被称为距离d:d Min(50 - 10p +ΣΔi+Σδij)虽然非常粗糙,   这个措施通常与定性眼睛很好地吻合   指导估计。例如,abcdeabcfg之间的距离   是{20},abcdeabfcg之间的距离是23 =(50 - 30 + 1 +2)。

我很困惑如何去做这件事。任何帮助我的建议都会非常感激。

我尝试了Levenshtein以及蛋白质序列比较中使用的简单序列比对 该论文的链接是: http://peds.oxfordjournals.org/content/16/2/103.long

我找不到第一作者的任何信息,Alain Figureau和我发给MA Soto的电子邮件尚未得到答复(截至今天)。

谢谢

2 个答案:

答案 0 :(得分:0)

嗯,这绝对不是Levenshtein:

>>> from nltk import metrics
>>> metrics.distance.edit_distance('abcde','abcfg')
2
>>> metrics.distance.edit_distance('abcde','abfcg')
3
>>> help(metrics.distance.edit_distance)
Help on function edit_distance in module nltk.metrics.distance:

edit_distance(s1, s2)
    Calculate the Levenshtein edit-distance between two strings.
    The edit distance is the number of characters that need to be
    substituted, inserted, or deleted, to transform s1 into s2.  For
    example, transforming "rain" to "shine" requires three steps,
    consisting of two substitutions and one insertion:
    "rain" -> "sain" -> "shin" -> "shine".  These operations could have
    been done in other orders, but at least three steps are needed.

    @param s1, s2: The strings to be analysed
    @type s1: C{string}
    @type s2: C{string}
    @rtype C{int}

答案 1 :(得分:0)

在您引用的文本块之后,可以参考同一作者的先前论文:Secondary Structure of Proteins and Three-dimensional Pattern Recognition。如果没有解释距离(我不在工作,所以我无法访问完整的文档),我认为值得研究一下。

否则,您也可以尝试直接联系作者:Alain Figureau似乎是一位老派的法国研究员,没有任何联系(没有网页,没有电子邮件,没有“社交网络”,...)所以我建议尝试联系MA Soto,其电子邮件在论文的最后给出。我认为他们会给你你正在寻找的答案:实验的程序必须清晰,以便可重复,它是研究中科学方法的一部分。