recherche dinformation & reprÉsentation des connaissances soutenance de projet rabier martin...
TRANSCRIPT
RECHERCHE D’INFORMATION & REPRÉSENTATION DES
CONNAISSANCES
Soutenance de Projet
Rabier MartinTsemengue Patrick
5GI24/01/2010
2
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
3
Plan
Système de Recherche d’Information Indexation Recherche
Ontologie Construction de l'ontologie Appariement des termes
Evaluation Conclusion
4
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
5
Stockage d'information
Deux tables dans la base de données FICHIER_INVERSE
SECTION_MAP
Field TypeTerm Varchar(255)Infos text
Nb_occurences_col Int(11)
Field Type
Id_section Int(11)
Doc_path Varchar(255)
Xpath Varchar(255)
6
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
Tag Weight meta 4title 3code 2image 2section 1subsection 1item 1paragraph 1… 1
7
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
8
Recherche
9
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 collectionNi : nombre de sections de la collection contenant le terme
10
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
11
Recherche- Pertinence d’une expression
Algorithme :premierMot = premierMotNonVide(expression)pour chaque section S ou premierMot est présent{
nbOccurences = 0pour chaque position de ce premierMot dans S{
occurrenceExpr = truepour chaque mot suivant{
si il n'est pas a la bonne positionoccurenceExpr = false
}si (occurrenceExpr == true)
nbOccurrences++}
}
12
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
13
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
14
Ontologie
15
Ontologie
16
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 OWLpour chaque classe ou individu CouI{
ajout des synonymes de CouI à la requête}
}
17
Evaluation
Précision à 5, 10 et 25 éléments par requête
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9Q10 Q11 Q12 Q13
0
20
40
60
80
100
120
51025
18
Evaluation
Précision moyenne SRI
Résultats identiques avec l’ontologie
Rank AV Precision
5 0,584615
10 0,461538
25 0,292308
19
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