我需要評估unicode字符串上的levenshtein編輯距離,這意味着包含相同內容的兩個字符串需要進行歸一化處理以避免偏移編輯距離。爲什麼我不能規範化這個隨機unicode字符串?
這裏是我爲我的測試,隨機Unicode字符串:
def random_unicode(length=10):
ru = lambda: unichr(random.randint(0, 0x10ffff))
return ''.join([ru() for _ in xrange(length)])
這裏是失敗的簡單的測試案例:
import unicodedata
uni = random_unicode()
unicodedata.normalize(uni, 'NFD')
,這裏是錯誤:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
我檢查確認uni
實際上是一個unicode對象:
u'\U00020d93\U000fb2e6\U0005709a\U000bc31e\U00080262\U00034f00\U00059941\U0002dd09\U00074f6d\U0009ef7a'
有人能賜教嗎?
輸入參數反轉。 –