IA/ML Startup de IA

Indexação de todos os sites de conteúdo da zona .co.uk

Montamos um registro limpo dos sites de conteúdo da zona — blogs e sites de notícias — e coletamos o próprio conteúdo: um conjunto de páginas HTML em um armazenamento de objetos tipo S3, com acesso liberado ao cliente.

A tarefa

A startup precisava da lista mais completa possível de sites de conteúdo da zona .co.uk — blogs, sites de notícias e outras plataformas editoriais — como base de um corpus de treinamento. O valor estava justamente na completude e na limpeza: capturar todos os sites de conteúdo sem arrastar para a lista sites comerciais e domínios de lixo.

O que fizemos e quais dados coletamos

Percorremos a zona de domínios, selecionamos os sites ativos e coletamos, para cada um, os sinais de site de conteúdo: estrutura de seções, presença de feeds e RSS, frequência de publicação e temática. O inglês era condição obrigatória de inclusão — sites da zona em outros idiomas eram descartados. A parte de notícias era ainda conferida com o índice do Google News; assim confirmamos e complementamos os veículos que são de notícias com certeza.

Depois fomos pelo caminho inverso — não só procurar os "nossos" sites, mas limpar ativamente o excesso:

  • removemos da lista os sites de empresas presentes no Google Maps em categorias que não nos interessam (lojas, serviços, alimentação etc.) — assim foram excluídos os sites comerciais que, pela estrutura, poderiam passar por sites de conteúdo;
  • filtramos os sites com pontuação zero nos serviços de SEO — ali quase certamente há lixo ou domínios abandonados.

Além do próprio registro de domínios (com o tipo — blog / notícias), coletamos também as páginas HTML desses sites para o corpus.

Dificuldades e como as resolvemos

Primeiro, a completude da zona: não existe lista pública completa. Reunimos o registro a partir de várias fontes e o conferimos com o Google News para fechar as lacunas do lado de notícias.

Segundo — o ponto-chave: separar os sites de conteúdo dos comerciais. Nessa escala há poucos sinais positivos de "isto é um blog ou um veículo", então invertemos o problema e subtraímos os domínios claramente comerciais cruzando com o Google Maps: se o domínio pertence a um negócio de categoria irrelevante, não é o nosso site.

Terceiro, o lixo e os sites abandonados. Cortamos pela pontuação zero nos serviços de SEO, para que o corpus não captasse ruído.

O resultado

A startup recebeu tanto um registro limpo dos domínios de conteúdo da zona (blogs e notícias, sem comércio e sem lixo) quanto o próprio conteúdo — um conjunto de páginas HTML comprimidas em gzip e guardadas em um armazenamento de objetos tipo S3 ao qual liberamos o acesso. Ou seja, na saída havia um corpus pronto, não apenas uma lista de sites.


Serviços usados neste caso: Base de dados de domínios · Extração de artigos de imprensa · Base de dados de mídia · Extração de dados do Google Maps · Dados para IA/ML · DaaS e dados via API

Materiais úteis: Parsing de RSS · Rastreamento da estrutura do site · Como coletar dados de um site