在特征提取器中获取 Python 以西里尔字母打印

Getting Python to print in Cyrillic in a feature extractor

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

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

其中 returns {'three_last_letters': u'\u0442\u0438\u0440'}

尽管

u'Богатир'

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

你的函数 returns a 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'}