Comment Tchoosang classe les resultats
Le moteur est volontairement explicable : chaque resultat affiche le detail de son score. Voici les etapes traversees par une requete.
1. Comprendre la demande
La phrase saisie est analysee pour en extraire l'intention, les competences visees, le domaine, la localisation, le type de ressource et l'urgence. Cette analyse tourne actuellement en mode local (regles, gazetteer du catalogue et synonymes metier) : aucune donnee ne sort du serveur.
2. Construire la requete
La phrase devient un sac de termes ponderes :
| Origine du terme | Poids | Role |
|---|---|---|
| Terme saisi | 1.00 | Ce que la personne a ecrit |
| Correction orthographique | 0.90 | Distance d'edition, trigrammes et cle phonetique |
| Mot-cle de l'analyse | 0.85 | Reformulation de l'intention |
| Competence reconnue | 0.80 | Correspondance avec la taxonomie |
| Synonyme metier | 0.50 | Table de synonymes du domaine |
| Terme co-occurrent | 0.35 | Information mutuelle calculee sur le catalogue |
3. Retrouver les documents
Un index inverse relie chaque terme aux documents qui le contiennent. Chaque document est indexe par champ (titre, competences, domaines, resume, corps, tags, localisation) et sous deux formes : le mot exact et sa racine. L'index actuel contient 36 document(s), 911 terme(s) et 1651 entree(s).
4. Noter chaque document
La pertinence textuelle utilise BM25F : une variante de BM25 qui pondere les champs (un terme dans le titre ou dans une competence compte plus que dans une description), sature la repetition d'un meme mot et corrige l'effet de longueur. S'y ajoutent un bonus de proximite (les mots de la requete apparaissent-ils proches ?) et un bonus de phrase exacte.
Le score final combine huit signaux, avec les poids actuellement en vigueur :
5. Ponderer par la disponibilite
C'est la specificite de Tchoosang. Pour un profil d'expert - et pour l'expert referent d'une ressource - le moteur calcule un score de disponibilite a partir de six composantes :
- Statut declare (30 %) : disponible, partiel, en mission, indisponible.
- Delai avant le prochain creneau (26 %) : calcule sur les creneaux hebdomadaires reels, moins les absences saisies, avec decroissance exponentielle.
- Charge (18 %) : missions en cours rapportees au maximum accepte.
- Capacite hebdomadaire (10 %) : heures declarees disponibles.
- Reactivite (10 %) : temps de reponse moyen constate.
- Fraicheur de la declaration (6 %) : un profil non mis a jour depuis longtemps voit son score decote.
Les suggestions d'experts croisent ensuite 55 % d'affinite avec la requete et 45 % de disponibilite : un profil tres pointu mais indisponible six semaines passe derriere un profil legerement moins specialise et libre des demain.
6. Apprendre de l'usage
Les recherches et les clics sont journalises. Un document souvent ouvert pour une requete donnee remonte progressivement pour cette requete, et le graphe du catalogue (liens declares, competences partagees, ressources d'un meme expert) alimente un PageRank qui mesure la centralite d'un profil dans l'ecosysteme.
API
Le moteur est interrogeable en JSON :
GET /api/suggest?q=...
GET /api/expert/<id>/disponibilite
POST /api/clic
GET /api/sante