在Python中处理阿拉伯语文本

时间:2016-08-27 09:27:54

标签: python arabic

我有以下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)]

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

1 个答案:

答案 0 :(得分:2)

Python打印列表,以便其中的所有项目都通过repr传递,而u"..."反过来产生这些东西" \ u ..."。另请查看关于unicode-strings的教程部分或更好的unicode HOWTO他们帮助了我很多。 对于包含非ascii字符的源代码,您应该set an encoding(很可能" utf-8")。您还可以标记包含unicode("..."而不是# -*- 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()) )等字符的字符串

var data = new Date();

适合我。