如何在我的Python代码中输入阿拉伯文本?

5

我的项目是在阿拉伯语中识别情感(积极或消极),这称为情感分析。为了完成这个任务,我使用了NLTK和Python。但是当我输入阿拉伯文推文时,出现了一个错误。

>>> pos_tweets = [(' أساند كل عون أمن شريف', 'positive'),
              ('ما أحلى الثورة التونسية', 'positive'),
              ('أجمل طفل في العالم', 'positive'),
              ('الشعب يحرس', 'positive'),
              ('ثورة شعبنا هي ثورة الكـــرامة وثـــورة الأحــــرار', 'positive')]
Unsupported characters in input

我该如何解决这个问题?


你能提供关于你的系统更多的细节吗? - pram
我的项目是构建一个针对阿拉伯语的情感分析工具包。当我浏览网络时,发现这项任务比英语更加困难。我找到了一个使用NLTK和Python进行情感分析并且结果不错的例子example,我想知道是否可以用同样的方法来处理阿拉伯语。 - Manel Ayadi
抱歉,我是指您是从交互式 shell 运行还是从脚本运行?你使用的 Python shell 是什么?你的操作系统是什么?等等。 - pram
我正在从IDLE shell运行。 - Manel Ayadi
2个回答

3
你的问题来自于IDLE shell。据我所知,IDLE不支持UTF-8交互模式输入。
我建议你使用其他替代(更好的)shell,如DreamPie或PythonWin。请参考以下链接:DreamPiePythonWin

这些工具能否分析阿拉伯语言的情感(是否有停用词、分类等API)? - Manel Ayadi
1
它们只是外壳。它们只会将您输入Python解释器的任何语句传递下去。使用任何您喜欢的外壳都不会带来任何问题。当然,您仍然需要安装所需的库(在这种情况下为nltk)。 - pram

3

我通常用一个简单的技巧将UTF-8输入到我的Python代码中。我不知道它为什么有效,但是在添加以下代码后,它可以接受Unicode字符串并成功运行脚本:

#! /usr/local/bin/python  -*- coding: UTF-8 -*-

pos_tweets = [(u' أساند كل عون أمن شريف', 'positive'), 
(u'ما أحلى الثورة التونسية', 'positive'), 
(u'أجمل طفل في العالم', 'positive'), 
(u'الشعب يحرس', 'positive'), 
(u'ثورة شعبنا هي ثورة الكـــرامة وثـــورة الأحــــرار', 'positive')] 

for i in pos_tweets:
  print i[0], i[1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接