Performing Sentiment Analysis auf Twitter

Es scheint, als ob jeder Twitter nutzt, um seine oder ihre Gefühle heute bekannt zu machen. Natürlich ist das Problem, dass niemand wirklich die Gemeinsamkeit dieser Gefühle kennt - das heißt, ob jemand da draußen jede Art von Trend aus all diesen Tweets ableiten könnte.

Das folgende Beispiel zeigt, wie automatisch Tweets als positive oder negative Gefühle zu klassifizieren. Das Beispiel verwendet bestimmte Gefühle, die Sie unterschiedliche Ergebnisse zu sehen ändern kann.

von nltk.classify Import NaiveBayesClassifierfrom sklearn.feature_extraction.text Import TfidfVectorizerfrom sklearn.linear_model Import LogisticRegressionpositive_tweets = [( 'Blumen riechen gut "," positiv "), (" Vögel sind schön "," positiv "), (" Das wird sein ein großer Tag "," positiv "), (" ich meine bff liebe ',' positive '), (' Das Restaurant tolles Essen "," positiv ")] negative_tweets = [( 'Zwiebeln riechen schlecht", "negativ '), (' Müll ist hässlich "," negativ "), (" Nichts Recht heute gegangen ist "," negativ "), (" ich hasse meinen Chef "," negativ "), (" Das Restaurant schreckliches Essen hat ' , "negative")] test_tweets = [( "Singen macht mich glücklich", "positiv"), ( "Blauer Himmel sind schön", "positiv"), ( "ich liebe Frühling ',' positive '), (' Coughing macht mich traurig "," negativ "), (" bewölkt deprimierend "," negativ "), (" ich Winter hassen ',' negativ ')] X_train, y_train = zip (* positive_tweets + negative_tweets) X_test, y_test = zip (* test_tweets) tfidfvec = TfidfVectorizer (Klein = True) vektorisiert = tfidfvec.fit_transform (X_train) sentiment_classifier = Logistische Regression () sentiment_classifier.fit (vektorisiert, y_train) vectorized_test = tfidfvec.transform (X_test) Vorhersage = list (sentiment_classifier.predict ( vectorized_test)) Wahrscheinlichkeiten = list (sentiment_classifier.predict_probavectorized_test) [:, 1]) print 'richtigen Etiketten:% s% s% s% s% s% s'% y_testprint 'Prognose:% s% s% s% s% s % s '% Tupel (Vorhersage) print' proba positiv:% 0.6f% 0.6f% 0.6f% 0.6f% 0.6f% 0.6f '% Tupel (Wahrscheinlichkeiten)

Das Beispiel beginnt mit der Trainingsdaten zu schaffen, die aus positiven und negativen tweets besteht. Später im Beispiel erzeugt die Code X_train und y_train von diesen Tweets. Um die daraus resultierenden Algorithmus zu testen, müssen Sie auch Testdaten, die in der Form kommt von test_tweets. Das Beispiel später schafft X_test und y_test von diesen Tweets. Diese Elemente bilden die Daten verwendet, um Tweets zum Beispiel simulieren.

Bevor der Code etwas mit den Tweets tun können, müssen die Tweets vektorisiert und dann klassifiziert werden. Das Problem der Klassifizierung bricht die Worte bis in die kleinste Stücke, die der Algorithmus zur Identifizierung von Gemeinsamkeiten zwischen den Trainingsdaten und die Testdaten verwenden können.

An dieser Stelle wird der gelernte Algorithmus getestet, um sicherzustellen, dass die Ausbildung wie erwartet funktioniert hat. Die folgende Ausgabe zeigt die Ergebnisse des Trainings und Testprozess:

richtige Etiketten: positiv positiv positiv negativenegative negativeprediction: negativ positiv positiv negativepositive negativeproba positiv: 0.497926 0.555813 0.561923 0.4979260.555813 0,434459

Menü