Como treinar um classificador de texto com scikit-learn

Quer criar uma inteligência artificial que classifica textos como positivos, negativos ou neutros? Com a biblioteca scikit-learn isso é possível de forma rápida e prática. Neste post, você vai aprender a treinar um modelo simples de classificação de texto usando Python.

Pré-requisitos

  • Python instalado
  • Bibliotecas: scikit-learn e pandas

1. Instalando as bibliotecas

pip install scikit-learn pandas

2. Preparando os dados

Vamos criar um exemplo simples com frases e sentimentos associados:

import pandas as pd

dados = {
    "texto": [
        "Eu adorei esse produto!",
        "Horrível, nunca mais compro.",
        "Muito bom, recomendo.",
        "Péssimo atendimento.",
        "Gostei bastante.",
        "Não gostei do serviço."
    ],
    "sentimento": ["positivo", "negativo", "positivo", "negativo", "positivo", "negativo"]
}

df = pd.DataFrame(dados)

3. Transformando texto em números

O modelo não entende texto diretamente. Vamos usar o CountVectorizer:

from sklearn.feature_extraction.text import CountVectorizer

vetor = CountVectorizer()
X = vetor.fit_transform(df["texto"])  # matriz de palavras
y = df["sentimento"]

4. Treinando o modelo

Vamos usar o algoritmo Naive Bayes, muito comum em classificação de texto:

from sklearn.naive_bayes import MultinomialNB

modelo = MultinomialNB()
modelo.fit(X, y)

5. Fazendo previsões

Agora podemos testar o modelo com frases novas:

novas_frases = vetor.transform([
    "Achei maravilhoso!",
    "Não funcionou como eu queria."
])

print(modelo.predict(novas_frases))

Saída esperada:

['positivo' 'negativo']

Conclusão

Com poucas linhas de código, criamos um classificador de sentimentos com IA usando scikit-learn. Esse modelo pode ser expandido com datasets maiores, análise de sentimentos, e outras técnicas como TF-IDF ou modelos mais avançados.