Um rastreador de notícias muito simples em Python. Desenvolvido na Universidade de Humboldt de Berlim.
Iniciar rápido | Tutoriais | Fontes de notícias | Papel
Fundo é:
Um rastreador de notícias estáticas. O Fundus permite rastejar artigos de notícias on -line com apenas algumas linhas de código Python! Seja em sites ao vivo ou no conjunto de dados do CC-News.
Um pacote Python de código aberto. O fundo é construído sobre a idéia de construir algo juntos. Congratulamo -nos com sua contribuição para ajudar o fundo do fundo!
Para instalar a partir do PIP, basta fazer:
pip install fundus
O fundo requer Python 3.8+.
Vamos usar o fundo para rastejar 2 artigos de editores com sede nos EUA.
from fundus import PublisherCollection , Crawler
# initialize the crawler for news publishers based in the US
crawler = Crawler ( PublisherCollection . us )
# crawl 2 articles and print
for article in crawler . crawl ( max_articles = 2 ):
print ( article )Já é isso!
Se você executar este código, ele deve imprimir algo assim:
Fundus-Article:
- Title: "Feinstein's Return Not Enough for Confirmation of Controversial New [...]"
- Text: "Democrats jammed three of President Joe Biden's controversial court nominees
through committee votes on Thursday thanks to a last-minute [...]"
- URL: https://freebeacon.com/politics/feinsteins-return-not-enough-for-confirmation-of-controversial-new-hampshire-judicial-nominee/
- From: FreeBeacon (2023-05-11 18:41)
Fundus-Article:
- Title: "Northwestern student government freezes College Republicans funding over [...]"
- Text: "Student government at Northwestern University in Illinois "indefinitely" froze
the funds of the university's chapter of College Republicans [...]"
- URL: https://www.foxnews.com/us/northwestern-student-government-freezes-college-republicans-funding-poster-critical-lgbtq-community
- From: FoxNews (2023-05-09 14:37)Esta impressão diz que você rastejou com sucesso dois artigos!
Para cada artigo, os detalhes da impressão:
Talvez você queira engatinhar uma fonte de notícias específica. Vamos rastejar artigos de notícias apenas do Washington Times:
from fundus import PublisherCollection , Crawler
# initialize the crawler for The New Yorker
crawler = Crawler ( PublisherCollection . us . TheNewYorker )
# crawl 2 articles and print
for article in crawler . crawl ( max_articles = 2 ):
print ( article ) Para rastrear uma quantidade tão vasta de dados, o Fundo depende do Arquivo da Web CommonCrawl , em particular os notícias CC-NEWS . Se você não estiver familiarizado com CommonCrawl ou CC-NEWS consulte seus sites. Basta importar nosso CCNewsCrawler e verifique nosso tutorial de antemão.
from fundus import PublisherCollection , CCNewsCrawler
# initialize the crawler using all publishers supported by fundus
crawler = CCNewsCrawler ( * PublisherCollection )
# crawl 1 million articles and print
for article in crawler . crawl ( max_articles = 1000000 ):
print ( article ) Nota : Por padrão, o rastreador utiliza todos os núcleos de CPU disponíveis no seu sistema. Para um desempenho ideal, recomendamos definir manualmente o número de processos usando o parâmetro processes . Uma boa regra geral é alocar one process per 200 Mbps of bandwidth . Isso pode variar dependendo da velocidade do núcleo.
NOTA : O rastreamento acima levou ~ 7 horas usando toda a PublisherCollection em uma máquina com conexão de 1000 Mbps, núcleo i9-13905h, 64 GB de RAM, Windows 11 e sem imprimir os artigos. O tempo estimado pode variar substancialmente, dependendo do editor usado e da largura de banda disponível. Além disso, nem todos os editores estão incluídos no CC-NEWS Crawl (especialmente os editores com sede nos EUA). Para uma grande criação de corpus, também se pode usar o rastreador regular, utilizando apenas mapas de sitemon, o que requer significativamente menos largura de banda.
from fundus import PublisherCollection , Crawler , Sitemap
# initialize a crawler for us/uk based publishers and restrict to Sitemaps only
crawler = Crawler ( PublisherCollection . us , PublisherCollection . uk , restrict_sources_to = [ Sitemap ])
# crawl 1 million articles and print
for article in crawler . crawl ( max_articles = 1000000 ):
print ( article )Fornecemos tutoriais rápidos para você começar com a biblioteca:
Se você deseja contribuir, confira estes tutoriais:
Você pode encontrar os editores atualmente suportados aqui .
Além disso: adicionar um novo editor é fácil - considere contribuir para o projeto!
Confira nosso benchmark de avaliação.
A tabela a seguir resume o desempenho geral do fundo e avaliou raspadores em termos de precisão média da Rouge-Lsum, recall e escore F1 e seu desvio padrão. A tabela é classificada em ordem descendente sobre a pontuação F1:
| Raspador | Precisão | Lembrar | F1-score | Versão |
|---|---|---|---|---|
| Fundo | 99,89 ± 0,57 | 96,75 ± 12,75 | 97,69 ± 9,75 | 0.4.1 |
| Trafilatura | 93,91 ± 12,89 | 96,85 ± 15,69 | 93,62 ± 16,73 | 1.12.0 |
| Notícias-por favor | 97,95 ± 10,08 | 91,89 ± 16,15 | 93,39 ± 14,52 | 1.6.13 |
| Bte | 81,09 ± 19,41 | 98,23 ± 8,61 | 87,14 ± 15,48 | / |
| Justext | 86,51 ± 18,92 | 90,23 ± 20,61 | 86,96 ± 19,76 | 3.0.1 |
| Boilernet | 85,96 ± 18,55 | 91,21 ± 19,15 | 86,52 ± 18,03 | / |
| Boilerpipe | 82,89 ± 20,65 | 82.11 ± 29,99 | 79,90 ± 25,86 | 1.3.0 |
Cite o artigo a seguir ao usar o fundo ou com base em nosso trabalho:
@inproceedings { dallabetta-etal-2024-fundus ,
title = " Fundus: A Simple-to-Use News Scraper Optimized for High Quality Extractions " ,
author = " Dallabetta, Max and
Dobberstein, Conrad and
Breiding, Adrian and
Akbik, Alan " ,
editor = " Cao, Yixin and
Feng, Yang and
Xiong, Deyi " ,
booktitle = " Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations) " ,
month = aug,
year = " 2024 " ,
address = " Bangkok, Thailand " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2024.acl-demos.29 " ,
pages = " 305--314 " ,
}Envie suas perguntas ou comentários para Max Dallabetta
Obrigado pelo seu interesse em contribuir! Existem muitas maneiras de se envolver; Comece com nossas diretrizes de colaboradores e verifique essas questões abertas para tarefas específicas.
Mit