Essa é a parte 20 de 24 na série Python + IA: Fundamentos e Projetos Práticos
- Ambiente, Sintaxe Básica e Variáveis em Python — Bootcamp Dia 1
- Como Trabalhar com Listas no Python — Bootcamp Dia 6
- Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes | Bootcamp Dia 7
- Dicionários em Python: chave e valor, o jeito inteligente de armazenar dados
- Funções em Python: Escreva Menos, Faça Mais
- Tratamento de Erros em Python: programe com segurança
- Leitura e Escrita de Arquivos em Python: salve seus dados no mundo real
- Salvando Dados Estruturados com JSON em Python
- Funções com Múltiplos Retornos em Python: eficiência e organização
- Parâmetros Opcionais e Valores Padrão em Python
- *args e **kwargs em Python: flexibilidade total nas funções
- List Comprehensions em Python: código elegante e eficiente
- Manipulando Arquivos CSV com Python: automatize leitura e escrita de dados
- Começando com Pandas em Python: análise de dados para IA e automações
- Limpeza e Transformação de Dados com Pandas: preparando para IA
- Inteligência Artificial com Python: Fundamentos e Primeira Integração com a OpenAI
- Classificação de Texto com IA: Detectando Temas e Categorias
- Geração de Texto com IA: Criando Respostas Inteligentes com Python
- Chatbot com IA em Python: Construindo um Assistente Inteligente
- Como Detectar Fake News com Python e IA
- Como Criar uma Interface com IA em Python para Detectar Fake News
- Como Avaliar a Qualidade de um Modelo de IA com Python — Além da Acurácia
- Como Balancear Dados e Validar Modelos com Python e IA
- Projeto Final: Criando um Classificador de Fake News com Interface Web em Python (Streamlit)
Hoje vamos treinar um modelo de IA para detectar notícias falsas (fake news) com base em texto.
É um projeto real que aplica NLP (Processamento de Linguagem Natural) e Machine Learning com Python.
🧠 O que é a detecção de fake news?
É a tarefa de classificar uma notícia como VERDADEIRA ou FALSA com base em seu conteúdo textual. Isso ajuda a:
- Combater desinformação em massa
- Criar filtros automáticos em redes sociais
- Ajudar jornalistas e plataformas de checagem
🧰 O que usamos
Ferramenta | Função |
---|---|
pandas | Manipulação de dados em tabela (CSV) |
scikit-learn | Machine Learning e avaliação |
TfidfVectorizer | Transforma texto em números |
PassiveAggressiveClassifier | Algoritmo eficiente para dados de texto |
📦 Instale os pacotes
pip install pandas scikit-learn
📂 Dataset de exemplo
📥 Baixar fake_news_dataset.csv
Esse CSV contém 10 notícias (5 reais, 5 falsas) com colunas title
, text
e label
.
🐍 Código Python:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import PassiveAggressiveClassifier
from sklearn.metrics import accuracy_score
# Carrega o dataset
df = pd.read_csv("fake_news_dataset_v2.csv")
df = df[['title', 'text', 'label']].dropna()
# Divide os dados
X_train, X_test, y_train, y_test = train_test_split(
df['text'], df['label'], test_size=0.25, random_state=7)
# Vetorização dos textos
vectorizer = TfidfVectorizer(stop_words='english', max_df=0.7)
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)
# Treinamento do classificador
model = PassiveAggressiveClassifier(max_iter=50)
model.fit(X_train_vec, y_train)
# Teste do modelo
y_pred = model.predict(X_test_vec)
score = accuracy_score(y_test, y_pred)
# Exibir resultados
resultado_df = pd.DataFrame({
'Texto': X_test.values,
'Real': y_test.values,
'Previsto': y_pred
})
print("📋 Classificação de Notícias:")
print(resultado_df.to_string(index=False))
print(f"\n🔍 Acurácia: {round(score * 100, 2)}%")
✅ Aprendizado do Dia
Você aprendeu a:
- Ler um dataset de texto
- Transformar esse texto em dados numéricos (vetorização)
- Treinar um modelo real de classificação
- Avaliar e interpretar o resultado
🧪 Desafio
Crie um novo arquivo meu_classificador.py
com os seguintes ajustes:
- Treine o modelo com 100% dos dados (
test_size=0
) - Faça uma interface interativa via
input()
:- Usuário digita um texto
- O modelo responde se parece REAL ou FAKE
- Permita digitar várias vezes até o usuário escrever “sair”