2013-03-04 24 views
5

我的项目是在阿拉伯语识别情绪或正或负(情感分析),做这个任务我用NLTK和蟒蛇,当我在阿拉伯语输入鸣叫发生错误我如何输入阿拉伯文字到我的Python代码?

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

哪能解决这个问题?

+0

你能给你的系统的更多细节? – pram 2013-03-04 07:18:46

+0

我的项目是为阿拉伯语建立一个情感分析工具包,当我浏览网络时,我发现这个任务比英语更艰苦,我找到了一个处理NLTK和python来分析情感的例子,它给出了一个很好的结果[示例](http://www.laurentluce.com/posts/twitter-sentiment-analysis-using-python-and-nltk/),我想知道我是否可以对阿拉伯语言做同样的事情 – 2013-03-04 07:48:48

+0

对不起,我意味着你是从交互式shell还是脚本运行?你使用了哪个python shell,你的操作系统是什么,等等。 – pram 2013-03-04 14:06:58

回答

3

你的问题来自于IDLE shell。 AFAIK IDLE不会在交互模式下接受UTF-8输入。

我建议你使用替代(和更好)的shell如DreamPiePythonWin

+0

这些工具能够分析阿拉伯语言的情感(是否存在停用词,分类的API)? – 2013-03-04 21:37:27

+1

他们只是贝壳。他们只会将你输入的任何语句传递给Python解释器。使用任何你喜欢的shell都不会造成任何问题。当然,你仍然需要安装所需的库(在这种情况下是nltk)。 – pram 2013-03-05 02:31:56

+0

谢谢,它适用于DreamPie外壳:) – 2013-03-05 12:40:46

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] 
+1

它现在可以工作,谢谢:) – 2013-03-05 12:41:17

+3

......(=ألعفو – alvas 2013-03-05 13:58:54