1
resposta

[Projeto] Mão na massa: testando o modelo com novas avaliações de um produto

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

1 resposta

Oi, Leandro! Como vai?

Obrigado por compartilhar com tanto detalhe todo o seu processo nesta atividade final do curso. Relatos como o seu são muito valiosos para a comunidade, pois mostram na prática como funciona o fluxo completo de um projeto de análise de sentimentos com dados de avaliações de produto.

Sua explicação sobre a diferença entre fit_transform e transform é bem interessante e toca em um dos pontos mais importantes do treinamento de modelos de machine learning. Usar o fit_transform na base original para ajustar o vocabulário do TF-IDF e, em seguida, aplicar apenas o transform nas novas avaliações garante que os textos novos sejam vetorizados com o mesmo vocabulário usado no treinamento. Esse detalhe é fundamental para manter a compatibilidade com o modelo treinado e é exatamente o que acontece em projetos reais de NLP.

Também foi muito positivo o fato de você ter identificado que a matriz esparsa gerada pelo TfidfVectorizer é o comportamento esperado, e não um erro. Esse tipo de compreensão mostra maturidade no uso das ferramentas e evita confusões comuns durante a execução de notebooks.

A remoção de stopwords, a normalização dos acentos e o stemming aplicados pela função processar_avaliacao garantiram que os textos estivessem no mesmo padrão dos dados usados no treinamento, o que é indispensável para que o modelo de Regressão Logística consiga classificar o sentimento de cada avaliação corretamente.

Você chegou a comparar os resultados previstos pelo modelo com as avaliações originais e percebeu algum caso em que a classificação de sentimento pareceu incorreta ou inesperada?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!