Analisador de sentimentos de python
- #Python
# Analisador de Sentimentos com TextBlob e NLTK
Este código em **Python** implementa um simples analisador de sentimentos baseado em respostas do usuário.
Ele utiliza a biblioteca **TextBlob** para processar a linguagem natural e o **NLTK** para garantir que os recursos necessários para a tokenização estejam disponíveis.
---
## 🔧 Bibliotecas Utilizadas
- **TextBlob**: Usada para análise de sentimentos (positividade, negatividade ou neutralidade).
- **NLTK**: Necessária para a tokenização de texto. O código verifica se o pacote `punkt` já está instalado, caso contrário, faz o download automaticamente.
---
## 📝 Estrutura do Código
1. **Verificação do NLTK**
- O código tenta localizar o recurso `punkt`.
- Se não encontrado, ele baixa automaticamente.
2. **Lista de Perguntas**
- Um conjunto de perguntas pré-definidas é armazenado em uma lista chamada `perguntas`.
- Exemplo: *"Como vai sua vida?"*, *"Quais as suas expectativas para o futuro?"*, etc.
3. **Função `analizar_sentimentos`**
- Recebe uma resposta como parâmetro.
- Converte a resposta em um objeto `TextBlob`.
- Obtém a **polaridade** do texto, que varia entre `-1` (muito negativo) e `1` (muito positivo).
- Retorna uma das três classificações:
- `"Positivo"` → quando a polaridade > 0.1
- `"Negativo"` → quando a polaridade < -0.1
- `"Neutro"` → quando a polaridade está entre -0.1 e 0.1
4. **Execução Principal**
- O programa pede que o usuário responda às perguntas em **inglês**.
- Para cada resposta, o sentimento é analisado e exibido no terminal.
---
```python
from textblob import TextBlob
import nltk
# Verificação do tokenizador 'punkt'
try:
nltk.data.find("tokenizers/punkt")
except LookupError:
nltk.download("punkt")
# Lista de perguntas
perguntas = [
"Como vai sua vida?",
"Quais as suas expectativas para o futuro?",
"O que você espera de um emprego?",
"Como você se sente em relação ao seu trabalho atual?",
"Quais são seus objetivos pessoais?"
]
# Função para análise de sentimentos:
def analizar_sentimentos(resposta):
blob = TextBlob(resposta)
polaridade = blob.sentiment.polarity
if polaridade > 0.1:
return "Positivo"
elif polaridade < -0.1:
return "Negativo"
else:
return "Neutro"
# Execução principal
print("\nResponda às perguntas abaixo com sinceridade (em inglês):\n")
for pergunta in perguntas:
resposta = input(pergunta + "\n>")
sentimento = analizar_sentimentos(resposta)
print(f"-> Sentimento detectado: {sentimento}\n")