Aprendizaje de modelos de lenguaje

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.

Untitled

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