Je construis actuellement un petit moteur de recherche interne basé sur Apache Lucene. Son objectif est simple - basé sur certains mots clés, il proposera des articles rédigés en interne au sein de notre entreprise. J'utilise un score TF-IDF assez standard comme métrique de base et j'ai construit mon propre mécanisme de score dessus. Tous ces éléments semblent fonctionner parfaitement, à l'exception de certains cas de coin où le classement semble foiré.
Donc, ce que je prévois de faire, c'est d'ajouter un petit lien pertinent / non pertinent à la page de résultats de recherche afin que les utilisateurs puissent cliquer sur l'un d'entre eux en fonction de leur perception de savoir si ce résultat aurait dû être inclus en premier lieu.
Mon idée
- Traitez ces éléments pertinents / non pertinents comme des étiquettes et créez des données de formation.
- Utilisez ces données pour former un classificateur (tel que SVM)
- Incorporer ce modèle dans le moteur de recherche, c'est-à-dire que chaque nouveau résultat passera par le classificateur et se verra attribuer une étiquette indiquant s'il est pertinent ou non.
Cette approche me semble intuitive mais je ne sais pas si elle fonctionnera dans la pratique. J'ai deux questions spécifiques:
- Quelles sont les fonctionnalités à extraire?
- Existe-t-il un meilleur moyen d'intégrer le composant d'apprentissage automatique dans le moteur de recherche? Mon objectif final est «d'apprendre» la fonction de classement en fonction à la fois de la logique métier et des commentaires des utilisateurs.