Pular para o conteúdo
Bruno Dórea
Todos os posts

4 mins de leitura


Analisando Sentimentos

Desafios de Código - Simulando Desafios com IAs Generativas - 1/5


Santander 2024 - Fundamentos de IA para Devs
Santander 2024 - Fundamentos de IA para Devs

Descrição

Imagine que você foi designado a criar um algoritmo para analisar o sentimento de um comentário fornecido pelo usuário, simulando analises de sentimentos, um assunto muito comentado dentro do Machine Learning. O programa solicitará ao usuário que insira um comentário, e em seguida, dividirá esse comentário em palavras individuais.

Após isso, ele contará o número de palavras positivas, negativas e neutras dentro do comentário, baseando-se em uma lista pré-definida de palavras-chave. As palavras consideradas positivas incluem "bom", "ótimo", "excelente", "maravilhoso", "gostei" e "incrível" enquanto as palavras negativas incluem "ruim", "péssimo", "horrível", "terrível" e "odeio". Já as palavras neutras incluem "mas", "deixou", "apesar" e "embora"

Depois de calcular as contagens de palavras positivas e negativas, o programa determinará o sentimento predominante do comentário. Se houver mais palavras positivas do que negativas, o sentimento será considerado positivo. Se houver mais palavras negativas do que positivas, o sentimento será considerado negativo. Caso contrário, se houver um número igual de palavras positivas e negativas, o sentimento será neutro.

Entrada

O usuário será solicitado a fornecer um comentário como entrada para o programa.

Saída

O programa exibirá o sentimento do comentário inserido pelo usuário, que pode ser "Positivo", "Negativo" ou "Neutro", dependendo da análise das palavras-chave no comentário.

Exemplos

A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.

EntradaSaída
A mentoria foi incrível, aprendi muito!Sentimento: Positivo
EntradaSaída
O clima hoje está terrível, odeio dias quentes.Sentimento: Negativo
EntradaSaída
A comida estava boa, mas o serviço deixou a desejar.Sentimento: Neutro

Resolução

import re
 
def analyze_sentiment():
    comentario = input()
    palavras = re.findall(r'\b\w+\b', comentario.lower())
    positivas = ["bom", "boa", "ótimo", "excelente", "maravilhoso", "gostei", "incrível"]
    negativas = ["ruim", "péssimo", "horrível", "terrível", "odeio"]
    neutras = ["mas", "deixou", "apesar", "embora"]
    count_positivo = sum(palavra in positivas for palavra in palavras)
    count_negativo = sum(palavra in negativas for palavra in palavras)
    count_neutro = sum(palavra in neutras for palavra in palavras)
 
    if count_positivo > count_negativo and count_neutro == 0:
        return "Positivo"
    elif count_negativo > count_positivo and count_neutro == 0:
        return "Negativo"
    else:
        return "Neutro"
 
sentimento = analyze_sentiment()
 
print("Sentimento:", sentimento)

Para encontrar outras soluções, verifique aqui.

Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.