2013-03-04 11 views
5

mój projekt jest zidentyfikowanie sentyment dodatnie lub ujemne (analiza nastrojów) w języku arabskim, aby wykonać to zadanie użyłem NLTK i Python, gdy wchodzę tweets w arabskiej wystąpi błądJak wprowadzić tekst arabski do mojego kodu Pythona?

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

jak mogę Rozwiąż ten problem?

+0

Czy możesz podać więcej szczegółów na temat swojego systemu? – pram

+0

moim projektem jest zbudowanie zestawu narzędzi do analizy sentymentów dla języka arabskiego, kiedy przeglądałem sieć Znalazłem, że to zadanie jest trudniejsze niż język angielski, znalazłem przykład, który zajmuje się NLTK i pythonem do analizy sentymentu i daje dobry wynik [przykład] (http://www.laurentluce.com/posts/twitter-sentiment-analysis-using-python-and-nltk/), zastanawiam się, czy mogę zrobić to samo dla języka arabskiego –

+0

Przepraszam, ja oznacza, że ​​uruchamiasz się z powłoki interaktywnej lub ze skryptu? Której powłoki Pythona używasz, jaki jest twój system operacyjny, itp. – pram

Odpowiedz

3

Twój problem pochodzi z powłoki IDLE. AFAIK IDLE nie zaakceptuje wejścia UTF-8 w trybie interaktywnym.

Proponuję użyć alternatywnych (i lepszych) muszli, takich jak DreamPie lub PythonWin.

+0

są te narzędzia zdolne do analizy sentymentu w języku arabskim (czy jest tam api dla słów stop, classificatio ....)? –

+1

To tylko muszelki. Po prostu przekazują wszelkie instrukcje, które wpiszesz do interpretera Pythona. Używanie dowolnej powłoki, która Ci się podoba, nie stanowiłoby problemu. Oczywiście nadal musisz zainstalować wymaganą bibliotekę (w tym przypadku nltk). – pram

+0

dziękuję, działa z powłoką DreamPie :) –

3

Istnieje prosty hack, który zwykle wprowadzam UTF-8 do mojego kodu Pythona. Nie wiem, dlaczego to działa, ale akceptuje ciągi znaków Unicode i uruchamia skrypt płynnie po dodaniu tych linii:

#! /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

działa teraz, dzięki :) –

+3

...... (= ألعفو – alvas