Saltar al contenido

Procesamiento del Lenguaje Natural – Extracción de Sentimientos de los Datos de Texto

En esta guía, nos encargaremos de entender el sentimiento de los tweets sobre la compañía Apple. El conjunto de datos contiene 1181 observaciones y 2 variables, como se describe a continuación:

  1. Tweet: Consiste en los comentarios de twitter de los usuarios. Los datos de twitter están disponibles públicamente.
  2. Promedio: Sentimiento promedio del tweet (-2 significa más negativo mientras que +2 significa más positivo). Esta clasificación se hizo usando el Turco Mecánico Amazónico. Sin embargo, para el propósito de esta guía, no usaremos esta variable.

Carga de los datos y realización de comprobaciones de datos básicos

La primera línea de código de abajo se lee en los datos como marco de datos de pandas, mientras que la segunda línea imprime la forma – 1.181 observaciones de 2 variables. La tercera línea imprime las primeras cinco observaciones.

Procesamiento del Lenguaje Natural – Extracción de Sentimientos de los Datos de Texto
Procesamiento del Lenguaje Natural – Extracción de Sentimientos de los Datos de Texto
123dat = pd.read_csv($0027tweetsdata.csv$0027)print(dat.shape)dat.head()

pitón

Salida:

| 2.0. 1. Fenómeno de la manzana. 2. 2. 2. 2. 3. Manzana. Arruinaste mi vida. 2. 4. Manzana. Odio la manzana. | -2.0 |

El objetivo es detectar el sentimiento del tweet. Por lo tanto, vamos a empezar por comprobar el sentimiento de los primeros cinco tweets que se hace en la línea de código de abajo.

1dat[$0027Tweet$0027][:10].apply(lambda x: TextBlob(x).sentiment)

pitón

Salida:

1234567891011 0 (-0,7, 1,0) 1 (0,0, 0,0) 2 (0,0, 0,0) 3 (0,0, 0,0) 4 (-1,0, 0,9) 5 (-1,0, 1,0) 6 (-0,13333333333333333, 0. 1666666666666666666) 7 (-0,13221153846153846, 0,3846153846153846) 8 (0,0, 0,0) 9 (-0,475000000000000000003, 0,70000000000000000001) Nombre: Tweet, dtype: object

El resultado anterior es una tupla que representa la polaridad y la subjetividad de cada tweet. Como estamos interesados en el sentimiento, sólo extraeremos la polaridad y la aplicaremos a todas las observaciones. La primera línea de código de abajo extrae la polaridad para todas las observaciones, y la almacena en una nueva variable “sentiment”. La segunda línea imprime las primeras cinco observaciones.

12dat[$0027sentiment$0027]= dat[$0027Tweet$0027].apply(lambda x: TextBlob(x).sentiment[0])dat.head()

pitón

Salida:

| 2.0 -0.7 -0.7 – 1 – freak YOU @APPLE -2.0 – 0.0 – 2 – freak you @apple -2.0 -0.0 -3 -apple you ruined my life -2.0 -0.0 -4 -apple I hate apple!!!!!!! | -2.0 | -1.0 |

El resultado anterior muestra que cada observación tiene ahora una puntuación de polaridad de sentimiento, en la que 1 representa un sentimiento positivo y -1 representa una afirmación negativa. El primer y el quinto registro son claramente negativos mientras que los tres restantes tienen un valor de polaridad de cero.