我正在使用anaconda Python 2.7进行阿拉伯文本分类 当我打印单词或列表或单词时,它出现在Unicode中 我想打印真正的阿拉伯语单词 列表contians [阿拉伯语句子,标签]
from nltk.corpus.reader import CategorizedPlaintextCorpusReader reader = CategorizedPlaintextCorpusReader('mypath\\', r'(\w+)\.txt', cat_pattern=r'(\w+)\.txt',encoding='utf-8') document=reader.words('fileid')
documen [0]
输出
[[U '\ u0631 \ u0626 \ u064a \ u0633', u'\ u0627 \ u0644 \ u0624 \ u0624 \ u0644 \ u0645 \ u0627 \ u0646',...],'政治']
答案 0 :(得分:0)
在我的脑海中,我认为这是因为Python 2.7是在ASCII焦点下编写的(因此,str(u'\u0631')
产生UnicodeEncodeError
,因为ر字符不存在于ASCII。print u'\u0631'
可能有效,因为它只是将unicode直接发送到控制台,控制台配备了处理unicode渲染。
答案 1 :(得分:0)
这就是Python 2在打印列表时的工作方式。打印单个字符串或更新到Python 3:
Python 2
>>> s = [[u'\u0631\u0626\u064a\u0633', u'\u0627\u0644\u0628\u0631\u0644\u0645\u0627\u0646'], 'Politic']
>>> print(s)
[['رئيس', 'البرلمان'], 'Politic']
>>> print(s[0][0])
رئيس
>>> print(s[0][1])
البرلمان
Python 3
ascii()
您在Python 3中使用>>> print(ascii(s))
[['\u0631\u0626\u064a\u0633', '\u0627\u0644\u0628\u0631\u0644\u0645\u0627\u0646'], 'Politic']
得到旧行为:
if (process.browser) {
require('external_library')
}