遇见数据集

Desinformação: AosFatos

收藏
Zenodo2026-01-13 更新2026-05-26 收录
官方服务:

资源简介:

1ª ETAPA - proteção e classificação automática Descrição da arquitetura, tecnologias e passos adotados para a remoção das informações do serviço de fact-checking AosFatos em Python - por meio do processo de Web Scraping (extração de dados da web). Aos Fatos – lista de verificações e páginas de detalhes de cada verificação. O objetivo foi coletado, para cada verificação/artigos selecionados, os campos: a)URL; b) Título; c) Dados; d) Assunto; e) Classificação; f) Tipo (sempre “Checagem”); g) Autor. Os dados foram salvos em dois formatos: CSV (UTF-8) e Excel (.xlsx). 2 - escada e guarnição Camada Ferramenta / Biblioteca Linguagem Python 3.10+ Automação Selenium WebDriver 4.x Navegador sem cabeça Google Chrome + ChromeDriver Esperas WebDriverWait + condições esperadas Manipulação de CSV módulo csv (embutido) Planilha Excel openpyxl DataFrame pandas (opcional) Expressão regular re (embutido) Pausa tempo.dormir 3 - Arquitetura da Solução url_list_aosfatos.py | v Script principal do scraping Etapa 1 - Inicia o Selenium headless Chrome Etapa 2 - Para a lista de URL (AosFatos): { driver.get(url) { espera e extrai campos via CSS { escreve linha em CSV/Excel Etapa 3 - Fecha driver, salva arquivos. 4 - Fluxo de Coleta 1 - Listagem: Acesse a listagem de verificações e links de captura. 2 - Página de seleção: Para cada URL, extrai com seleções próprias. (ex. título, autor, dados, assunto, classificação) e definição do tipo de “Checagem”. 5 - Escrita Incremental de Dados Para persistência imediata: a) CSV: abre em anexo e grava cada registro após raspagem. b) Excel: usa openpyxl.Workbook(), ws.append(row) por item, e salva ao final. Cabeçalho comum: url, título, dados, assunto, classificação, tipo, autor. 6 Exemplo de pseudocódigo import csv, time from selenium import webdriver # ... with open('dados.csv','w',encoding='utf-8') as f: writer = csv.writer(f) writer.writerow([...]) for url in urls: driver.get(url) time.sleep(3) # extrai campos writer.writerow([url, titulo, data, assunto, classificacao, 'Checagem', autor]) driver.quit() Essa etapa foi feita por Jean Carlo Gengnagel https://orcid.org/0009-0009-9862-9256 2ª ETAPA – classificação manual 7 Boas Práticas a) Usar robustas, posicionadas quando possível. b) Definir timeouts e esperas para evitar travamentos. c) Execução headless para automação sem UI. d) Gravação incremental para evitar perda de dados. A classificação da coluna C foi feita manualmente pela equipe: Usando a orientação da legenda: Desinf. Educação: qualquer abordagem envolvida em educação. Desinf. Científica: ciência falsa, negacionismo, teoria da conspiração - temas com enfoque na ciência. Desinf. Gênero: violência de gênero - desinformação entre mulheres. Desinf. Saúde: qualquer subtemática de saúde, vacina, medicamentos, tratamentos, procedimentos. Desinf. Ansiedade Informacional - envolve saúde mental e consumo de conteúdo na web. Desinf. Ambiental - envolve meio ambiente. Outros tipos de desinformação. Essa etapa foi feita pela equipe: Dilyanne Ferreira Tavares - UFAL https://orcid.org/0009-0001-7935-4869 Camilla de Moura Gomes - UFAL https://orcid.org/0009-0004-3614-0184 Erick Bruno Ferreira Santos - UFBA https://orcid.org/0009-0000-5726-3838 Coordenada pela professora: Juliana Fachin - UFAL https://orcid.org/0000-0003-0883-642X 3ª ETAPA - manual de reclassificação Nesta etapa foi feita a reclassificação manual dos dados. Foi verificado todas as classificações e duas classificações foram modificadas Desinf. Ambiental - envolve meio ambiente. Desinf. Científica: ciência falsa, negacionismo, teoria da conspiração - temas com enfoque na ciência. Desinf. Criminosa ou fraudulenta: envolve temas sobre crime, fraudes e golpes. Desinf. Educação: qualquer abordagem envolvida em educação. Desinf. Gênero: violência de gênero - desinformação entre mulheres. Desinf. Política: com conteúdo sobre política Desinf. Saúde: qualquer subtemática de saúde, vacina, medicamentos, tratamentos, procedimentos. Duas categorias originais foram exluídas e outras duas foram inseridas: Incluídas • Desinf. Política: com conteúdo sobre política • Desinf. Criminosa ou fraudulenta: envolve temas sobre crime, fraudes e golpes. Retiradas • Desinf. Ansiedade Informacional - envolve saúde mental e consumo de conteúdo na web. • Outros tipos de desinformação. Essa etapa foi feita pela equipe: Dilyanne Ferreira Tavares - UFAL https://orcid.org/0009-0001-7935-4869 Camilla de Moura Gomes - UFAL https://orcid.org/0009-0004-3614-0184 Erick Bruno Ferreira Santos - UFBA https://orcid.org/0009-0000-5726-3838 Coordenada pela professora: Juliana Fachin - UFAL https://orcid.org/0000-0003-0883-642X 4ª ETAPA - reclassificação automatizada O objetivo desta etapa automática foi reclassificar as notícias verificadas, já que não possuem uma categoria especificamente definida. • Carregar dados de notícias de um arquivo Excel; • identificar as notícias marcadas como “Outros Tipos de desinformação”; • Treinar um modelo de classificação usando as notícias já categorizadas; • Aplicar o modelo treinado para reclassificar as notícias; • Gerar um novo arquivo com as classificações atualizadas. O projeto utiliza as seguintes bibliotecas Python, cada uma com funções específicas: Biblioteca Diretor(a) Uso no Projeto pandas Manipulação de dados Carregamento e processamento do arquivo Excel Seleção de modelo sklearn. Divisão de dados Separação entre dados de treino e teste sklearn.extração de recursos.texto Processamento texto Conversão de texto em vetores numéricos (TF-IDF) modelo sklearn.linear Algoritmos de ML Implementação da Regressão Logística sklearn.pipeline Automação de águia Criação de pipeline de processamento sklearn.metrics Avaliação de modelos Geração de relatórios de classificação 8 Explicação anterior das Bibliotecas 8.1 Pandas Biblioteca fundamental para manipulação e análise de dados. Utilizado para: • Carregar o arquivo Excel com pd.read excel( ) • Filtrar dados válidos e remover valores nulos • Renomear colunas para padronização • Salvar os resultados processados 8.2 Scikit-learn (sklearn) Biblioteca de Machine Learning que fornece ferramentas para classificação, regressão, clustering e redução de dimensionalidade. No projeto, é usado para: • TfidfVectorizer: converte texto em vetores numéricos usando TF-IDF (Term Frequency-Inverse Document Frequency) • LogisticRegression: Algoritmo de classificação que estima probabilidades usando uma função logística • Pipeline: Encadeia transformações e estimadores em uma sequência • relatório de classificação: Gera relatório detalhado de notas de classificação 9 Fluxo de Execução do Código O código segue um fluxo estruturado de seis etapas principais: 9.1 Carregamento e Limpeza dos Dados Listagem 1: Carregamento dos dados 1 # Carregar o arquivo 2 df = pd.read_excel ( "cleaned_file.xlsx" ) 3 4 # Remover linhas totalmente vazias 5 df = df.dropna ( how= "all" ) 6 7 # Se houver colunas com nomes semelhantes, ajuste 8 Se "assunto" estiver em df.columns e "assuntos" não estiver em df.columns: 9 df.rename (colunas={ "assunto": "assuntos"}, inplace=True) O código carrega o arquivo “cleaned file.xlsx”, remove linhas completamente vazias e padroniza os nomes das colunas. 9.2 Separação dos Dados Listagem 2: Separação dos dados 1 # Filtrar os dados v lidos (sem NaN e sem "Outros Tipos") 2 mask_train = df ["assuntos"] . notna() & ( df ["assuntos"]. str. lower() != "outros tipos") 3 train_df = df [mask_train] 4 prever_df = df [df [ "assuntos"] .str. lower() == "outros tipos" ] Separar os dados em dois grupos: artigos já classificados (para treino) e artigos marcados como “Outros Tipos” (para predição). 9.3 Vetorização do Texto Listagem 3: Vetorização TF-IDF 1 # Vetorizar o texto (pode usar título + conteúdo, se existir) 2 vetorizador = TfidfVectorizer(max_features=5000) 3 X_train = vectorizer.fit_transform (train_df ["titulo"]. astype (str) ) 4 y_train = train_df ["assuntos"] Conversor de títulos de artigos em vetores numéricos usando TF-IDF, limitando a 5000 recursos mais importantes. 9.4 Treinamento do Modelo Listagem 4: Treinamento do modelo 1 # Treinar o modelo supervisionado 2 modelo = Regressão Logística (iter_máximo=200) 3 model.fit (X_train, y_train) Treinar um modelo de Regressão Logística usando os artigos já classificados como dados de treino. 9.5 Predição e Reclassificação Listagem 5: Predição e reclassificação 1 # Reclassificar apenas os "Outros Tipos" 2 X_predict = vectorizer.transform (predict_df ["titulo"] .astype (str) ) 3 y_pred = model.predict (X_predict) 4 5 # Atualizar o dataframe original 6 df.loc [predict_df.index, "assuntos"] = y_pred Aplique o modelo treinado para prever novas categorias para os artigos “Outros Tipos”. 9.6 Salvamento dos Resultados Listagem 6: Salvamento dos resultados 1 # Salvar o resultado 2 df.to_excel ( "news_data_reclassificado.xlsx", index=False) 3 4 Imprimir ( " Reclassificação concluída! Apenas 'Outros Tipos' foram atualizados." ) Atualizar o dataframe original com as novas classificações e salvar em “news data reclassificado.xlsx”. 10 Algoritmo TF-IDF O TF-IDF (Term Frequency-Inverse Document Frequency) é uma técnica estatística que avalia a importância de uma palavra em um documento dentro de uma coleção de documentos. É como calcular: TF-IDF(t,d) = TF(t,d) ×IDF(t) (1) Onde: • TF (Frequência do Termo) : Frequência do termo no documento (1) • IDF (Inverse Document Frequency) : Inverso da frequência do termo na coleção • Resultado: Palavras comuns recebem peso baixo, palavras específicas recebem peso alto 11 Regressão Logística A Regressão Logística é um algoritmo de classificação que usa uma função logística para modelar a probabilidade de uma instância pertencente a uma classe específica. Características: • Algoritmo supervisionado para classificação • Produz probabilidades entre 0 e 1 • Eficiente para problemas de classificação multiclasse • Interpretável e rápido para treinamento • Adequado para dados textuais vetorizados A função logística é definida como: P(Y =1|X) = 1 ____________________________________ (2) 1 +e−(β0+β1X1+...+βnXn) 12 Resultados Esperados Ao executar este código, espere-se que: • Todos os artigos marcados como “Outros Tipos” serão reclassificados em categorias mais específicas; • Que o modelo aprenda padrões nos títulos dos artigos para identificar assuntos; • Um novo arquivo “news data reclassificado.xlsx” seja gerado com as classificações atualizadas; • A qualidade das classificações depende da quantidade e qualidade dos dados de treino; • Que o sistema seja capaz de generalizar para novas notícias com títulos semelhantes. 13 Considerações Técnicas • Limitação de Features: O código limita a 5000 features mais importantes para evitar overfitting; • Iterações Máximas: O modelo usa 200 iterações máximas para convergência; • Processamento de Texto: Apenas os títulos são usados para classificação; • Dados de Treino: A qualidade depende da representatividade dos dados já classificados; • Desempenho: O algoritmo é eficiente para conjuntos de dados de tamanho médio. 14 Vantagens e Limitações 14.1 Vantagens • Automação de processo manual de trabalhos; • Escalabilidade para grandes volumes de dados; • Uso de técnicas modernas de Machine Learning; • Interpretabilidade do modelo; • Eficiência computacional. 14.2 Limitações • Dependência da qualidade dos dados de treino. • Uso apenas do título (não considera conteúdo completo). • Possível ver nossos dados de treino. • Necessidade de retreinamento para novos domínios. • Limitação a 5000 recursos pode perder informações importantes. 15 SOBRE A CLASSIFICAÇÃO Este sistema de classificação automática representa uma solução eficiente para o problema de categorização de artigos de notícias. Utilizando técnicas modernas de Machine Learning e processamento de linguagem natural, o código automatiza um processo que seria manualmente trabalhoso e demorado. A combinação de TF-IDF para vetorização de texto e Regressão Logística para classificação oferece um equilíbrio entre performance e interpretabilidade. O sistema é adequado para aplicações onde há uma quantidade razoável de dados já classificados, no qual a precisão da classificação é importante para a organização e recuperação de informações. Para melhorar ainda mais o sistema, seria recomendável: • Incluir o conteúdo completo das notícias checadas, além dos títulos; • Implementar validação cruzada para avaliar a performance; • Adicionar pré-processamento de texto mais sofisticado; • Considerar outros algoritmos de classificação para comparação • Implementar um sistema de feedback para a melhoria contínua do modelo. Essa etapa foi feita por Jean Carlo Gengnagel https://orcid.org/0009-0009-9862-9256 16 CONSIDERAÇÕES SOBRE AS ETAPAS DE CLASSIFICAÇÃO A classificação deste conjunto de dados foi dada em quatro etapas. - A primeira classificação foi feita de forma automatizada, generalizando vários tipos de notícias em uma mesma categoria; - Na segunda classificação foi feita a revisão manual (por uma equipe de quatro pessoas), item por item, ainda assim, muitos itens estavam na castegoria de outros; - Na terceira etapa foi feita a revisão das categorias, bem como das notícias que já havíamos classificado, reorganizando os dados; - A quarta etapa teve o instinto de melhorar ainda mais a classificação das notícias verificadas, uma vez que se tinha as modalidades de classificação definidas em sete categorias: Desinf. Ambiental; Desinf. Científica; Desinf. Criminosa ou fraudulenta; Desinf. Educação; Desinf. Gênero; Política de Design; Desinf. Saúde; Entendemos que essas ações colaboraram para uma classificação melhor direcionada, conforme as categorias definidas para a aplicação do estudo.

提供机构:
Zenodo
创建时间:
2025-06-02
二维码
社区交流群
二维码
科研交流群
商业服务