◆ Revisitando: o que comida e filosofia têm em comum na Wikipedia ◆
Em agosto de 2021 publiquei Network Analysis of Wikipedia: What Food and Philosophy have in Common - um experimento pequeno que construiu um grafo direcionado a partir do artigo "Food" da Wikipedia, fazendo crawl em largura dos links de saída até profundidade 2. Cerca de 40 mil nós depois da deduplicação. O cluster mais limpo que saiu não foi de culinária, como eu esperava - foi de ética alimentar: Ethics of Eating Meat, Animal Welfare, Vegetarianism. Comida, na Wikipedia, está mais perto de filosofia do que de receita.
Relendo hoje: o achado continua válido. O método eu jogaria fora e começaria de novo.
O que eu faria diferente
O script de 2021 usava o pacote wikipedia em Python pra baixar cada página por HTTPS, parsear, e extrair os links. Isso é educado pra ~10 páginas e extremamente mal-educado pra ~40 mil. Cada nó era um round trip HTTP mais um parse de HTML. O crawl levava horas e colocava na infraestrutura da Wikipedia uma carga que ela não devia ter que absorver por causa de um trabalho de faculdade.
O jeito certo, na época e agora, é o dump de dados da Wikipedia. A Wikimedia publica o grafo de links completo como SQL/XML pra download em https://dumps.wikimedia.org/. Você baixa pagelinks.sql.gz uma vez, carrega em SQLite ou Postgres, e pronto - tem o grafo de links inteiro da Wikipedia localmente, sem rate limit, sem parse de HTML, sem email pedindo desculpa do sysadmin de ninguém. O mesmo crawl de profundidade 2 a partir de "Food" vira duas queries SQL.
O que eu mudaria na análise
O post de 2021 usava presença de link como único sinal de aresta. Todo link de saída contava igual. Isso superpondera "cromo" (todo artigo de comida linka pra "United Kingdom" ou "United States"; isso não significa que comida seja sobre o Reino Unido).
Sinais melhores disponíveis hoje:
- Posição do link - links no primeiro parágrafo ou no infobox são muito mais tópicos do que links enterrados numa seção "See also".
- Dados de clique - a Wikimedia publica clickstream por artigo mostrando pra onde os leitores realmente fluem. É um sinal de "relacionamento" muito mais verdadeiro do que o que um editor por acaso escolheu linkar.
- Embeddings - codifica a seção inicial de cada artigo com um sentence transformer e usa similaridade do cosseno como peso de aresta. Pega relacionamentos semânticos que o grafo de links perde.
Peso por clickstream provavelmente deixaria o cluster comida/filosofia mais nítido, não mais fraco. Quem cai em "Food" realmente clica pra "Ethics of Eating Meat" - é um padrão de comportamento documentado, não um acidente editorial.
O que ainda me surpreende
Fui esperando que os clusters fossem culinárias. Saí com filosofia. Cinco anos depois, perguntar por que comida fica mais perto de ética do que de cozinha na Wikipedia ainda é uma pergunta mais interessante do que a análise de rede em si. Provavelmente diz algo sobre a base de editores da Wikipedia. Possivelmente diz algo sobre comida. A resposta honesta é que eu não sei, e o post original fingia que sabia.