{"id":25580286,"url":"https://github.com/caioambro/bertimbau_lstm","last_synced_at":"2026-05-10T07:52:06.394Z","repository":{"id":278647370,"uuid":"936311191","full_name":"CaioAmbro/BERTimbau_LSTM","owner":"CaioAmbro","description":"Projeto de dados para análise de sentimentos comparando os modelos BERTimbau e LSTM para Processamento de Linguágem Natural (PLN).","archived":false,"fork":false,"pushed_at":"2025-02-20T22:17:25.000Z","size":1461,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T04:05:29.019Z","etag":null,"topics":["algoritmo","aprendizado-de-maquina","bertimbau","berttokenizer","dados","goemotions","jupyter-notebook","keras","lstm","machine-learning-algorithms","nlp","pln","sentimentos","tensorflow","transformers","web-scraping"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CaioAmbro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-20T21:50:56.000Z","updated_at":"2025-02-20T22:27:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"378f26d3-bca2-481b-b783-08366befdc17","html_url":"https://github.com/CaioAmbro/BERTimbau_LSTM","commit_stats":null,"previous_names":["caioambro/bertimbau_lstm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CaioAmbro/BERTimbau_LSTM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaioAmbro%2FBERTimbau_LSTM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaioAmbro%2FBERTimbau_LSTM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaioAmbro%2FBERTimbau_LSTM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaioAmbro%2FBERTimbau_LSTM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CaioAmbro","download_url":"https://codeload.github.com/CaioAmbro/BERTimbau_LSTM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaioAmbro%2FBERTimbau_LSTM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013694,"owners_count":26085390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algoritmo","aprendizado-de-maquina","bertimbau","berttokenizer","dados","goemotions","jupyter-notebook","keras","lstm","machine-learning-algorithms","nlp","pln","sentimentos","tensorflow","transformers","web-scraping"],"created_at":"2025-02-21T04:15:22.574Z","updated_at":"2025-10-13T05:06:19.779Z","avatar_url":"https://github.com/CaioAmbro.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"## **Análise de Sentimentos nas Avaliações da Saúde Pública**\n\n### **Projeto de Ciência de Dados – Comparação entre BERTimbau e LSTM**\n\n**Resumo do Projeto:**\n\n**A qualidade dos serviços públicos de saúde é um fator essencial para o bem-estar da população. Com o crescimento da digitalização, muitos cidadãos compartilham suas experiências por meio de avaliações online, que podem fornecer insights valiosos para gestores e formuladores de políticas.**\n\n**Este projeto tem como objetivo analisar as avaliações das unidades de saúde pública em quatro cidades do estado de São Paulo (Cotia, Carapicuíba, Osasco e Itapevi), utilizando técnicas de Processamento de Linguagem Natural (PLN) para identificar os sentimentos expressos nos comentários.***   \n\n**Para isso, foram comparados dois modelos de aprendizado de máquina: BERTimbau, um modelo baseado em Transformer treinado para a língua portuguesa, e LSTM (Long Short-Term Memory), uma rede neural recorrente amplamente utilizada para processamento de sequências textuais.**\n\n##\n### Base de Dados Utilizada Para o Treinamento Dos Modelos: GoEmotions\nPara treinar os modelos de Processamento de Linguagem Natural (PLN) na classificação de sentimentos, utilizamos a base de dados GoEmotions, desenvolvida pelo Google. Trata-se de um dataset de código aberto, amplamente utilizado na pesquisa de emoções em texto.\n\nA GoEmotions contém um total de 211.226 sentenças, classificadas em 27 categorias emocionais com base na Roda das Emoções de Plutchik. Essa variedade permite que os modelos aprendam a distinguir sentimentos mais específicos além das emoções básicas.\nAdaptando-se para o Português.   \n\nComo a base de dados original está em inglês, foi necessário realizar um processo de tradução para garantir que os modelos fossem treinados em português. Além disso, aplicamos técnicas de pré-processamento, como:   \n\n✅ Tradução de textos para padronizar os comentários que estavam em inglês;   \n✅ Remoção de stopwords para eliminar palavras irrelevantes;  \n✅ Correção ortográfica para evitar ruídos nos dados;  \n✅ Balanceamento das classes para garantir que o modelo não fosse tendencioso a determinadas emoções.   \n\nEsses ajustes foram essenciais para que os modelos pudessem reconhecer sentimentos em textos escritos em português brasileiro, tornando a análise mais precisa e relevante para o contexto das avaliações.   \n\n##\n### Base de Dados Com As Avaliações Públicas:   \nA primeira etapa para a criação da base de dados com as avaliações das quatro cidades consistiu na coleta de avaliações públicas disponíveis no Google Avaliações, utilizando técnicas de Web Scraping. O dataset final contém 4.766 avaliações, de um total de 103 unidades de saúde divididos entre as 4 cidades.\n\nPara garantir a qualidade dos dados, foram realizadas as seguintes etapas de pré-processamento:   \n\n✅ Remoção de Stopwords para eliminar palavras irrelevantes para a análise de sentimento.   \n✅ Correção ortográfica para evitar ruídos nos modelos de PLN.  \n\n##\n### Modelos Utilizados:   \nApós pesquisar sobre as possíveis opções, foram selecionados e treinados dois modelos distintos para a classificação de sentimentos:\n\n🔹 **BERTimbau:** Baseado no modelo BERT, uma variação treinada especificamente para a língua portuguesa, permitindo uma compreensão mais precisa dos textos escritos no idioma. \n\n🔹 **LSTM (Long Short-Term Memory):** Uma rede neural recorrente projetada para capturar padrões em textos. É amplamente utilizada para PLN devido à sua capacidade de manter memória de longo prazo em textos. \n\n\n##\n### Classificação de Sentimentos:   \nPara categorizar os sentimentos expressos nos comentários, utilizou-se a Roda das Emoções de Plutchik, um modelo psicológico que classifica 27 emoções humanas e as agrupa em oito categorias principais:   \n\n🟢 Alegria   \n🟡 Antecipação   \n🔴 Raiva   \n🔵 Tristeza   \n🟠 Surpresa   \n🟣 Nojo   \n⚫ Medo   \n⚪ Confiança   \n   \nEssas categorias principais também foram agrupadas com a clássica classificação **Positiva**, **Neutra** e **Negativa**, para avaliações mais abrangentes. \n\n##\n### Resultados Obtidos:\nApós a aplicação dos modelos de PLN ao dataset de avaliações de saúde pública, observamos os seguintes insights:   \n\n✅ O BERTimbau apresentou um desempenho superior, com maior precisão na classificação de sentimentos, principalmente em emoções menos frequentes no dataset.    \n\n✅ O modelo LSTM, apesar de ter conseguido se sair muito bem na classificação, teve dificuldades em identificar corretamente certos sentimentos, especialmente aqueles menos representados nos dados, mesmo após o balanceamento de classes.   \n\n✅ Análise Exploratória dos Comentários: É possível notar que a maioria das avaliações está ligada à qualidade positiva do atendimento, tanto em elogios quanto em agradecimentos.  Isso sugere que os usuários que fizeram os comentários valorizam bastante a interação com os profissionais da saúde. Porém, parte significativa das avaliações estavam relacionadas a falta de qualidade nas unidades de saúde, como críticas a infraestrutura, atrasos nos atendimentos e a gestão de saúde num geral.  \n\n✅ O tempo de processamento dos modelos variou, sendo:   \n\n•\t⏳ BERTimbau: 40,21 minutos   \n•\t⏳ LSTM: 28,3 minutos   \n\n##\n### Conclusões e Impacto do Projeto:\n📌 O uso de Inteligência Artificial aplicada à saúde pública permite extrair informações valiosas sobre a percepção da população em relação aos serviços oferecidos.   \n📌 O BERTimbau se mostrou uma alternativa mais robusta para a classificação de sentimentos em português, sendo uma ferramenta promissora para análises futuras.   \n📌 A análise indicou que, de forma sutil, os sentimentos expressos nas avaliações eram positivos, refletindo uma percepção favorável da população em relação aos serviços prestados pelas unidades de saúde estudadas.   \n📌 Com o crescimento da cultura do feedback digital, técnicas como PLN e aprendizado de máquina podem ser aplicadas para monitorar a satisfação dos cidadãos e auxiliar na tomada de decisões estratégicas para melhoria contínua dos serviços públicos.   \n\n##\n### Tecnologias Utilizadas:   \n💻 Linguagem de Programação: Python    \n📊 Bibliotecas: Transformers, BertTokenizer, TensorFlow, Keras, Matplotlib, Seaborn, NumPy, Pandas   \n📡 Coleta de Dados: Web Scraping    \n🤖 Modelos de Machine Learning: BERTimbau, LSTM   \n📂 Ambiente de Desenvolvimento: Jupyter Notebook   \n\n\n##\n### Acesse os arquivos para verificar outras informações do projeto:   \n   \nDeixei alguns slides selecionados que ajudam no entendimento dos modelos e resultados.    \nNo arquivo ***AlgoritmoBERT.ipynb*** se encontra o código python.   \nOs arquivos da pasta ***fine_tuned_model*** são utilizados para rodar o BERTimbau em python.   \nO arquivo ***RESULTADOS_BERT*** é a ***BASE_CIDADES*** com os resultados do BERTimbau.   \n\n### Caso se interesse e queira entender melhor do projeto, entre em contato via linkedin. Obrigado.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaioambro%2Fbertimbau_lstm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaioambro%2Fbertimbau_lstm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaioambro%2Fbertimbau_lstm/lists"}