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:
- 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.