{"id":15157909,"url":"https://github.com/ledsouza/deep-learning-noticias","last_synced_at":"2026-03-08T15:34:07.483Z","repository":{"id":255016899,"uuid":"842150594","full_name":"ledsouza/deep-learning-noticias","owner":"ledsouza","description":"Este projeto visa construir dois modelos de Machine Learning: um para classificar notícias em diferentes categorias e outro para realizar o autocomplete de texto, prevendo a próxima palavra em uma frase. O conjunto de dados fornecido consiste em notícias de um site de notícias, já pré-processadas e armazenadas em um arquivo CSV.","archived":false,"fork":false,"pushed_at":"2024-08-27T13:28:56.000Z","size":70270,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T02:04:31.192Z","etag":null,"topics":["deep-learning","keras","machine-learning","python","scikit-learn","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/ledsouza.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}},"created_at":"2024-08-13T19:18:21.000Z","updated_at":"2024-08-27T13:29:39.000Z","dependencies_parsed_at":"2024-08-27T15:07:11.897Z","dependency_job_id":null,"html_url":"https://github.com/ledsouza/deep-learning-noticias","commit_stats":null,"previous_names":["ledsouza/deep-learning-noticias"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledsouza%2Fdeep-learning-noticias","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledsouza%2Fdeep-learning-noticias/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledsouza%2Fdeep-learning-noticias/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledsouza%2Fdeep-learning-noticias/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ledsouza","download_url":"https://codeload.github.com/ledsouza/deep-learning-noticias/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237982337,"owners_count":19397246,"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","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":["deep-learning","keras","machine-learning","python","scikit-learn","tensorflow"],"created_at":"2024-09-26T20:20:31.895Z","updated_at":"2025-10-24T14:31:19.660Z","avatar_url":"https://github.com/ledsouza.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Classificação de Notícias e Autocomplete de Texto 📰\r\n\r\n![Static Badge](https://img.shields.io/badge/Status-Finalizado-green)\r\n\r\n## Descrição\r\n\r\nEste projeto visa construir dois modelos de Machine Learning: um para classificar notícias em diferentes categorias e outro para realizar o autocomplete de texto, prevendo a próxima palavra em uma frase. O conjunto de dados fornecido consiste em notícias de um site de notícias, já pré-processadas e armazenadas em um arquivo CSV.\r\n\r\n## Tecnologias Utilizadas\r\n\r\n- Python\r\n- Pandas\r\n- Scikit-learn\r\n- TensorFlow\r\n- Keras\r\n\r\n## Dicionário de Dados\r\n\r\nO arquivo CSV de dados contém as seguintes colunas:\r\n\r\n| Coluna        | Descrição                                      | Tipo de Dado |\r\n|---------------|-------------------------------------------------|--------------|\r\n| ClassIndex    | Índice da categoria da notícia (0-3)            | Numérico     |\r\n| Título        | Título da notícia                               | Texto        |\r\n| Descrição     | Descrição da notícia                            | Texto        |\r\n| Texto         | Título e descrição concatenados, separados por espaço | Texto        |\r\n\r\n## Descrição Detalhada do Projeto\r\n\r\n### Classificação de Notícias\r\n\r\n- **Pré-processamento:**\r\n    - O campo `ClassIndex` foi ajustado para que os valores variem de 0 a 3, em vez de 1 a 4, para compatibilidade com o TensorFlow.\r\n    - Uma nova coluna `Texto` foi criada, combinando o título e a descrição da notícia.\r\n- **Separação de Dados:**\r\n    - Os dados foram divididos em conjuntos de treino e teste usando `train_test_split` da biblioteca Scikit-learn, com uma proporção de 80% para treino e 20% para teste.\r\n- **Tokenização:**\r\n    - A coluna `Texto` foi tokenizada usando `TextVectorization` do Keras, com um vocabulário de tamanho `VOCAB_SIZE`.\r\n- **Modelagem:**\r\n    - Diversas arquiteturas de modelos de classificação foram experimentadas, incluindo:\r\n        - **Modelo 1:** Uma rede neural simples com camadas `Embedding`, `GlobalAveragePooling1D` e `Dense`.\r\n        - **Modelo 2:** Uma rede neural convolucional (CNN) com camadas `Embedding`, `Conv1D`, `MaxPooling1D`, `GlobalAveragePooling1D`, `Dropout` e `Dense`.\r\n        - **Modelo com camadas LSTM:** Uma rede neural recorrente (RNN) com camadas `Embedding`, `Bidirectional(LSTM)`, `Dense` e `Dropout`.\r\n    - Os modelos foram compilados com o otimizador `Adam`, a função de perda `sparse_categorical_crossentropy` e a métrica `accuracy`.\r\n- **Treinamento:**\r\n    - Os modelos foram treinados com os dados de treino, utilizando o conjunto de teste para validação.\r\n    - O desempenho do modelo foi avaliado usando a acurácia e a perda nos conjuntos de treino e validação.\r\n- **Avaliação:**\r\n    - Uma matriz de confusão foi gerada para visualizar o desempenho do modelo em cada categoria.\r\n\r\n### Autocomplete de Texto\r\n\r\n- **Amostragem:**\r\n    - Uma amostra menor dos dados foi utilizada para acelerar o treinamento do modelo de autocomplete.\r\n- **Tokenização:**\r\n    - O texto foi tokenizado usando `TextVectorization` do Keras.\r\n- **Pré-processamento:**\r\n    - As sequências de entrada foram preparadas da seguinte forma:\r\n        - Remoção de zeros à direita de cada sequência.\r\n        - Adição de padding à esquerda para garantir o mesmo comprimento.\r\n        - Truncamento de sequências longas.\r\n        - Remoção de sequências repetidas.\r\n- **Modelagem:**\r\n    - Uma rede neural recorrente (RNN) com camadas `Embedding`, `Bidirectional(LSTM)`, `Dense`, `BatchNormalization` e `Dropout` foi utilizada.\r\n    - O modelo foi compilado com a função de perda `categorical_crossentropy`, o otimizador `Adam` e a métrica `accuracy`.\r\n- **Treinamento:**\r\n    - O modelo foi treinado com as sequências de entrada preparadas.\r\n- **Previsão:**\r\n    - Uma função `predict_next_words` foi criada para prever as próximas palavras mais prováveis, dado um texto de entrada.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fledsouza%2Fdeep-learning-noticias","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fledsouza%2Fdeep-learning-noticias","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fledsouza%2Fdeep-learning-noticias/lists"}