Construir una máquina capaz de evaluar si un tweet es positivo, negativo o neutro es posible sin recurrir a técnicas avanzadas de procesamiento del lenguaje natural. Con operaciones básicas sobre cadenas de texto, vectores y promedios, se puede diseñar un sistema que extraiga características relevantes de cada enunciado y las convierta en puntuaciones interpretables. Esto es exactamente lo que se plantea en este proyecto práctico.
¿Cómo se preparan los tweets para el análisis?
El punto de partida son cuatro tweets reales con particularidades muy comunes en textos informales: ausencia de signos de puntuación, conjugaciones verbales regionales como informéis y os, falta de espacios y uso inconsistente de símbolos de exclamación [0:55]. Antes de analizar cualquier contenido, es necesario limpiar cada enunciado.
Para ello se utiliza la función replace, que sustituye caracteres no deseados —como signos de exclamación y comas— por un vacío [3:20]. Después, la función split divide la cadena resultante en un vector de palabras, separando por espacios. El resultado es una lista ordenada de todos los términos del enunciado, libre de ruido tipográfico.
replace elimina símbolos innecesarios reemplazándolos con cadenas vacías.
split convierte la cadena limpia en un arreglo donde cada elemento es una palabra.
- El vector resultante es la base para las búsquedas posteriores.
¿Qué es el vector de conteo de palabras?
Una vez que se tiene el vector de palabras del tweet, se construye el vector W [4:05]. Este vector tiene tantas entradas como palabras clave se deseen rastrear. Cada entrada registra cuántas veces aparece esa palabra específica dentro del enunciado.
¿Cómo se construye paso a paso?
Si las palabras objetivo son, por ejemplo, muerte, pérdida, luto, excelente, gran y positivo, el vector W tendrá seis posiciones. Se recorre el enunciado y, cada vez que se encuentra una coincidencia, se suma uno a la posición correspondiente [4:30]. Es decir, si "muerte" aparece una vez, la primera entrada será 1; si apareciera tres veces, sería 3.
Un ejemplo más compacto lo ilustra con claridad: al buscar la letra "y", la palabra "mexicano" y la palabra "excelente" en el primer tweet, el vector resultante sería [2, 1, 1] porque la "y" aparece dos veces, mientras que "mexicano" y "excelente" aparecen una sola vez [5:10]. Es preferible analizar palabras completas en lugar de letras individuales, ya que las palabras aportan mucho más contexto semántico [6:45].
¿Cómo se miden el sentimiento y la calidad del análisis?
A partir del vector W se construye un segundo vector: el vector de sentimientos S [7:15]. Este tiene solo tres entradas que representan la cantidad de palabras positivas, neutras y negativas encontradas en el tweet.
¿Qué determina la clasificación de cada palabra?
La clasificación depende del criterio que se elija. Por ejemplo, gran, mexicano, excelente y nacional podrían considerarse positivas; pérdida y enorme, neutras de forma individual; muerte y luto, negativas [7:50]. Así, el vector S para el primer tweet sería [4, 2, 2].
El score sentimental se calcula con una fórmula que toma únicamente las entradas de palabras positivas y negativas del vector S [9:35]. Si solo hay palabras neutras, el score es cero. Si predominan las positivas, el score será positivo, y viceversa.
Para evaluar la calidad del análisis, se calcula el promedio del vector W [8:30]:
- Si el promedio es mayor o igual a 1: hay suficiencia de palabras, el resultado es confiable.
- Si está entre 0.5 y 1: existe incertidumbre sobre la calidad.
- Si es menor que 0.5: la calidad es mala, porque menos de la mitad de las palabras buscadas aparecen en el enunciado.
La calidad promedio general se obtiene promediando las calidades individuales de los cuatro tweets, lo que da una visión global de qué tan robusto es el conjunto de palabras elegido [10:20].
¿Qué preguntas debes responder con tu implementación?
El reto consiste en encontrar un conjunto mínimo de palabras transversales a todos los tweets y construir una sola función que genere tanto el vector W como el vector S para cualquier enunciado [10:50]. Con esa función se debe determinar:
- ¿Qué tweet es el más positivo?
- ¿Cuál es el más negativo?
- ¿Cuál es la calidad promedio del análisis y si es buena o mala?
- ¿Cuál es la diferencia entre el promedio de S y el score S?
- ¿Cómo se relaciona la calidad con el score cuando se añaden o quitan palabras clave?
Experimentar agregando y eliminando palabras permite descubrir si existe un umbral a partir del cual los scores dejan de variar significativamente [11:40]. Comparte tus hallazgos y resultados en los comentarios para contrastar diferentes enfoques de clasificación.