tigerless-labs/paper-radar

Récupère les articles AI publiés par 28 grandes entreprises technologiques et laboratoires d'IA dans une fenêtre de dates donnée, avec attribution institutionnelle (principal vs. participant vs. stagiaire).

Qu'est-ce que paper-radar ?

L'outil **paper-radar** permet de surveiller automatiquement les publications de recherche en IA des 28 plus grandes entreprises technologiques et laboratoires d'IA (Google, Meta, Apple, Microsoft, DeepMind, etc.) à partir de arXiv. Il résout deux défis majeurs : (1) les sites officiels des entreprises ne permettent pas de filtrer par date récente, et (2) les métadonnées arXiv ne contiennent pas d'affiliation des auteurs. Pour contourner cela, le script extrait l'affiliation directement depuis le bloc d'auteurs du document HTML de chaque article, en utilisant une correspondance en trois niveaux (domaine email, variantes de nom ROR, alias de laboratoire). Il produit un rapport Markdown avec le nombre total de papiers trouvés et ceux où chaque entreprise est l'institution principale (premier auteur). L'outil est 100% autonome (stdlib Python, aucun package pip), et les résultats sont reproductibles car arXiv est la seule source de vérité. Il prend en charge les fenêtres de dates personnalisées et les catégories arXiv, avec des options pour éviter de sauvegarder un fichier (sortie stdout) ou de limiter le scraping aux sources officielles + noms d'équipe.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tigerless-labs/paper-radar/tree/main/skills/paper-radar

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

paper-radar — radar des articles IA des big tech

Sans état : une exécution = une fenêtre = un rapport. Aucune bibliothèque d'articles n'est conservée. arXiv est la seule source de vérité, et ré-exécuter la même fenêtre produit nécessairement le même résultat — il n'y a donc aucune raison de garder une copie supplémentaire. En conserver une ajoute seulement un état qui dérive silencieusement et vit en dehors du contrôle de version. Le coût est de re-scraper toute la fenêtre à chaque exécution (~1 min pour 3 jours, ~3 min pour 14 jours) ; ce que vous achetez, c'est la reproductibilité.

Lisez ceci d'abord, ou vous arriverez à des conclusions erronées

arXiv est la seule source organisée par date de publication. La page de publications de chaque fournisseur est organisée par année de publication / lieu, ce qui structurellement ne peut pas répondre à « qu'est-ce qui a été publié ces deux dernières semaines » — une différence de modèle de données, pas technique. Mesuré :

  • Google Research : les pages de détail n'indiquent qu'une année, et la liste n'est pas chronologique ; 85 titres sur les 8 premières pages ont donné 0 dans une fenêtre de deux semaines, et l'entrée la plus récente datait de trois mois
  • Amazon Science : regroupé par année, aucune date par article
  • Microsoft : /research/feed/ est un blog éditorialement organisé — ~8% de couverture de la même fenêtre
  • 13 sites d'entreprises chinoises : 0 correspondances de date sur l'ensemble — ce sont des pages d'accueil de laboratoires, pas des listes d'articles

L'autre fait essentiel : les métadonnées arXiv ne contiennent pas l'affiliation des auteurs. Le taux de remplissage <arxiv:affiliation> est de 1 %, chez Semantic Scholar de 7 %, et OpenAlex retourne 0 raw_affiliation_strings pour les prépublications (mesuré : 3/3 vides, alors que le même endpoint retourne 34/34 pour les articles Nature publiés). Le pipeline standard dans l'industrie est « l'éditeur dépose une chaîne d'affiliation → le ML la fait correspondre à un ROR », et arXiv ne dépose jamais cette chaîne. L'affiliation doit donc être extraite du propre bloc d'auteurs de l'article.

Exécution

Les scripts se trouvent dans ce répertoire de compétence et ne dépendent de rien d'extérieur — pure stdlib, pas de packages pip.

R=<skill-dir>/scripts/paper_radar.py

python3 $R                 # 3 derniers jours
python3 $R --days 14       # 14 derniers jours
python3 $R --from 2026-07-20 --to 2026-08-04
python3 $R --cats cs.AI,cs.CL,cs.LG,cs.CV   # élargir les catégories
python3 $R --no-scrape     # sources officielles + noms d'équipe uniquement (secondes — vérification rapide entreprise)
python3 $R -o path.md      # écrire le rapport ici
python3 $R -o -            # écrire le rapport sur stdout

