Effectuer l'analyse des sentiments sur twitter

Il semble que tout le monde utilise Twitter pour faire connaître aujourd'hui ses sentiments. Bien sûr, le problème est que personne ne sait vraiment les points communs de ces sentiments - qui est, si quelqu'un pouvait tirer toute sorte de tendance à partir de tous ces tweets là-bas.

L'exemple suivant montre comment classer les tweets que des sentiments positifs ou négatifs automatiquement. L'exemple utilise sentiments spécifiques que vous pouvez modifier à voir des résultats différents.




de NaiveBayesClassifierfrom d'importation nltk.classify LogisticRegressionpositive_tweets TfidfVectorizerfrom sklearn.feature_extraction.text d'importation sklearn.linear_model d'importation = [('fleurs sentent bon »,« positive »), (« Les oiseaux sont beaux »,« positive »), (« Cela va être un grand jour »,« positive »), (« I love My BFF »,« positive »), (« Ce restaurant a beaucoup de nourriture »,« positive »)] negative_tweets = [('Oignons sentent mauvais», «négative '), (' ordures est laid »,« négatif »), (« Rien est allé droit aujourd'hui »,« négatif »), (« Je déteste mon patron »,« négatif »), (« Ce restaurant a une nourriture infecte " , «négatif»)] test_tweets = [(«Chanter me rend heureux», «positive»), («Le ciel bleu sont gentils», «positive»), («I love printemps», «positive»), («toux me rend triste »,« négatif »), (« Ciel nuageux sont déprimants »,« négatif »), (« Je déteste l'hiver »,« négatif »)] X_train, y_train = zip (* positive_tweets + negative_tweets) X_test, y_test = zip (* test_tweets) tfidfvec = TfidfVectorizer (minuscules = True) = vectorisée tfidfvec.fit_transform (X_train) sentiment_classifier = LogisticRegression () sentiment_classifier.fit (vectorisée, y_train) vectorized_test = tfidfvec.transform (X_test) prédiction = liste (sentiment_classifier.predict ( vectorized_test)) = probabilités liste (sentiment_classifier.predict_probavectorized_test) [:, 1]) 'impression des étiquettes correctes:% s% s% s% s% s% s'% y_testprint 'prédiction:% s% s% s% s% s % s '% tuple (prédiction) print' proba positif:% 0.6f% 0.6f% 0.6f% 0.6f% 0.6f% 0.6f '% tuple (probabilités)

L'exemple commence par créer des données d'entraînement qui se compose de tweets positifs et négatifs. Plus tard dans l'exemple, le code crée X_train et y_train de ces tweets. Afin de tester l'algorithme résultant, vous devez également les données d'essais, qui se présente sous la forme de test_tweets. L'exemple crée tard X_test et y_test de ces tweets. Ces éléments constituent les données utilisées pour simuler tweets pour l'exemple.

Avant que le code peut faire quelque chose avec les tweets, les tweets doivent être vectorisés puis classés. Le problème de la classification brise vers le bas dans les mots les plus petits morceaux que l'algorithme peut utiliser pour identifier les points communs entre les données d'apprentissage et les données d'essai.

À ce stade, l'algorithme formé est testé pour assurer que la formation a travaillé comme prévu. La sortie suivante montre les résultats du processus de formation et les tests:

étiquettes correctes: negativeprediction negativenegative positif positif positif: positif négatif negativeproba de negativepositive positif positif: 0.497926 0.555813 0.561923 0.4979260.555813 0,434459

» » » » Effectuer l'analyse des sentiments sur twitter