2016-07-08 18 views
0

Ich habe an einer Studie in Bezug auf Twitter Sentiment Analyse gearbeitet. Ich habe ein wenig Ahnung, wie man auf Python programmiert. Da meine Forschung mit der Codierung zu tun hat, habe ich einige Untersuchungen zur Analyse der Stimmung mit Python durchgeführt, und das Folgende ist, wie weit ich gekommen bin: 1.Tokenization von Tweets 2. POS-Tagging von Token und der Rest ist Ich berechne Positiv und Negativ der Stimmung, der ich mich jetzt gegenübersehe, und brauche deine Hilfe.sentiwordnet Scoring mit Python

Unten ist mein Codebeispiel:

import nltk 
sentence = "Iphone6 camera is awesome for low light " 
token = nltk.word_tokenize(sentence) 
tagged = nltk.pos_tag(token) 

Deshalb mag ich, wenn jemand fragen kann helfen, mir zu zeigen,/führt das Beispiel der Verwendung von Python zu kodieren etwa sentiwordnet, um die positiven und negativen Score von der Berechnung Tweeets, die bereits POS-markiert wurden. Danke im Voraus

+0

Hallo, ich weiß nicht, wie viel das hilfreich sein kann, daher füge ich das als Kommentar hinzu. Versuchen Sie Folgendes: http://www.nltk.org/howto/sentiment.html und http://www.nltk.org/api/nltk.sentiment.html – Vipul

Antwort

8

Es ist ein wenig unklar, was genau Ihre Frage ist. Brauchen Sie eine Anleitung zur Verwendung von Sentiwordnet? Wenn ja diesen Link zu überprüfen,

http://www.nltk.org/howto/sentiwordnet.html

Da haben Sie bereits in Token aufgeteilt und PO die Worte markiert, alles, was Sie jetzt tun müssen, ist diese Syntax zu verwenden,

swn.senti_synset('breakdown.n.03') 

Willen brechen Argument,

  • 'Aufschlüsselung' = Wort, für das Sie Noten für benötigen.
  • ‚n‘ = Wortart
  • ‚03‘ = Verbrauch (01 für die meisten verbreiteten Gebrauch und eine höhere Anzahl weniger häufig Verwendungen anzeigen würde)

So für jedes Tupel in Ihrem getaggt Array erstellen eine Zeichenfolge wie oben und übergeben Sie sie an die senti_synset-Funktion, um die positive, negative und objektive Bewertung für dieses Wort zu erhalten.

Vorbehalt: Der POS-Tagger gibt Ihnen ein anderes Tag als das senti_synset akzeptiert. Verwenden Sie Folgendes, um in synset-Notation zu konvertieren.

n - NOUN 
v - VERB 
a - ADJECTIVE 
s - ADJECTIVE SATELLITE 
r - ADVERB 

(Credits Using Sentiwordnet 3.0 für die obige Notation)

Davon abgesehen, ist es in der Regel keine gute Idee Sentiwordnet für Twitter Sentiment-Analyse zu verwenden, und hier ist der Grund,

Tweets mit gefüllt sind Tippfehler und Nicht-Wörterbuch-Wörter, die Sentiwordnet oft nicht erkennt. Um dieses Problem zu umgehen, lemmize/stem deine Tweets, bevor du sie tagest oder nutze einen Machine Learning-Klassifikator wie Naive Bayes, für den NLTK eingebaute Funktionen hat. Was das Trainings-Dataset für den Klassifikator anbelangt, kann entweder ein Datensatz manuell kommentiert werden oder ein vormarkierter Satz wie etwa der Sentiment140-Korpus verwendet werden.

Wenn Sie nicht daran interessiert sind, die Stimmungsanalyse durchzuführen, aber ein Sentiment-Tag für einen bestimmten Tweet benötigen, können Sie zu diesem Zweck immer die Sentiment140-API verwenden.

+0

Für einige gute Tutorials zur Verwendung eines Klassifikators für diesen Zweck und für Den Datensatz Sentiment140 finden Sie unter folgendem Link: [link] (http://help.sentiment140.com/for-students/) Für Stemming und Lemmatisierung, lesen Sie diesen Link: http://StackOverflow.com/ Fragen/771918/how-do-i-do-word-stemming-oder-lemmatization –

+0

Zunächst einmal, danke in der Tat für Ihre Detailantwort, Saravana. Ich verstehe ganz, was Sie dort geschrieben haben, aber ich weiß nicht ganz, wie ich Code schreiben soll, und deshalb dachte ich, Ihnen einen Gefallen zu bitten, wenn möglich, dass Sie mir dabei helfen können, den Code zu schreiben und den Prozess nach der POS-Markierung Es wäre sehr aufschlussreich für mich, meine Forschung weiter voranzubringen. Import nltk Satz = "Iphone6 ​​Kamera ist für wenig Licht awesome" token = nltk.word_tokenize (Satz) getaggt = nltk.pos_tag (Token) – pechdara

+1

Dank zur Erläuterung Argument von senti_synset(). – sdream

0

Für positive und negative Gefühle müssen Sie zuerst ein Training geben und das Modell trainieren. Für das Trainingsmodell können Sie SVM verwenden, die offene Bibliothek namens LibSVM, die Sie verwenden können.