Temps d'exécution : pour une fenêtre de deux semaines (~3000 articles), les métadonnées prennent ~2 minutes et la récupération des blocs d'auteurs ~25 secondes avec 6 workers. Une fenêtre de 3 jours se termine en moins d'une minute. Pour couvrir une historique plus long, élargissez la fenêtre et ré-exécutez — il n'y a pas de bibliothèque à interroger.

Où va le rapport — vous décidez, le script ne devine pas

Le script ne sait pas, et ne doit pas savoir, où le projet appelant conserve ses travaux de recherche. Sans -o, il écrit dans le répertoire de travail courant.

Décidez de la destination avant chaque exécution :

  • L'utilisateur a nommé un chemin → utilisez-le
  • Cette recherche vaut la peine d'être conservée → écrivez-la dans le répertoire de recherche de ce projet, avec la fenêtre dans le nom du fichier
  • Vous vérifiez juste un fait (« Xiaomi a-t-il publié quelque chose sur l'IA auto-évolutive ? ») → utilisez -o - et ne laissez aucun fichier. Une question anodine qui laisse un fichier derrière elle se fera passer pour un enregistrement de recherche plus tard

Fichiers

Chemin (relatif à cette compétence)Rôle
scripts/paper_radar.pyPipeline : récupération de la liste → récupération des blocs d'auteurs → résolution des affiliations → écriture du rapport
scripts/affiliation.pyCouche de résolution : cartographie des indices superscript + correspondance à trois niveaux
scripts/data/ror_anchors.jsonIdentifiants ROR de 28 laboratoires + 98 variantes de noms officiels (y compris en chinois)

Le seul résultat est un fichier Markdown (chemin selon ce qui précède), avec une répartition « total des hits / dont principaux ». Le répertoire de la compétence lui-même ne produit aucun fichier.

Six étapes

0 listing      API arXiv : cat × submittedDate → dédoublonnage par ID
1 texte intégral  arxiv.org/html/{id} + Range premiers 90 Ko, coupe à ltx_authors → ltx_abstract      [85 %]
2 structure   parcourir de droite à gauche pour la dernière position commençant une suite ascendante 1,2,3…
               extraire (auteur, marques[]) · (marque, affiliation) · emails · marqueurs de rôle
3 entité       (a) domaine email  (b) variantes de noms ROR  (c) tableau d'alias de laboratoire
4 évaluation   lead_orgs = affiliations du premier auteur (peut être plusieurs) ; intern = marqueur présent
5 suppléments  Flux RSS Apple · JSON intégré MSR · noms d'équipe arXiv
6 rapport      dédoublonnage par clé (un article peut arriver à la fois du bloc d'auteur et d'une source
               officielle), écrire Markdown, conserver les preuves et matched_on

Cinq disciplines, chacune payée en bugs

1. Le bloc d'auteurs doit être coupé strictement à ltx_abstract. Prenez un caractère de plus et le résumé déborde. Conséquences mesurées : Oracle 73 articles (tous « oracle access »), MiniMax 17 (l'algorithme minimax), DeepSeek 58 (articles mentionnant simplement le modèle). Coupé proprement, le bloc d'auteurs médian fait ~201 caractères.

2. La liste des affiliations doit être trouvée de droite à gauche. « nom + chiffre en exposant » dans la séquence des auteurs et « chiffre + affiliation » dans la séquence des affiliations ont la même forme, donc un balayage de gauche à droite analyse Yuchen Zhao 1 Bingxuan Li comme 1 → « Bingxuan Li ».

3. Ne jamais se rabattre sur « une seule entreprise correspond, donc elle est principale ». Cela vous indique seulement que les autres affiliations ne sont pas des entreprises que vous suivez. Mauvaise attribution mesurée : Filesystem-Based Memory est dirigé par UIUC mais a été attribué par erreur à Adobe car Adobe était la seule correspondance.

4. Une signature d'entreprise n'est pas un article d'entreprise. Seul * dans le rapport signifie principal. Mesuré sur une fenêtre de deux semaines : Google a touché 10 articles mais n'en a dirigé que 4 ; Google DeepMind 7 hits, 2 dirigés ; Adobe 5 hits, 0 dirigé. Toute affirmation de « N articles des big tech » doit préciser quelle colonne elle entend.

