Cómo hacer análisis de sentimiento?
Podemos tener un vocabulario de palabras positivas y otro de negativas y en función de cada palabra del texto a analizar le podríamos dar una puntuación dependiendo si es positiva o negativa para acabar sabiendo el contexto de la frase.
Me encanta escuchar música → ✅
Es una opción pero no es óptima. Por ejemplo, para la frase “Esta compra es muy recomendable si quieres tirar el dinero” la identificaría como positiva.
Ejemplo para probar esta limitación:
from textblob import TextBlob
# Frase a analizar
es_text = "Me encanta escuchar música"
# Codificamos con textblob y traducimos al inglés
text = TextBlob(es_text).translate(from_lang='es', to='en')
# Analizamos la polaridad de las palabras
sentiment = text.sentiment.polarity
if sentiment > 0.0:
print('👍 Positivo: ', sentiment)
else:
print('👎 Negativo: ', sentiment)
Las RNNs solucionan esto aprendiendo las relaciones entre una secuencia de palabras, dada como input, y su sentimiento, dado como output → Aprendizaje supervisado.
❗Esto obliga a tener un dataset etiquetado para determinar si el sentimiento de cada texto es positivo o negativo
❓Y si queremos que en lugar de diferenciar entre positivo o negativo se evalúe el texto de 1 a 5 estrellas?
Esto obliga de nuevo a tener datos etiquetados pero en este caso valorando de 1 a 5 estrellas