190 likes | 308 Views
Recherche d’information & Représentation des Connaissances. Rabier Martin Tsemengue Patrick 5GI 24/01/2010. Soutenance de Projet. Introduction. Objectif: Développement d'un Système de R echerche d‘Informations
E N D
Recherche d’information & Représentation des Connaissances Rabier Martin Tsemengue Patrick 5GI 24/01/2010 Soutenance de Projet
Introduction • Objectif: Développement d'un Système de Recherche d‘Informations • Collection: Cookbooks sur des technologies de développements de logiciels • Plusieurs notions: recherche, indexation, ontologie
Plan • Système de Recherche d’Information • Indexation • Recherche • Ontologie • Construction de l'ontologie • Appariement des termes • Evaluation • Conclusion
Indexation • Objectif: Construction du fichier inverse • Différentes étapes • Parsing d'un fichier XML • Extraction des termes de la balise <meta> & Distribution vers toutes les sections sous-jacentes • Extraction des termes des balises <section> • Calcul des poids • Stockage d'information
Stockage d'information • Deux tables dans la base de données • FICHIER_INVERSE • SECTION_MAP
Calcul de poids • Coefficient de pondération • Calcul des poids • Produits des balises • Exemple: • <meta><title>mot</title></meta> => poids à 4*2 • <meta><author>mot</author></meta> => poids à 4*1
Taille collection/Taille indexation • Taille de la collection • 21 documents • 109 sections • 55835 mots au total (mots vides inclus) • Taille de l'indexation • 3209 termes différents (mots vides exclus) • 30367 mots au total (mots vides exclus) • Durée de l’indexation • 30 minutes 8 seconds • Temps d'exécution rallongé par les accès à la base de donnée
Recherche – Pertinence d’un mot • Récupération du CLOB associé • (idSection, poids, pos1, pos2, …, posN) (idSection2,…) • Poids = Tf pondéré selon la balise contenant le terme • Ajout de l’IDF avec Tf : nombre d'occurrence du terme dans la section (pondéré selon la balise) N : nombre de sections dans la collection Ni : nombre de sections de la collection contenant le terme
Recherche- Pertinence d’une expression • Expression : plusieurs mots entre guillemets • Vérifier l’ordre correct des mots • Récupération du CLOB de chacun des mots • Récupération des positions des mots dans les sections
Recherche- Pertinence d’une expression • Algorithme : premierMot = premierMotNonVide(expression) pour chaque section S ou premierMot est présent { nbOccurences = 0 pour chaque position de ce premierMot dans S { occurrenceExpr = true pour chaque mot suivant { si il n'est pas a la bonne position occurenceExpr = false } si (occurrenceExpr == true) nbOccurrences++ } }
Recherche- Pertinence d’une expression • Calcul de la pertinence : • Somme des poids des mots dans la section • Nombre d’occurrences de l’expression dans la section • Calcul limité : • Une expression possède une pertinence trop élevée par rapport à celle d’un mot • Possibilité d’amélioration
Recherche – Pertinence d’une requête • Requête : plusieurs mots/expressions • Quid de la pertinence • Si tous les mots doivent être présents => Rappel limité • Si => Ajout de bruit • Calcul d’un ratio : • Classement des sections : • Ordre décroissant du ratio • En cas d’égalité, Ordre décroissant de
Ontologie- Enrichissement de requête • Parsing de l’ontologie • Utilisation d’ OWL API • Création d’une table Terme => Classes ou Individus OWL • Enrichissement de requête : pour chaque mot ou expression de la requête { Récupération des classes et individus OWL pour chaque classe ou individu CouI { ajout des synonymes de CouI à la requête } }
Evaluation • Précision à 5, 10 et 25 éléments par requête
Evaluation • Précision moyenne SRI • Résultats identiques avec l’ontologie
Conclusion • Indexation complète • Stockage d’information satisfaisant • Recherche • Amélioration par affinage des pertinences • Ontologie • Amélioration des résultats par la généralisation/spécification • Extension par des termes couramment utilisés dans les domaines