我正在使用python-levenshtein模块在很长一段时间内分析爱尔兰语文本;随着时间的推移,对文本进行了许多正交的改变,例如bí - > ḃí - > bhí,'b'上的变音符号和b后面的'h'都表示相同的语法形式(在第一个时期未示出)。
在所有这些形式之间我想要一个相当低的距离,但是使用python-levenshtein距离会给出Levenshtein.ratio(u'ḃí', u'bí') = 0.5
和Levenshtein.ratio(u'xí', u'bí') = 0.5
之间的相同距离,这显然是角色的一个小的正字形变化'b'并且它与'x'的直接替换(外国借款引导)不应该有相同的分数。
有没有办法修改特定字符变化的值,例如减少bí到ḃ的距离,但是增加bí和xí之间的距离?或者我需要制作自己的实现吗?
答案 0 :(得分:1)
Levenshtein算法(“编辑距离”)不允许字符之间有不同的距离,但有一个概括 - Needleman-Wunsch算法 - 确实如此。我不知道Python实现,但建议在实现自己的实现之前寻找一个 - 它可能但非平凡。