NLP
StackOverflow NLP
Suggérer plusieurs tags à une question technique
Mission freelance réelle · reconstruction publique distincte du modèle confidentiel
Modèle multi-label · 16 tags
- Cadre
- Freelance
- Domaine
- NLP
- Démo
- 16 tags
- Modèle public
- TF-IDF + LR
Explorer la démonstration
Modèle entraîné · plusieurs tags pour une question
Une question peut mêler langage, framework et outil. Ce modèle apprend les tags réellement associés à des questions publiques Stack Overflow. Il peut retenir plusieurs tags parmi 16, ou n'en retenir aucun.
Exemples rédigés pour la démonstration
Tags proposés
Choisissez un exemple ou lancez le calcul pour examiner les tags et leurs seuils.
Périmètre, évaluation et limites
16 tags possibles : python, javascript, java, c#, html, css, reactjs, sql, pandas, numpy, android, node.js, c++, php, django, typescript. Les autres tags des questions sources sont exclus de ce périmètre ; aucune annotation n'est inventée.
Corpus : 7 076 questions publiques, collectées par l'API officielle Stack Exchange. Jusqu'à 500 questions par tag, triées par votes, publiées en 2023–2024. Cet échantillon ciblé ne représente pas tout Stack Overflow.
Apprentissage : 4953 questions. Validation : 1061. Test : 1062. Déduplication canonique avant séparation ; vocabulaire et IDF appris sur l'entraînement seul. Les seuils sont fixés sur validation avant d'évaluer le test.
Test multi-label : précision micro 80,2 %, rappel micro 80,9 %, F1 micro 0.805 ; F1 macro 0.816. Proposer toujours les deux tags les plus fréquents de l'entraînement donne un F1 micro de 0.220.
La précision mesure la part des tags proposés qui sont corrects ; le rappel, la part des vrais tags retrouvés. Le F1 combine les deux. Le micro-F1 regroupe toutes les décisions ; le macro-F1 accorde le même poids à chaque tag.
Limites : 16 tags, anglais, sélection par popularité, séparation aléatoire et non temporelle, quasi-doublons possibles. Les scores ne sont pas calibrés. Le modèle public est une reconstruction personnelle, sans lien avec les performances du modèle confidentiel de la mission. Les textes et auteurs sources ne sont pas inclus dans les poids servis au navigateur.
Comprendre le projet
La mission
Concevoir une approche de suggestion de tags pour des questions techniques : une même question peut relever de plusieurs sujets. Le travail présenté se rattache à une mission freelance réelle. Les éléments accessibles ici sont des reconstructions personnelles ; ils ne publient ni le code ni les données confidentielles du client.
Un périmètre multi-label utilisable
La démonstration apprend sur des questions publiques et leurs véritables tags, obtenus par l'API officielle Stack Exchange. Elle peut associer plusieurs tags à une question en anglais, parmi 16 langages, frameworks et outils. Les tags hors de ce périmètre sont exclus, sans réétiquetage inventé. Le premier benchmark à quatre langages reste accessible pour comparer les deux tâches.
Du texte à plusieurs décisions
Le pipeline vectorise les mots et paires de mots avec TF-IDF. Une régression logistique par tag produit un score ; le tag est retenu si ce score dépasse son seuil. Chaque seuil est choisi sur un jeu de validation, séparé de l'apprentissage et du test. Les noms de technologies restent présents dans le texte, conformément à ce nouveau corpus.
Mesurer précision et couverture
Après déduplication canonique, 4953 questions servent à apprendre, 1061 à fixer les seuils et 1062 à évaluer. Le micro-F1 atteint 0.805, contre 0.220 pour une baseline qui propose toujours les deux tags les plus fréquents de l'entraînement. Les résultats par tag varient : ce score global ne garantit pas une qualité uniforme.
Des limites à garder visibles
Le corpus cible jusqu'à 500 questions par tag, triées par votes, publiées en 2023–2024. Il ne représente pas tout Stack Overflow. La séparation est aléatoire, des quasi-doublons peuvent subsister et le modèle n'a pas de détection hors domaine validée. Ces mesures décrivent uniquement cette reconstruction publique, jamais le modèle confidentiel de la mission.
Méthode et ressources
Méthodes et traçabilité
Une chaîne reproductible. Réponses API et corpus identifiés par empreintes SHA-256, vrais tags et attribution conservés localement, séparation déterministe et contrôle des doublons avant entraînement. Le vocabulaire, les IDF, les coefficients et les seuils sont exportés ensemble et comparés numériquement entre Python et TypeScript.
API officielle Stack Exchange pour le corpus multi-label ; corpus TensorFlow pour le benchmark quatre langages. Aucun texte de question source ni profil d'auteur n'est publié dans les poids du navigateur. Les exemples sont rédigés pour la démonstration.