A maior parte da web aberta está escrita em poucos idiomas, e um crawler que roda a partir de um só país vê uma fatia ainda menor: a versão em inglês ou padrão de sites que mostrariam texto local a um visitante local. Se você treina ou ajusta modelos para vários mercados, coletar dados realmente multilíngues e regionais é um problema à parte, e é aí que a coleta de dados para IA e ML fica difícil.
Este guia mostra como planejar a cobertura por idioma, onde encontrar fontes locais, como obter a versão que os leitores locais veem e como identificar, filtrar e equilibrar o texto depois de coletado. Para o fluxo geral do rastreamento ao corpus, veja o nosso guia sobre como criar conjuntos de dados de treinamento em grande escala a partir da web aberta.
Planeje a cobertura por idioma e região
Comece com uma tabela, não com um crawler. Para cada idioma-alvo, anote:
- As regiões que importam. O espanhol da Espanha, do México e da Argentina difere em vocabulário, grafia e temas. O português do Brasil e de Portugal difere ainda mais. Decida de quais variedades você precisa.
- O volume-alvo por idioma e variedade, em tokens ou documentos.
- As áreas que precisam ser cobertas: notícias, fóruns, governo, comércio, obras de referência, documentação técnica.
- Os sistemas de escrita. Alguns idiomas são escritos em mais de um alfabeto, como o sérvio em cirílico e latino. Decida se vai manter os dois.
Essa tabela vira o seu teste. Ao fim de cada coleta, compare o que você obteve com ela, idioma por idioma.
Encontre fontes locais
Rastreamentos gerais representam pouco os idiomas menores, então monte listas iniciais por idioma:
- Domínios de país como
.pl,.vnou.co.kesão um bom sinal inicial de conteúdo regional. - Versões por idioma de sites globais. As tags
hreflangnos cabeçalhos das páginas e nos sitemaps listam cada versão de idioma de uma página. O nosso guia sobre como usar hreflang para encontrar cada versão de idioma de uma página mostra como extraí-las. - Diretórios locais, agregadores de notícias e portais do governo, que apontam para muitos sites no mesmo idioma.
- Resultados de busca no idioma local, obtidos a partir da região, que mostram sites que um rastreamento global raramente alcança.
Registre a fonte e o status de exclusão de cada ponto de partida. Respeite o robots.txt e as exclusões para IA no momento da coleta, e guarde esse registro junto com os dados.
Obtenha a versão que os leitores locais veem
Muitos sites decidem o que servir com base na localização do visitante: idioma, moeda, notícias locais, uma edição regional ou uma tela de consentimento. Um crawler em um data center recebe a versão padrão para todos os países, muitas vezes em inglês, e a registra como se fosse conteúdo local.
Para coletar a versão local, cada requisição precisa parecer a de um leitor local:
- Um IP no país de destino, de preferência uma conexão doméstica. Requisições por meio de proxies residenciais chegam de IPs residenciais no país ou na cidade escolhidos, então os sites as roteiam e localizam como fazem com visitantes reais.
- Um cabeçalho
Accept-Languagecompatível, por exemplopl-PL,pl;q=0.9para leitores poloneses na Polônia. - Sinais consistentes. O fuso horário e a localidade de um navegador headless devem combinar com o IP. Incoerências são um dos motivos pelos quais os sites voltam a uma versão padrão; o nosso artigo sobre como alinhar geolocalização, fuso horário e localidade do proxy detalha as verificações.
Revise à mão uma amostra de cada região logo no início da coleta. Se o bloco “vietnamita” estiver cheio de páginas em inglês, a camada de coleta está errada, e nenhum filtro posterior vai corrigir isso.
Identifique o idioma de cada documento
Nunca confie só no atributo lang ou no domínio. Rode um modelo de identificação de idioma sobre o texto extraído:
- O modelo lid.176 do fastText cobre 176 idiomas e é rápido o suficiente para rodar em todos os documentos.
- Modelos mais amplos como o GlotLID cobrem muito mais idiomas e funcionam melhor para idiomas com poucos recursos.
Identifique o idioma por parágrafo, além de por documento. Muitas páginas misturam idiomas: um artigo local com menu de navegação em inglês, ou uma discussão de fórum em que os usuários trocam de idioma. Mantenha os parágrafos no idioma que você quer e guarde uma pontuação de confiança para poder apertar o limite depois. É nos textos curtos que a identificação mais falha, então defina um tamanho mínimo antes de confiar em um rótulo.
Filtre por idioma, não de forma global
Filtros de qualidade ajustados para o inglês prejudicam outros idiomas. Heurísticas como contagem de palavras vazias, tamanho médio das palavras ou proporção de pontuação se comportam de outro jeito no tailandês, que não separa as palavras com espaços, ou no finlandês, que tem palavras muito longas. Defina limites por idioma, a partir de uma amostra revisada por um falante nativo.
Dois problemas crescem em dados multilíngues:
- Conteúdo traduzido por máquina. Muitos sites publicam traduções automáticas de páginas em inglês. Elas trazem volume, mas ensinam erros de tradução ao modelo. Marque as páginas que são quase traduções de páginas em inglês conhecidas e trate com cautela sites inteiros que traduzem tudo automaticamente.
- Erros de codificação. Texto decodificado errado produz caracteres corrompidos que parecem um idioma real, mas estranho. Normalize para Unicode, corrija ou descarte codificações quebradas e normalize as formas Unicode para que a mesma palavra não seja armazenada de dois jeitos.
Remova duplicatas dentro de cada idioma e entre idiomas, porque o mesmo texto padrão, os mesmos avisos legais e os mesmos modelos aparecem em todas as versões de um site.
Equilibre a mistura
Dados web brutos são dominados por poucos idiomas. Treinar com as proporções brutas significa que os idiomas menores quase não são aprendidos. Treinar com proporções iguais significa que os idiomas menores são repetidos muitas vezes e o modelo os memoriza.
O meio-termo comum é a amostragem por temperatura: cada idioma é amostrado em proporção ao seu tamanho elevado a uma potência menor que um. Os artigos do mT5 e do XLM-R usaram expoente 0,3. Qualquer que seja a sua escolha, documente-a com a contagem de tokens por idioma antes e depois da amostragem, para que a mistura possa ser reproduzida e explicada. O nosso guia sobre proveniência no pipeline de treinamento de IA mostra o que registrar.
Resumindo
Dados multilíngues não são dados em inglês com uma etapa de tradução. Planeje a cobertura por idioma e variedade, encontre fontes locais, colete cada região como os leitores locais a veem, identifique o idioma por parágrafo, filtre com limites por idioma e equilibre a mistura de propósito. A camada de coleta decide se os seus dados “poloneses” são realmente poloneses, então acerte a coleta primeiro.