Análisis de sentimiento: una intuición detrás del análisis de sentimiento en 2022
Publicado: 2021-01-02Tabla de contenido
Introducción
El texto es el medio más importante de percepción de información para los seres humanos. La mayor parte de la inteligencia adquirida por los humanos es a través del aprendizaje y la comprensión del significado de los textos y las oraciones que los rodean. Después de cierta edad, los humanos desarrollan un reflejo intrínseco para comprender la inferencia de cualquier palabra/texto sin siquiera saberlo.
Para las máquinas, esta tarea es completamente diferente. Para asimilar los significados de textos y oraciones, las máquinas se basan en los fundamentos del procesamiento del lenguaje natural (NLP). El aprendizaje profundo para el procesamiento del lenguaje natural es el reconocimiento de patrones aplicado a palabras, oraciones y párrafos, de la misma manera que la visión artificial es el reconocimiento de patrones aplicado a píxeles de imagen.
Ninguno de estos modelos de aprendizaje profundo comprende realmente el texto en un sentido humano; más bien, estos modelos pueden mapear la estructura estadística del lenguaje escrito, lo cual es suficiente para resolver muchas tareas textuales simples. El análisis de opinión es una de esas tareas, por ejemplo: clasificar la opinión de cadenas o reseñas de películas como positivas o negativas.
Estos también tienen aplicaciones a gran escala en la industria. Por ejemplo: a una empresa de bienes y servicios le gustaría recopilar los datos de la cantidad de críticas positivas y negativas que ha recibido para un producto en particular para trabajar en el ciclo de vida del producto y mejorar sus cifras de ventas y recopilar comentarios de los clientes.
Aprenda el curso en línea de aprendizaje automático de las mejores universidades del mundo. Obtenga programas de maestría, PGP ejecutivo o certificado avanzado para acelerar su carrera.
Leer: Ideas de proyectos de aprendizaje automático

preprocesamiento
La tarea de análisis de sentimientos se puede dividir en un simple algoritmo de aprendizaje automático supervisado, donde generalmente tenemos una entrada X , que se convierte en una función de predicción para obtener Luego comparamos nuestra predicción con el valor real Y. Esto nos da el costo que luego usamos para actualizar los parámetros Para abordar la tarea de extraer opiniones de un flujo de textos nunca antes visto, el primer paso es recopilar un conjunto de datos etiquetados con opiniones positivas y negativas separadas. Estos sentimientos pueden ser: buena crítica o mala crítica, comentario sarcástico o comentario no sarcástico, etc.
El siguiente paso es crear un vector de dimensión V , donde Este vector de vocabulario contendrá cada palabra (ninguna palabra se repite) que esté presente en nuestro conjunto de datos y actuará como un léxico para nuestra máquina al que puede referirse. Ahora preprocesamos el vector de vocabulario para eliminar las redundancias. Se realizan los siguientes pasos:
- Eliminar URL y otra información no trivial (que no ayuda a determinar el significado de una oración)
- Tokenización de la cadena en palabras: supongamos que tenemos la cadena "Me encanta el aprendizaje automático", ahora mediante la tokenización simplemente dividimos la oración en palabras individuales y la almacenamos en una lista como [I, love, machine, learning]
- Eliminar palabras vacías como “y”, “soy”, “o”, “yo”, etc.
- Stemming: transformamos cada palabra a su forma radical. Palabras como "tune", "tuning" y "tuned" tienen semánticamente el mismo significado, por lo que reducirlas a su forma radical que es "tun" reducirá el tamaño del vocabulario.
- Convertir todas las palabras a minúsculas
Para resumir el paso de preprocesamiento, echemos un vistazo a un ejemplo: digamos que tenemos una cadena positiva "Me encanta el nuevo producto en upGrad.com" . La cadena preprocesada final se obtiene eliminando la URL, tokenizando la oración en una sola lista de palabras, eliminando las palabras vacías como "I, am, the, at" y luego derivando las palabras "loving" a "lov" y "product". a "produ" y finalmente convirtiéndolo todo a minúsculas, lo que da como resultado la lista [lov, new, produ] .
Extracción de características
Después de preprocesar el corpus, el siguiente paso sería extraer características de la lista de oraciones. Como todas las demás redes neuronales, los modelos de aprendizaje profundo no toman como entrada texto sin procesar: solo funcionan con tensores numéricos.

Por lo tanto, es necesario convertir la lista preprocesada de palabras en valores numéricos. Esto se puede hacer de la siguiente manera. Suponga que dada una compilación de cadenas con cadenas positivas y negativas como (suponga que esto es el conjunto de datos) :
cadenas positivas | Cuerdas negativas |
|
|
Ahora, para convertir cada una de estas cadenas en un vector numérico de dimensión 3, creamos un diccionario para mapear la palabra y la clase en la que apareció (positiva o negativa) al número de veces que esa palabra apareció en su clase correspondiente.
Vocabulario | Frecuencia positiva | frecuencia negativa |
I | 3 | 3 |
soy | 3 | 3 |
contento | 2 | 0 |
porque | 1 | 0 |
aprendiendo | 1 | 1 |
PNL | 1 | 1 |
triste | 0 | 2 |
no | 0 | 1 |
Después de generar el diccionario antes mencionado, miramos cada una de las cadenas individualmente, y luego sumamos el número de frecuencia positiva y negativa de las palabras que aparecen en la cadena, dejando las palabras que no aparecen en la cadena. Tomemos la cadena '"Estoy triste, no estoy aprendiendo PNL" y generemos el vector de dimensión 3.
“Estoy triste, no estoy aprendiendo PNL”
Vocabulario | Frecuencia positiva | frecuencia negativa |
I | 3 | 3 |
soy | 3 | 3 |
contento | 2 | 0 |
porque | 1 | 0 |
aprendiendo | 1 | 1 |
PNL | 1 | 1 |
triste | 0 | 2 |
no | 0 | 1 |
Suma = 8 | Suma = 11 |
Vemos que para la cadena "Estoy triste, no estoy aprendiendo PNL", solo dos palabras "feliz, porque" no están contenidas en el vocabulario, ahora para extraer características y crear dicho vector, sumamos la frecuencia positiva y negativa columnas por separado dejando fuera el número de frecuencia de las palabras que no están presentes en la cadena, en este caso dejamos “feliz, porque”. Obtenemos la suma como 8 para la frecuencia positiva y 9 para la frecuencia negativa.

Por lo tanto, la cadena "Estoy triste, no estoy aprendiendo PNL" se puede representar como un vector El número "1" presente en el índice 0 es la unidad de polarización que seguirá siendo "1" para todas las cadenas siguientes y los números "8", "11" representan la suma de frecuencias positivas y negativas respectivamente.
De manera similar, todas las cadenas del conjunto de datos se pueden convertir cómodamente en un vector de dimensión 3.
Lea también: Explicación de los modelos de aprendizaje automático
Aplicación de regresión logística
La extracción de características facilita la comprensión de la esencia de la oración, pero las máquinas aún necesitan una forma más nítida de marcar una cadena invisible como positiva o negativa. Aquí entra en juego la regresión logística que hace uso de la función sigmoidea que genera una probabilidad entre 0 y 1 para cada cadena vectorizada.
Pensamientos finales
Además, si está interesado en obtener más información sobre el aprendizaje automático, consulte el programa Executive PG de IIIT-B y upGrad en aprendizaje automático e IA, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones. , estado de exalumno de IIIT-B, más de 5 proyectos prácticos finales y asistencia laboral con las mejores empresas.