Skip to content

Neste projeto será aplicado um modelo de deep learning para classificar se um texto é fake news ou não

Notifications You must be signed in to change notification settings

gustavoramos82/Classificando-Fake-News-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 

Repository files navigation

Classificando Fake News

Neste projeto será aplicado um modelo de deep learning para classificar se um texto é fake news ou não. Inicialmente será feito uma análise exploratória, em seguida será feito a modelagem com redes neurais artificiais (RNA).

O dataset foi retirado do kaggle que pode ser acessado aqui A partir disso, o tratamento dos dados seguiu a estutura medallion, no qual pode ser acessado aqui, no qual é dividido nas seguintes pastas:

  • Bronze: Dataset original que foi extraido
  • Prata: Tratamento inicial do dataset
  • Ouro: Versão final que será utilizado para a modelagem ou para o dashboard

Se quiser mais informações sobre, clique aqui

Este trabalho do repositório é resultado de um trabalho, se quiser ler um resumo do tema leia o arquivo do notion aqui

O projeto seguiu o seguinte fluxograma que é como vai estar organizado nos tópicos, que será mostrado na imagem abaixo

Fluxograma do Projeto2

Tópicos

Temos dois arquivos, um com as noticias verdadeiras e outras com as falsas, nas quais tem-se os seguintes atributos:

  • title: Título da noticia
  • texto: texto da noticias
  • subject: Tópico do que se trata a noticia
  • date: data de publicação

Para ser mais fácil a leitura, os vão ser lançado em tópicos e vai se atualizando de acordo com o vai sendo feito

Análise Exploratória

Clique no tópico para acessar

Pré-processamneto

Além de um pré-processamento feito anteriormente para a pasta prata que foi a remoção de stopwords e lematização, agora vai ser feita os seguintes tratamentos:

  • selecionar as noticias dos anos de 2016 e 2017

pois eesse anos tem termos da época e é a maior parte das noticias

  • inserindo a label nos dataframes
  • juntar os dataframes

Pois veio em dois dataframes diferentes e tem que juntar para fazer a modelagem

  • selecionar o campo titulo e label

Pois são apenas esses campos que vão ser utilizados na modelagem

Modelagem

A modelagem vai ser feito primeiro utilizando os modelo de machine learning e usando os modelos como baseline, em seguida será feita a modelagem de redes neurais, sendo aplicado uma rede neural do zero e outro a partir de uma rede neural já existente e retreina-lo

Modelo baseline

Clique aqui para saber mais

Rede neural MLP (Multi Layer Percepton)

Foi construidio uma rede neural em que foi feito no seguinte esquema: image

No qual se obteve as seguintes métricas

  • Acuracia: 0.9460992813110352
  • Precisão: 0.945361852645874
  • Recall: 0.9439864158630371
  • F1-score: 0.944673633598654

Rede Neural Recorrente (RNN)

Foi construidio uma rede neural RNN em que foi feito no seguinte esquema: image

No qual se teve as seguintes méricas

  • Acuracia: 0.9522458910942078
  • Precisão: 0.9503632187843323
  • Recall: 0.951745867729187
  • F1-score: 0.9510540407308745

Avaliação

Podemos ver que, comparando as métricas no que pode ser visto abaixo na tabela

Extra tree MLP RNN
Acurácia 0.9421985815602837 0.9460992813110352 0.9522458910942078
Precisão 0.9464505035617784 0.945361852645874 0.9503632187843323
Recall 0.9342870999030067 0.9439864158630371 0.951745867729187
F1-score 0.9403294691885296 0.944673633598654 0.9510540407308745

As redes neurais teve um desempenho melhor, sobretudo as redes RNN, mas se comparado como o Extra tree classifier, dependo da situação, poderia mais preferência de um e do outro, por exemplo, se for levar em consideração os custos, o Extra tree seria considerado, pois não usa gpu para treinamento, entretanto, se quiser levar as métricas em consideração, poderia usar a rede neural RNN, que foi o melhor nas métricas, logo poderia haver certas mudanças para ver se o desempenho ser melhor,como:

  • Usar o método embbeding para vetorizar o texto como word2vec
  • Testar outros tipos de arquiteturas (CNN, ou testar outros tipos de RNN, que se mostrou melhor)
  • Usar redes pré-treinadas como BERT e RoBerta (não consegui fazer isso neste projeto, pois não consegui fazer isso para esse projeto)

Então poderia fazer esses três caminhosde acordo com o modelo

  • Se quiser não tem um custo muito alto de produto e não usar gpu, o Extra Tree deve ser levar em consideração
  • No caso do uso da gpu, então o uso de uma rede neural RNN seria melhor já que teoricamente é a mais indicada para este tipo de problema
  • Usar uma rede pré-treinada

Extras

Se quiser saber mais, esses seguintes tópicos pode ser interessante para se pesquisar

  • Método do Cotovelo: acesse a página aqui
  • Índice Callinski-Harasbazs: acesse a página aqui
  • K-means: acesse a página aqui
  • Redução de Dimensionaliddade: acesse a página aqui
  • Métricas de classificação: acesse a página aqui
  • Base onde fiz de base para cirar o modelo de rede neural: acesse a página aqui
  • Rede neural RNN: acesse a página aqui
  • TD-IDF vectoryzer: acesse a página aqui
  • Sobre a camada embedding do keras/tensorflow: acesse a página aqui

About

Neste projeto será aplicado um modelo de deep learning para classificar se um texto é fake news ou não

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published