2015-06-19 2 views
4

У меня есть 2 запросы:Сколько результатов со значением "Levenshtein Расстояние на упрощенном китайском языке?

query1:你好世界 
    query2:你好 

Когда я запускаю этот код с помощью библиотеки Python Левенштейн:

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

я получаю выход 12. Теперь вопрос, как значение 12, полученные ?

Потому что с точки зрения разницы ударов, Theres определенно больше, чем 12.

+0

вы используете python2 или 3? – Fabricator

+0

Я использую python 2.7 – jxn

+0

Для китайских иероглифов было бы действительно целесообразно перейти на Python 3. Всевозможные проблемы с прилипанием re. Символы Юникода были сглажены. – Karpov

ответ

3

По его documentation, он поддерживает юникод:

Он поддерживает как нормальные, так и 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 
+0

аккуратный это здорово! – jxn