import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
1. Carregar os dados
url = "https://raw.githubusercontent.com/alura-cursos/nlp_analise_sentimento/refs/heads/main/Dados/dataset_avaliacoes.csv"
df = pd.read_csv(url)
2. Função para classificar texto
def classificar_texto(texto, coluna_texto, coluna_classificacao):
vetorizar = CountVectorizer(lowercase=False, max_features=50)
bag_of_words = vetorizar.fit_transform(texto[coluna_texto])
X_treino, X_teste, y_treino, y_teste = train_test_split(
bag_of_words,
texto[coluna_classificacao],
random_state=4978
)
regressao_logistica = LogisticRegression(max_iter=1000)
regressao_logistica.fit(X_treino, y_treino)
acuracia = regressao_logistica.score(X_teste, y_teste)
return acuracia
3. Executar a função
acuracia_modelo = classificar_texto(df, "avaliacao", "sentimento")
4. Exibir resultado
print(f"Acurácia do modelo com 'avaliacao': {acuracia_modelo * 100:.2f}%")
