Realización de análisis de sentimientos en twitter

Parece como si todo el mundo está utilizando Twitter para que sus sentimientos conocidos hoy. Por supuesto, el problema es que nadie sabe realmente el carácter común de esos sentimientos - es decir, si alguien pudiera derivar algún tipo de tendencia a partir de todos los tweets que hay.

El siguiente ejemplo muestra cómo clasificar los tweets como sentimientos positivos o negativos de forma automática. El ejemplo utiliza los sentimientos específicos que se pueden cambiar para ver resultados diferentes.

desde NaiveBayesClassifierfrom importación nltk.classify LogisticRegressionpositive_tweets sklearn.linear_model TfidfVectorizerfrom sklearn.feature_extraction.text importación de importación = [('flores huelen bien "," positivo "), (" Los pájaros son hermosos "," positivo "), (" Esto va a ser un gran día "," positivo "), (" I love my bff "," positivo "), (" Este restaurante tiene buena comida "," positivo ")] negative_tweets = [('Cebollas huelen mal", "negativo '), (' basura es fea "," negativo "), (" Nada ha salido bien hoy "," negativo "), (" Odio a mi jefe "," negativo "), (" Este restaurante tiene comida horrible " , "negativo")] test_tweets = [('El canto me hace feliz "," positivo "), (" Cielos azules son agradables "," positivo "), (" Me encanta la primavera "," positivo "), (" La tos me hace triste "," negativo "), (" Cielos nublados son deprimentes "," negativo "), (" Odio el invierno "," negativo ")] X_train, y_train = zip (* positive_tweets + negative_tweets) X_test, y_test = zip (* test_tweets) tfidfvec = TfidfVectorizer (minúsculas = True) vectorizado = tfidfvec.fit_transform (X_train) sentiment_classifier = LogisticRegression () sentiment_classifier.fit (vectorizado, y_train) vectorized_test = tfidfvec.transform (X_test) de predicción = lista (sentiment_classifier.predict ( vectorized_test)) probabilidades = lista (sentiment_classifier.predict_probavectorized_test) [:, 1]) de impresión de etiquetas correctas:% s% s% s% s% s% s '% y_testprint' predicción:% s% s% s% s% s % s '% tupla (predicción) print' proba positivo:% 0,6F% 0,6F% 0,6F% 0,6F% 0,6F% 0,6F '% tupla (probabilidades)

El ejemplo comienza mediante la creación de datos de entrenamiento que consiste de tweets positivos y negativos. Más tarde, en el ejemplo, el código crea X_train y y_train a partir de estos tweets. Con el fin de probar el algoritmo resultante, también necesita los datos de prueba, que viene en la forma de test_tweets. El ejemplo crea más tarde X_test y y_test a partir de estos tweets. Estos elementos constituyen los datos utilizados para simular los tweets para el ejemplo.

Antes de que el código se puede hacer nada con los tweets, los tweets deben ser vectorizados y luego clasifican. El problema de la clasificación rompe las palabras abajo en las piezas más pequeñas que el algoritmo puede utilizar para la identificación de coincidencia entre los datos de entrenamiento y los datos de prueba.

En este punto, el algoritmo entrenado se prueba para asegurar que la formación ha trabajado como se esperaba. La siguiente salida muestra los resultados del proceso de formación y las pruebas:

etiquetas correctas: negativeprediction negativenegative positiva positiva positiva: negativeproba negativepositive positivo positivo negativo positivo: 0.497926 0.555813 0.561923 0.434459 0.4979260.555813



» » » » Realización de análisis de sentimientos en twitter