5. Énoncez les angles morts avant les chiffres.

  • 12 % des soumissions sont uniquement PDF et sont invisibles — le plafond dur de l'étape 1
  • Taux de non-détection Apple ~78 % (ses auteurs omettent fréquemment l'affiliation) → corrigé via le flux RSS officiel. Ce supplément est obligatoire, pas optionnel
  • Lorsque le premier auteur liste plusieurs affiliations, elles ne peuvent pas être classées ; les deux reçoivent *
  • intern est un marqueur, pas un jugement — savoir si un article de stagiaire « compte » est une question de définition, mise à la surface pour que l'appelant décide

Trois niveaux d'erreur — ne les confondez pas

NiveauProblèmeQue faire en cas d'échec
1 extractionImpossible d'obtenir le textesources supplémentaires ; chaque échec aujourd'hui se situe à ce niveau
2 structureImpossible de mapper l'auteur à l'affiliationdégrader vers une analyse du bloc entier, à précision réduite
3 entitéQuelle entreprise est cette chaîneunmatched conserve le texte brut pour le tableau ; ROR n'intervient qu'ici

ROR est une table de correspondance chaîne-à-ID ; vous avez besoin de la chaîne d'abord. Mesuré sur deux articles Xiaomi : l'un n'avait pas de HTML du tout, le bloc d'auteurs de l'autre contenait 8 noms de personnes et pas un mot d'affiliation. ROR ne peut sauver ni l'un ni l'autre — seules les sources supplémentaires le peuvent.

Pourquoi chaque source supplémentaire reste

SourceRôlePreuve
Flux RSS AppleCorrige un échec systématique, obligatoireFenêtre de deux semaines : 2 scrapés contre 9 officiels — 78 % manqués
Noms d'équipe arXivCouvre « le nom de l'entreprise est dans le champ auteur, pas dans le champ affiliation »Xiaomi MiMo Team / Kimi Team ; a ajouté 2 articles, zéro redondance
JSON intégré MSRSondage de validation croisée25 scrapés contre 7 officiels — redondant, conservé comme contrôle intra-exécution : si une source officielle a un article que le bloc d'auteurs a manqué, l'étape 1 est cassée

Quand une entreprise affiche zéro — vérifiez dans cet ordre

  1. Mauvaise fenêtre — arXiv indexe avec 1 à 2 jours de retard et n'annonce pas le week-end ; élargissez d'abord
  2. Mauvaises catégories — le défaut est cs.AI/cs.CL/cs.LG ; la robotique est cs.RO, la vision cs.CV, les systèmes cs.SE
  3. Recherche par nom d'équipe — all:« Xiaomi » / « Hunyuan » / « Kimi Team » fonctionnent ; all:« MiniMax » est inutilisable (plus de 5800 hits de l'algorithme minimax) — utilisez au:« MiniMax »
  4. Canaux officiels — Flux RSS Apple, ai.meta.com/results/?content_types[0]=publication de Meta (notez que /research/publications/ retourne 400 à curl simple), research.nvidia.com/publications de NVIDIA
  5. Ce n'est que lorsque tout ce qui précède est vide que vous pouvez dire « cette entreprise n'a rien publié dans cette fenêtre »

Feuille de route

  • Ajouter la source TeX comme niveau 2 de l'étape 1 — décompressez arxiv.org/e-print/{id} et lisez \author{}. Vérifié : les articles sans HTML ont souvent du TeX, avec les exposants intacts. Le gain de couverture le moins cher disponible
  • Auto-contrôle de santé intra-exécution — mettez le taux de réussite du bloc d'auteurs de l'étape 1, et le nombre d'articles que « la source officielle a mais que le bloc d'auteurs n'a pas », directement dans l'en-tête du rapport. Protège contre une rupture silencieuse lorsque arXiv modifie son balisage (le taux d'échec de 78 % d'Apple a été découvert par accident). Ne réintroduisez pas de taux de réussite historiques stockés pour cela — la validation croisée intra-exécution suffit

Encore une chose

Le nombre d'articles est une offre, pas une tendance. Mesuré : sur 231 articles des big tech dans une fenêtre de deux semaines, 0 ont été discutés sur Hacker News, tandis que chaque article discuté sur HN dans la même fenêtre provenait du milieu universitaire ou d'une startup. Juger de la tendance nécessite un signal social distinct.

Skills associés