1 usuario conectado

Analiza sentimiento general. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada analizar_sentimiento_basico_es que tome una cadena de texto en español como entrada y devuelva una estimación del sentimiento general (positivo, negativo o neutro) basada en la presencia de palabras clave predefinidas.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Analiza sentimiento general

📋 Copiar código

def analizar_sentimiento_basico_es(texto):
  """
  Realiza un análisis de sentimiento básico en español basado en palabras clave.

  Args:
    texto: La cadena de texto en español a analizar.

  Returns:
    Una cadena que indica el sentimiento general ('Positivo', 'Negativo' o 'Neutro').
  """
  palabras_positivas = ["bien", "bueno", "excelente", "feliz", "alegre", "maravilloso", "genial", "increíble", "amor", "gracias"]
  palabras_negativas = ["mal", "malo", "terrible", "triste", "enojado", "horrible", "pésimo", "odio", "problema", "difícil"]

  texto_lower = texto.lower()
  conteo_positivo = sum(1 for palabra in palabras_positivas if palabra in texto_lower)
  conteo_negativo = sum(1 for palabra in palabras_negativas if palabra in texto_lower)

  if conteo_positivo > conteo_negativo:
    return "Positivo"
  elif conteo_negativo > conteo_positivo:
    return "Negativo"
  else:
    return "Neutro"

# Ejemplos de uso
texto1 = "Hoy me siento muy feliz y bien."
resultado1 = analizar_sentimiento_basico_es(texto1)
print(f"Sentimiento de '{texto1}': {resultado1}")

texto2 = "Qué día tan malo y terrible."
resultado2 = analizar_sentimiento_basico_es(texto2)
print(f"Sentimiento de '{texto2}': {resultado2}")

texto3 = "El día está normal."
resultado3 = analizar_sentimiento_basico_es(texto3)
print(f"Sentimiento de '{texto3}': {resultado3}")

texto4 = "Gracias por tu increíble ayuda, me siento bien."
resultado4 = analizar_sentimiento_basico_es(texto4)
print(f"Sentimiento de '{texto4}': {resultado4}")

texto5 = "Tengo un problema difícil y me siento triste."
resultado5 = analizar_sentimiento_basico_es(texto5)
print(f"Sentimiento de '{texto5}': {resultado5}")

texto6 = ""
resultado6 = analizar_sentimiento_basico_es(texto6)
print(f"Sentimiento de '': {resultado6}")


 

Explicación del Código:

  1. Función analizar_sentimiento_basico_es(texto):
    • Define dos listas: palabras_positivas y palabras_negativas con algunas palabras clave comunes en español asociadas a cada sentimiento.
    • Convierte el texto de entrada a minúsculas usando .lower() para realizar una búsqueda insensible a mayúsculas.
    • Cuenta la cantidad de palabras positivas presentes en el texto utilizando una comprensión de lista y la función sum().
    • Cuenta la cantidad de palabras negativas presentes en el texto de manera similar.
    • Compara los conteos de palabras positivas y negativas:
      • Si el conteo positivo es mayor, devuelve "Positivo".
      • Si el conteo negativo es mayor, devuelve "Negativo".
      • Si los conteos son iguales, devuelve "Neutro".

Ejemplos de Uso:

Los ejemplos muestran cómo la función intenta determinar el sentimiento de diferentes frases en español basándose en la presencia de las palabras clave definidas.

Recuerda que este es un análisis de sentimiento muy básico. Un análisis de sentimiento real y preciso en español requeriría técnicas más avanzadas de procesamiento de lenguaje natural y probablemente el uso de bibliotecas especializadas. Sin embargo, este ejemplo ilustra la manipulación de cadenas en español para una tarea de análisis.