处理 Python 中的阿拉伯语文本

Handling Arabic text in Python

我有以下 Python 2.7 代码:

mydoclist = ['جوليا تحبني اكثر من ليندا','جين تحبني اكثر من جوليا','احمد يحب كرة السلة اكثر من كرة الطاولة']

from collections import Counter

for doc in mydoclist:
     tf = Counter()
     for word in doc.split():
         tf[word] +=1
     print tf.items()

我得到以下输出:

[(u'\u062a\u062d\u0628\u0646\u064a', 1), (u'\u0645\u0646', 1), (u'\u062c  \u0648\u0644\u064a\u0627', 1), (u'\u0644\u064a\u0646\u062f\u0627', 1), (u'\u0627\u0643\u062b\u0631', 1)]
[('\xd8\xac\xd9\x8a\xd9\x86', 1), ('\xd9\x85\xd9\x86', 1), ('\xd8\xac\xd9\x88\xd9\x84\xd9\x8a\xd8\xa7', 1), ('\xd8\xaa\xd8\xad\xd8\xa8\xd9\x86\xd9\x8a', 1), ('\xd8\xa7\xd9\x83\xd8\xab\xd8\xb1', 1)]
[('\xd8\xa7\xd9\x83\xd8\xab\xd8\xb1', 1), ('\xd8\xa7\xd8\xad\xd9\x85\xd8\xaf', 1), ('\xd9\x8a\xd8\xad\xd8\xa8', 1), ('\xd8\xa7\xd9\x84\xd8\xb7\xd8\xa7\xd9\x88\xd9\x84\xd8\xa9', 1), ('\xd9\x83\xd8\xb1\xd8\xa9', 2), ('\xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xa9', 1), ('\xd9\x85\xd9\x86', 1)]

为什么我看不到阿拉伯文字。我想看到阿拉伯语单词而不是输出中出现的这些代码。谢谢

Python 打印列表,以便其中的所有项目都通过 repr 传递,后者又生成带有“\u...”的内容。另请查看有关 unicode-strings or better the unicode HOWTO 的教程部分,它们对我帮助很大。 对于包含非 ascii 字符的源代码,您应该 set an encoding(最有可能 "utf-8")。您还可能希望标记包含 unicode 等字符的字符串(u"..." 而不是 "..."

# -*- coding: utf-8 -*-

from collections import Counter


mydoclist = [u'جوليا تحبني اكثر من ليندا',u'جين تحبني اكثر من جوليا',u'احمد يحب كرة السلة اكثر من كرة الطاولة']



for doc in mydoclist:
     tf = Counter()
     for word in doc.split():
         tf[word] +=1
     print u", ".join( u"(%i: %s)"%(n,s) for (s,n) in tf.items())

适合我。