如何根据简体中文字符计算Levenshtein距离?

时间:2015-06-19 00:20:20

标签: python string unicode levenshtein-distance edit-distance

我有2个查询:

    query1:你好世界
    query2:你好

当我使用python库Levenshtein运行此代码时:

from Levenshtein import distance, hamming, median
lev_edit_dist = distance(query1,query2)
print lev_edit_dist

我的输出为12。 现在的问题是价值12是如何得出的?

因为在笔画差异方面,肯定超过12个。

1 个答案:

答案 0 :(得分:4)

根据其documentation,它支持unicode:

  

它支持普通和Unicode字符串,但不能混合它们   函数(方法)的参数必须是相同的类型(或它的   子类)。

你需要确保中文字符是unicode:

In [1]: from Levenshtein import distance, hamming, median

In [2]: query1 = '你好世界'

In [3]: query2 = '你好'

In [4]: print distance(query1,query2)
6

In [5]: print distance(query1.decode('utf8'),query2.decode('utf8'))
2