- L’auteur a téléchargé toutes les données de Hacker News et les a analysées avec DuckDB
- L’ensemble des items (stories + commentaires), soit 20 Go, a été stocké dans des fichiers JSON, avec une structure permettant aussi les mises à jour futures
- Avec DuckDB, il a réalisé une analyse en série temporelle hebdomadaire de la part des mentions de « Python », « JavaScript », « Ruby » et « Rust », entre autres
- Un LLM a été utilisé pour écrire le SQL, ce qui a permis même à un débutant d’effectuer facilement des analyses complexes
- Le projet est consultable sur le site public hn.unlurker.com, et tout le monde peut réutiliser ces données comme base d’analyse
Aspirer l’ensemble des données de Hacker News
- En créant
hn.unlurker.com, l’auteur a développé son propre client HN API en Go, au départ comme projet personnel pour exploiter les fonctionnalités récentes de Go et les linters
- Il a implémenté une commande
scan qui télécharge séquentiellement tous les items de Hacker News (stories et commentaires dans la HN API) à partir de l’identifiant 0
- Le téléchargement a été interrompu plusieurs fois, mais grâce à une architecture reprenable, il a pu récupérer en quelques heures environ 20 GiB de fichiers JSON
Analyse textuelle en série temporelle avec DuckDB
- Alors qu’il utilisait d’abord
grep pour des recherches de motifs simples, il a ensuite essayé DuckDB comme outil d’analyse, une base de données très rapide optimisée pour l’analyse de petits ensembles de données dans un fichier unique
- Il a importé les fichiers JSON en tables, puis calculé chaque semaine la proportion de mentions des langages présents dans le texte des items
- Il a écrit du SQL permettant de visualiser, avec une moyenne mobile sur 12 semaines, la proportion contenant les mots-clés Python, JavaScript, Java, Ruby et Rust
- Grâce à la nouvelle interface de DuckDB, l’outil était plus simple à utiliser, et l’aide d’un LLM a aussi facilité l’écriture du SQL
Résultats et suite
- Pour des analyses de données à cette échelle, DuckDB a offert d’excellentes performances et une très bonne ergonomie
- Une fois la collecte terminée, l’auteur a déclaré, à moitié pour plaisanter et à moitié sérieusement, qu’il allait « entraîner des centaines de bots basés sur des LLM pour remplacer Hacker News »
- Mais l’objectif concret de collecte et d’analyse des données a bien été atteint, et le projet s’arrête ici
- Il précise que la suite de l’analyse dépend désormais de quelqu’un qui saura tirer de nouveaux enseignements à partir de ces données
Liens de référence
1 commentaires
Commentaires Hacker News
Deux bases de données mettent à jour les tables de Hacker News, ce qui permet de faire des analyses sans tout télécharger
Une opération similaire avait déjà été menée dans le passé sur les comptes Twitter/Bluesky de @fesshole
Il disposait d’un fichier JSON de 20 GiB contenant tout le contenu de Hacker News
Les requêtes sur Java incluent toutes les occurrences de JavaScript, ce qui surreprésente Java
Il se demande quelle est la nétiquette à respecter pour télécharger Hacker News
Il prévoit que beaucoup d’API proposeront à l’avenir une option pour renvoyer des fichiers duckdb
Quelqu’un a réalisé un travail similaire
Après avoir téléchargé localement tout le contenu de Hacker News, il serait possible d’entraîner un bot basé sur un LLM et de le faire participer comme contributeur
Demande de ne pas utiliser de graphiques cumulés
Quelqu’un avait déjà créé un dump des données de Hacker News