如何在简体中文字符上计算Levenshtein距离?

7

我有两个查询:

    query1:你好世界
    query2:你好

当我使用Python库Levenshtein运行此代码时:
from Levenshtein import distance, hamming, median
lev_edit_dist = distance(query1,query2)
print lev_edit_dist

我得到了一个输出值为12。

现在的问题是这个值12是如何推导出来的?

因为从笔画数量上来看,显然不止12个。


你在使用Python2还是3? - Fabricator
我正在使用Python 2.7。 - jxn
2
对于中文字符来说,转向Python 3确实是有意义的。所有与Unicode字符相关的问题都已经得到解决。 - Karpov
1个回答

4
根据其文档,它支持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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接