让Python在特征提取器中以西里尔文打印

时间:2017-04-29 16:26:03

标签: python-2.7 unicode nltk python-unicode

我正在尝试训练一个程序来学习确定俄语中新给出的单词是名词还是动词。

def POS_features(word):
    return{'three_last_letters':word[-3:]}
print(POS_features(u'Богатир'))

返回{'three_last_letters':u'\ u0442 \ u0438 \ u0440'}

尽管

u'Богатир'

最后三个字母打印gobbledy-gook。如何让Python以西里尔语打印?

1 个答案:

答案 0 :(得分:0)

您的函数返回dict,这就是打印的内容。容器经常打印它们的repr - 也就是说,它们的内容是类似python的表示。如果您自己处理dict,则会获得正确的值。

>>> def POS_features(word):
...     return{'three_last_letters':word[-3:]}
... 
>>> val = POS_features(u'Богатир')
\>>> for k,v in val.items():
...     print k, v
... 
three_last_letters тир

我将打印结果粘贴回我的shell并再次获得dict。它不能保证对象的字符串表示可以构建回对象,但它适用于简单类型。

>>> val = {'three_last_letters': u'\u0442\u0438\u0440'}
>>> val
{'three_last_letters': u'\u0442\u0438\u0440'}