Projet Lucene 22 avril 2011 Acquisition de Connaissances 2 Thibault BARILLON – David BOSCHER – Mathieu CORNIC – Vincent DANIEL – Simon DOUILLET– Alexandre LEROUX – Fabien MIRGAINE – Maxime ODYE – Yanis ZERAOUI 22 avril 2011 Acquisition de Connaissances 2
Sommaire I. Présentation de Lucene II. Améliorations Conclusion Démo Gestion des synonymes Intégration des stemmers Conclusion Démo
I - Présentation de Lucene Projet open-source développé en JAVA 1 Indexation IndexWriter Analyser Document Field Directory Moteur de recherche pour documents textuels 2 Recherche IndexSearcher Term Query Hits Deux phases
I - Présentation de Lucene Ce que Lucene propose : Indexation « intelligente » (filtre sur les mots) Recherche par champs (titre, auteur, contenu) Requêtes multiples (expressions régulières, expression booléennes, recherche de proximité Ce qu’il manque à Lucene : Interface graphique Recherche de synonymes Mise en place de stemmers non anglais
II – Améliorations Synonymes (1/2) : Principe et mise en œuvre Utiliser à l’indexation et/ou à la recherche un dictionnaire des synonymes pour augmenter le nombre de résultats. Base de synonymes Filtre Analyseur Lucene Recherche Synonym Filter XML (V1) WordNet (V2) Synonym Analyzer <synonyms> <group> <syn>fast</syn> <syn>quick</syn> <syn>rapid</syn> </group> ... Indexation
II – Améliorations Synonymes (2/2) : Résultats Requêtes simples sur quelques fichiers Requêtes complexes sur un grand nombre de fichiers Requête Documents matchés (sans synonyme) Occurrences exactes Documents matchés avec synonymes Occurrences des synonymes Test 2 72 8 121 Document 4 242 7 136 Company 1 9 66 Occurrences exactes Occurrences des synonymes % de mots trouvés en plus Documents matchés (sans synonyme) Documents matchés avec synonymes % de documents trouvés en plus 73 725 25268 34,2% 88 121 37,5%
II – Améliorations Stemmers (1/2) : Principe et mise en œuvre Recherche Stemmer Analyzer Languages StemFilter French Stemmer English Stemmer Lucene Analyseur Filtre Stemmers Indexation « La racinisation est le nom donné au procédé qui vise à transformer les flexions en leur radical ou stemme. Il cherche à rassembler les différentes variantes flexionnelle et dérivationnelle d’un mot » Stemmers anglais déjà disponibles dans Lucene Objectif : stemmatisation de 15 autres langages Implémentation à l’indexation et à la recherche Récupération des stemmers de l’API Snowball Ajout d’un filtre sur le choix du langage à stemmatiser // Mathieu et Alexandre vous feront une petite démo
II – Améliorations Stemmers (2/2) : Résultats Stemmatisation d’une phrase (français) Stemmatisation sur une collection (anglais) Enter query: fonctionner Searching for: fonction Occurences in : /Users/vincent/Desktop/docs/TestFrench.txt 2 x fonction Frequency : 2 Total frequency : 2 1 total matching documents Enter query: fonctionner Searching for: fonctionner Total frequency : 0 0 total matching documents Occurrences exactes Occurrences des mots stemmatisés % de mots trouvés en plus Documents matchés (sans stemmatisation) Documents matchés avec stemmatisation % de documents trouvés en plus 73 725 39190 53,1% 88 157 78,4%
Quelques idées d’améliorations Quelques difficultés rencontrées Conclusion Quelques idées d’améliorations Quelques difficultés rencontrées Correcteur d’orthographe Formation à Lucene Améliorations des expressions régulières Choix des fonctionnalités Recherche contextuelle Organisation du groupe