Durante esta atividade final, utilizei o modelo de análise de sentimentos construído ao longo do curso para classificar novas avaliações de clientes sobre um produto. A proposta foi carregar um novo arquivo CSV com avaliações ainda não classificadas, aplicar o mesmo processo de tratamento textual usado anteriormente e, em seguida, utilizar o modelo treinado para prever se cada avaliação tinha um sentimento positivo ou negativo.
Primeiro, carreguei as novas avaliações e apliquei a função processar_avaliacao, responsável por realizar as etapas de pré-processamento do texto, como tokenização, remoção de stopwords, remoção de pontuação, normalização dos acentos e aplicação de stemming. Esse passo foi importante para garantir que os novos textos estivessem no mesmo padrão dos dados usados no treinamento do modelo.
Durante a execução, enfrentei alguns desafios comuns em notebooks de machine learning. Em alguns momentos, variáveis importantes ainda não estavam definidas no ambiente, como o TfidfVectorizer, as stopwords do NLTK e o próprio vetorizador treinado. Também precisei entender a diferença entre usar fit_transform e transform. O fit_transform foi utilizado na base original para ajustar o vocabulário do TF-IDF, enquanto o transform foi usado nas novas avaliações, reaproveitando o mesmo vocabulário já aprendido. Esse detalhe foi essencial, pois criar um novo vetorizador do zero para as novas avaliações quebraria a compatibilidade com o modelo treinado.
Outro ponto importante foi entender que o retorno do TfidfVectorizer aparece como uma matriz esparsa, o que inicialmente pode parecer um erro, mas na verdade é o comportamento esperado. Essa matriz representa numericamente os textos, considerando as features extraídas pelo TF-IDF com n-grams.
Após ajustar esses pontos, consegui transformar as novas avaliações, passar os dados para o modelo de Regressão Logística e gerar um DataFrame final contendo a avaliação original e o sentimento previsto. Ao analisar os resultados, foi possível comparar se as classificações faziam sentido com o conteúdo dos textos, validando de forma prática o funcionamento do modelo.
Essa atividade foi muito útil porque consolidou todo o fluxo aprendido no curso: preparação dos textos, vetorização, treinamento do modelo e aplicação em dados novos. Além disso, os erros encontrados ajudaram a reforçar a importância de manter a mesma sequência de processamento entre o treinamento e a previsão, algo fundamental em projetos reais de NLP.
Link do código desenvolvido: https://github.com/Moquiuti/NLP/blob/main/avaliandoUmProduto.ipynb