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

jxn*_*jxn 6 python string unicode edit-distance levenshtein-distance

我有2个查询:

    query1:????
    query2:??
Run Code Online (Sandbox Code Playgroud)

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

from Levenshtein import distance, hamming, median
lev_edit_dist = distance(query1,query2)
print lev_edit_dist
Run Code Online (Sandbox Code Playgroud)

我得到12的输出.现在的问题是12的值是如何得出的?

因为在笔画方面的差异,肯定超过12.

Fab*_*tor 4

根据其文档,它支持 unicode:

\n\n
\n

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

\n
\n\n

不过,您需要确保中文字符是 unicode 格式:

\n\n
In [1]: from Levenshtein import distance, hamming, median\n\nIn [2]: query1 = \'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c\'\n\nIn [3]: query2 = \'\xe4\xbd\xa0\xe5\xa5\xbd\'\n\nIn [4]: print distance(query1,query2)\n6\n\nIn [5]: print distance(query1.decode(\'utf8\'),query2.decode(\'utf8\'))\n2\n
Run Code Online (Sandbox Code Playgroud)\n