enrichissement des moteurs de recherche à partir de connaissances métier thomas francart
DESCRIPTION
Brought to you by Mondeca : how to enhance search engines capabilities to ease content access; use synonyms, translations, narrower terms, spellchecking dictionnaries, faceted search, content classification, and entity disambiguation. All of that using semantic web standards like RDF and SKOS, and exemplified with SolRTRANSCRIPT
08/04/23
Enrichissement des moteurs de recherche à partir de connaissances métier
Mondeca [email protected]
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
A l’intersection entre les problématiques
Amélioration de la recherche
grâce au référentiel métier
Univers duDocument
Structuration sémantique du
contenu
Indexation intelligente du contenu sur sa
structure
Univers dela recherche
Univers de la connaissance
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Cas LERUDI
Univers duDocument
Univers de la connaissance
Outil de gestion de contenu
WCM
AFSITM
SDK
Univers dela recherche
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
De quelles connaissances parle-t-on ?
• Des référentiels métiers internes :– Thesaurus (multilingues)
– Dictionnaires
– Bases d’entités nommées
– Règles de classifications
– Alignements de thesaurus
– …
• Toujours de la donnée structurée
• Des données disponibles sur le Linked Open Data :– Exemple : thesaurus du GEMET, sous-ensemble d’entités
de DBPedia, etc.
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Où peut-on intervenir ?
• à 2 endroits :– Au moment de l’indexation du contenu
• enrichissement de l’index– Au moment de la recherche de l’utilisateur
• Aide à la formulation de la requête
• Les enrichissement les plus efficaces sont faits au moment de l’indexation– Mais cela demande de réindexer les documents si les
connaissances métier évoluent
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Le moteur de recherche
• Lucene SolR :– Open-source
– Recherche plein texte avancée
– Recherche à facettes
– Highlight
– Spellcheck
– « More Like This »
– Integration UIMA
– … feature list : http://lucene.apache.org/solr/features.html
• Les principes présentés ici peuvent être appliqués avec d’autres moteurs de recherche (commerciaux)
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
SolR explorer : une interface de test
• SolR retourne un flux XML à une requête http– http://localhost:8080/
solr/select/q=lac&start=0&length=10
• SolR explorer :– Une interface web de
visualisation / navigation / test du flux XML de retour
– Ce n’est pas un rendu pour l’utilisateur final !
– https://issues.apache.org/jira/browse/SOLR-1163
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Le jeu de données
• Catalogue structuré d’un portail touristique– Hôtels
– Restaurants
– Activités
– Contacts
– …
• Chaque ressource est associée à un site web
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Point de départ : une indexation simple des sites web – sans enrichissement
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
1 : enrichissement avec des synonymes
• Pourquoi ?– Augmenter le rappel, étendre la requête sur des termes
similaires
• Comment ?– En donnant au moteur une liste de mots équivalents entre
eux
– Configuration SolR :<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<!-- in this example, we will only use synonyms at index time -->
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<!-- ... -->
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> -->
<!-- ... -->
</analyzer>
</fieldType>
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Format du fichier de synonymes
• Une ligne par synonymes équivalents• Option 1 : termes équivalents entre eux
– Si l’un des termes est trouvé, tous les termes équivalents seront insérés dans l’index
• Option 2 : se ramener à un terme contrôlé– Si l’un des termes est trouvé, le terme contrôlé sera inséré dans l’index
déreglementation,libéralisation,dérégulationcroisière,croisière de plaisance,croisière maritimespectacle,attraction,showvacances familiales,tourisme familialpêche,pêche à la ligne,permis de pêche,article de pêche,pêche au gros,pêche touristiqueoffice de tourisme,otsi,office municipal de tourisme,syndicat d'initiative
libéralisation,dérégulation => déréglementationcroisière de plaisance,croisière maritime => croisièreattraction,show => spectacletourisme familial => vacances familialespêche à la ligne,permis de pêche,article de pêche,pêche au gros,pêche touristique => pêcheotsi,office municipal de tourisme,syndicat d'initiative => office de tourisme
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Génération d’un fichier de synonymes
• Génération du fichier « synonyms.txt » à partir d’un fichier SKOS– Utilisation du thesaurus de l’Organisation Mondiale du Tourisme
(OMT)<skos:Concept rdf:about="http://thes.world-tourism.org#VACANCES"> <skos:altLabel xml:lang="en">long stays</skos:altLabel> <skos:altLabel xml:lang="fr">marché des vacances</skos:altLabel> <skos:altLabel xml:lang="fr">genre de vacances</skos:altLabel> <skos:altLabel xml:lang="fr">long séjour</skos:altLabel> <skos:altLabel xml:lang="en">holiday markets</skos:altLabel> <skos:altLabel xml:lang="en">vacations</skos:altLabel> <skos:altLabel xml:lang="es">mercado de vacaciones</skos:altLabel> <skos:altLabel xml:lang="fr">activité de vacances</skos:altLabel> <skos:altLabel xml:lang="fr">type de vacances</skos:altLabel> <skos:altLabel xml:lang="en">holiday tourism</skos:altLabel> <skos:altLabel xml:lang="fr">congés payés</skos:altLabel> <skos:altLabel xml:lang="es">estancia larga</skos:altLabel> <skos:altLabel xml:lang="fr">06.09</skos:altLabel> <skos:broader rdf:resource="http://thes.world-tourism.org#FLUX_TOURISTIQUE" /> <skos:inScheme rdf:resource="http://thes.world-tourism.org#_06_FLUX_TOURISTIQUE" /> <!-- … --> <skos:narrower rdf:resource="http://thes.world-tourism.org#VACANCES_D'HIVER" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#VACANCES_D'ETE" /> <skos:prefLabel xml:lang="en">HOLIDAYS</skos:prefLabel> <skos:prefLabel xml:lang="fr">VACANCES</skos:prefLabel> <skos:prefLabel xml:lang="es">VACACIONES</skos:prefLabel> </skos:Concept>
…
Activités nautiques
HOLIDAYS,VACANCES,long stays,marché des vacances,genre de vacances,long séjour,holiday markets,vacations,activité de vacances,type de vacances,holiday tourism,congés payés,06.09
KOREA DPR,COREE RDP,20.03.05.03
TOURISM IN NATIONAL ECONOMIES,TOURISME DANS L'ECONOMIE NATIONALE,04.04.04,place du tourisme dans l'économie
…
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Au moment de l’indexation ou de la recherche ?
• En général, il est préférable d’appliquer les synonymes à l’indexation– Un synonyme avec plusieurs mots (« activité nautique »)
est tokenisé au moment de la query et ne sera pas reconnu correctement• Même avec des quotes ?
– Impact sur les algorithmes de scoring du moteur (IDF)– Les requêtes prefix (« acti* ») ou fuzzy (« ~activité ») ne
sont pas analysées au moment de la query et ne seront pas étendues aux synonymes
• Mais :– L’index sera d’autant plus gros– Si les synonymes changent, il faudra réindexer
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Étendre ou ne pas étendre ?
• Une solution possible pour limiter la taille de l’index :– Ne pas étendre sur une liste de synonymes
– Mais se ramener à une valeur controlée
– Qui pourrait être une URI de concept
• Avantages :– La taille de l’index ne grossit pas– Pas d’influence sur les algorithmes de score
• Mais il faut analyser au moment de l’indexation ET de la recherche• Ne règle pas la question des synonymes composés de plusieurs mots
spectacle,attraction,showpêche,pêche à la ligne,permis de pêche,article de pêche,pêche au gros,pêche touristiqueoffice de tourisme,otsi,office municipal de tourisme,syndicat d'initiative
attraction,show => spectaclepêche à la ligne,permis de pêche,article de pêche,pêche au gros,pêche touristique => pêcheotsi,office municipal de tourisme,syndicat d'initiative => office de tourisme
attraction,show,spectacle => http://thes.world-tourism.org#SPECTACLEpêche, pêche à la ligne,permis de pêche,article de pêche,pêche au gros,pêche touristique => http://thes.world-tourism.org#PECHEoffice de tourisme, otsi,office municipal de tourisme,syndicat d'initiative => http://thes.world-tourism.org#OFFICE_DE_TOURISME
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Des approches mixtes
• Garder deux listes de synonymes :– Une utilisée à l’indexation– Une utilisée à la recherche
• Lorsque de nouveaux synonymes apparaissent :– Les ajouter dans la liste de synonymes pour la recherche
• Ils sont pris en compte tout de suite, sans avoir besoin de réindexer
• Ne règle pas la question des synonymes composés de plusieurs mots
– Les ajouter aussi dans la liste de synonymes pour l’indexation• Ils seront pris en compte lors de la prochaine indexation
• Lors de la prochaine réindexation :– Vider la liste de synonymes utilisée à la recherche
• Autre approche mixte :– Traiter tous les synonymes d’un seul mot à la recherche– Traiter tous les synonymes composés de plusieurs mots lors de
l’indexation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
2 : enrichissement avec des traductions
• Pourquoi– Rendre le moteur de recherche multilingue / pouvoir rechercher sur un contenu qui n’est pas
dans ma langue d’interrogation
• Même principe qu’avec des synonymes– On déclare les traductions comme des synonymes équivalents
• Exemple– Utilisation du thesaurus GEMET du développement durable
– Téléchargeable en SKOS à http://www.eionet.europa.eu/gemet
…achat,purchase,compramosaïque,mosaic,mosaicostation de montagne,mountain resort,centro turístico de montaña…
<rdf:Description rdf:about="concept/10910"> <skos:prefLabel xml:lang="fr">station de montagne</skos:prefLabel> <skos:prefLabel xml:lang="en">mountain resort</skos:prefLabel> <skos:prefLabel xml:lang="es">centro turistico de montana</skos:prefLabel> </rdf:Description>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> <filter class="solr.SynonymFilterFactory" synonyms="gemet.txt" ignoreCase="true" expand="true" /> </analyzer> <!-- … --></fieldType>
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
!?
• Pourquoi une recherche sur « mosaic » matche poterie et vitrail ?
• Pourtant, dans GEMET, on a seulement :
• Oui, mais dans OMT, on a aussi :
– (on peut se demander si « poterie » ou « mosaique » ne devraient pas être des termes spécifiques de « ARTISANAT » dans le thesaurus de l’OMT ? C’est ainsi…)
• Puisqu’on utilise les 2 dictionnaires de synonymes, on a à l’indexation :– Poterie mosaïque mosaic
• On tire parti des synonymes de l’OMT et des traductions du GEMET– Attention aux interactions non souhaitées !
…achat,purchase,compramosaïque,mosaic,mosaicostation de montagne,mountain resort,centro turístico de montaña…
ARTISANAT,vitrail,orfèvrerie,mécanique,dentelle,plomberie,tapisserie,ébénisterie,mosaïque,modélisme,tissage,porcelaine,crafts,artisanat d'art,menuiserie,cristallerie,joaillerie,émaux,peinture sur soie,poterie
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
3 : enrichissement avec les termes spécifiques
• Pourquoi ?– Augmenter le rappel. Permet de rechercher sur des notions
génériques
• Les thesaurus GEMET et OMT définissent une hiérarchie de termes– Loisirs > loisirs de plein air > randonnée > randonnées
cycliste– Loisirs > sorties > spectacle > cirque
• Une recherche sur « sorties » devrait ramener les documents contenant « spectacle » ou « cirque »– Une recherche sur « Loisirs » devrait ramener les
documents contenant « randonnée » ou « spectacle »– Etc.
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
• Comment ?– On va là aussi se servir
du mécanisme de synonymes
– On va appliquer cette traduction à l’indexation, il faut donc traduire du terme spécifique vers tous ses termes génériques
• Si on traduisait à la recherche, on traduirait du générique vers le spécifique
• Si « peinture » est dans le texte, on doit insérer dans l’index « loisirs culturels » et « loisirs » qui sont ses termes génériques
Génération du fichier de termes spécifiques
<skos:Concept rdf:about="http://thes.world-tourism.org#LOISIRS"> <skos:narrower rdf:resource="http://thes.world-tourism.org#LOISIRS_DE_PLEIN_AIR" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#SORTIE" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#LOISIRS_D'INTERIEUR" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#OISIVETE" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#LOISIRS_CULTURELS" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#JEU" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#ARTISANAT" /> <skos:prefLabel xml:lang="fr">LOISIRS</skos:prefLabel> </skos:Concept><skos:Concept rdf:about="http://thes.world-tourism.org#LOISIRS_CULTURELS"> <skos:altLabel xml:lang="fr">loisirs artistiques</skos:altLabel> <skos:broader rdf:resource="http://thes.world-tourism.org#LOISIRS" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#PEINTURE" /> <skos:prefLabel xml:lang="fr">LOISIRS CULTURELS</skos:prefLabel> </skos:Concept><skos:Concept rdf:about="http://thes.world-tourism.org#PEINTURE"> <skos:altLabel xml:lang="fr">09.03.07</skos:altLabel> <skos:broader rdf:resource="http://thes.world-tourism.org#LOISIRS_CULTURELS" /> <skos:prefLabel xml:lang="fr">PEINTURE</skos:prefLabel> </skos:Concept>
RESEAU => TRAFIC,TRANSPORTPEINTURE => LOISIRS CULTURELS,LOISIRSFETE => MANIFESTATION CULTURELLE,MANIFESTATION TOURISTIQUETRANSPORT FLUVIAL => MODE DE TRANSPORT,TRANSPORT
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
4 : correction orthographique
• Pourquoi ?– Proposer à l’utilisateur un terme approchant de celui recherché
• « retsaurant » « Did you mean ‘restaurant’ ? »• Comment ? 2 façons de faire du spellchecking :
– En utilisant l’index comme un dictionnaire• Les propositions de correction matchent forcément des
résultats dans l’index– Donc presque 100% de chance de ramener des résultats, sauf si
les termes corrigés sont combinés avec d’autres termes dans la requête
• Mais tout le vocabulaire métier n’est pas forcément proposé à la correction– S’il n’est pas présent dans le contenu indexé
– En s’appuyant sur une liste de termes contrôlés• Les propositions ne ramèneront pas forcément de résultats
– Puisqu’il n’y a pas de garantie qu’un document contienne ce terme
• Mais tout le vocabulaire métier sera proposé pour contrôler
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Spellchecking à base d’une liste contrôlée
• Configuration SolR : solrconfig.xml<config><searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType">textSpell</str> <lst name="spellchecker"> <str name="name">default</str> <str name="field">name</str> <str name="spellcheckIndexDir">./spellchecker</str> </lst> <lst name="spellchecker"> <str name="classname">solr.FileBasedSpellChecker</str> <str name="name">file</str> <str name="sourceLocation">spellcheck.txt</str> <str name="characterEncoding">UTF-8</str> <str name="accuracy">0.8</str> <str name="spellcheckIndexDir">./spellcheckerFile</str> </lst></searchComponent>
<requestHandler name="standard" class="solr.SearchHandler" default="true"> <lst name="defaults"> <str name="echoParams">explicit</str> <str name="spellcheck.onlyMorePopular">false</str> <str name="spellcheck.extendedResults">false</str> <str name="spellcheck.count">1</str> </lst> <arr name="last-components"> <str>spellcheck</str> </arr></requestHandler></config>
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Génération du fichier spellcheck.txt
• Génération du fichier spellcheck.txt à partir du fichier SKOS de l’OMT
<skos:Concept rdf:about="http://thes.world-tourism.org#VACANCES"> <skos:altLabel xml:lang="en">long stays</skos:altLabel> <skos:altLabel xml:lang="fr">marché des vacances</skos:altLabel> <skos:altLabel xml:lang="fr">genre de vacances</skos:altLabel> <skos:altLabel xml:lang="fr">long séjour</skos:altLabel> <skos:altLabel xml:lang="en">holiday markets</skos:altLabel> <skos:altLabel xml:lang="en">vacations</skos:altLabel> <skos:altLabel xml:lang="es">mercado de vacaciones</skos:altLabel> <skos:altLabel xml:lang="fr">activité de vacances</skos:altLabel> <skos:altLabel xml:lang="fr">type de vacances</skos:altLabel> <skos:altLabel xml:lang="en">holiday tourism</skos:altLabel> <skos:altLabel xml:lang="fr">congés payés</skos:altLabel> <skos:altLabel xml:lang="es">estancia larga</skos:altLabel> <skos:altLabel xml:lang="fr">06.09</skos:altLabel> <skos:broader rdf:resource="http://thes.world-tourism.org#FLUX_TOURISTIQUE" /> <skos:inScheme rdf:resource="http://thes.world-tourism.org#_06_FLUX_TOURISTIQUE" /> <!-- … --> <skos:narrower rdf:resource="http://thes.world-tourism.org#VACANCES_D'HIVER" /> <skos:narrower rdf:resource="http://thes.world-tourism.org#VACANCES_D'ETE" /> <skos:prefLabel xml:lang="en">HOLIDAYS</skos:prefLabel> <skos:prefLabel xml:lang="fr">VACANCES</skos:prefLabel> <skos:prefLabel xml:lang="es">VACACIONES</skos:prefLabel> </skos:Concept>
ORGANISMO DE CREDITO14.11.02Activités nautiquesHOLIDAYSVACANCESVACACIONESmarché des vacancesgenre de vacanceslong séjouractivité de vacancestype de vacancescongés payés06.09KOREA DPR…
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
5 : structurer sémantiquement le contenu
• « Smarter content = smarter index »• Il faut s’intéresser à la structuration sémantique
du contenu afin d’améliorer la recherche– Associer des métadonnées au contenu– Qui prennent leurs valeurs dans des référentiels non-ambigus
(identification avec des URIs)
• L’association de métadonnées structurées au contenu permet la navigation par facettes
• Cette problématique est un univers en soi et ne sera pas détaillée ici– Utilisation d’outils de text-mining et/ou de middlewares
d’intégration comme le CA-Manager de Mondeca• SolR dispose de capacité d’intégration UIMA dans sa chaine
d’indexation pour intégrer des outils de text-mining– Structuration manuelle dans le cas du catalogue touristique
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Catalogue structuré en RDF
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Configuration du schema d’indexation
• 1 champ d’index pour chaque metadonnée– Dans conf/schema.xml
<field name="Mot_Cle_103696" multiValued="true" type="string" indexed="true" stored="true" /> <field name="animaux_acceptes" multiValued="false" type="string" indexed="true" stored="true" /> <field name="bassin_touristique_at" multiValued="true" type="string" indexed="true" stored="true" /> <field name="bordereau_Tourinfrance_103952" multiValued="true" type="string" indexed="true" stored="true" /> <field name="commune_at" multiValued="true" type="string" indexed="true" stored="true" /> <field name="zone_geographique_at" multiValued="true" type="string" indexed="true" stored="true" /> <field name="paiement_accepte" multiValued="true" type="string" indexed="true" stored="true" /> <field name="label_at" multiValued="true" type="string" indexed="true" stored="true" /> <field name="langue_parlee" multiValued="true" type="string" indexed="true" stored="true" /> <field name="type_h" multiValued="true" type="string" indexed="true" stored="true" /> <field name="classement" multiValued="true" type="string" indexed="true" stored="true" /> <field name="tarif_nuit_mini" multiValued="true" type="string" indexed="true" stored="true" />
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Résultat : facettes
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
7 : classification dynamique du contenu
• Pourquoi ?– Le classement des
entrées du catalogue n’est pas celui que l’on veut présenter à l’utilisateur final• Vision « objective » vs.
Vision « subjective »– On veut pouvoir
présenter un classement différent du même catalogue :• À des audiences
différentes• Sur des medias
différents– On veut présenter le
même catalogue suivant plusieurs axes
– Favoriser la réutilisation du contenu
•Un hébergement ?
• Simple• Classique• Raffiné
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
ITM-rules : création des règles
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Définition de règles : format
• Les nouvelles hiérarchies de classement sont définies en SKOS
• A chaque entrée SKOS sont associées des règles de classification en SPARQL – générées à partir de l’écran
<skos:Concept rdf:about="itm:n#_migration_taxo_106544"> <skos:prefLabel xml:lang="fr">Raffiné</skos:prefLabel> <skos:definition>
PREFIX r: <itm:n#>PREFIX q: http://www.nievre-tourisme.com/onto#CONSTRUCT { ?SEARCHED_TOPIC <http://purl.org/dc/terms/subject>
r:_migration_taxo_106544 .}WHERE { ?SEARCHED_TOPIC a q:Hebergement . ?SEARCHED_TOPIC q:classement
q:class_CAT4 . } </skos:definition> <skos:definition>
PREFIX j: <itm:n#>PREFIX i: http://www.nievre-tourisme.com/onto#CONSTRUCT { ?SEARCHED_TOPIC <http://purl.org/dc/terms/subject>
j:_migration_taxo_106544 .}WHERE { ?SEARCHED_TOPIC a i:Hebergement . ?SEARCHED_TOPIC i:classement
i:class_4EP . } </skos:definition> </skos:Concept>
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Content-classifier : Execution des règles
08/04/23
Taxonomy (Classification Rules)
SKOS + SPARQL
Classification engine
RD
F C
on
ten
t M
eta
da
ta
…
Cla
ssifi
catio
n M
eta
da
ta
…
• Based on RDF triplestore• Loads terminology and metadata• Infer on terminology
• OWL & SKOS inference• Custom rules
• Apply SPARQL classification rules• optionnaly, simplifies RDF structure
?x is a <Hotel> and price(?x) < 50
?x is a <Camping> and size(?x) > 300
…
TerminologySKOS + RDF
Content classified with additionnal
dcterms:subject and dc:subject properties
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Le catalogue classifié avec des métadonnées supplémentaires
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Champs d’index supplémentaires pour les nouvelles classifications
<field name="taxo_confort" multiValued="true" type="string" indexed="true" stored="true" />
<field name="taxo_generale" multiValued="true" type="string" indexed="true" stored="true" />
• Nouveaux champs d’index pour les nouvelles métadonnéesDans conf/schema.xml
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Classification dynamique : Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
8 : utilisation d’alignements de référentiels
OMT
• Pourquoi ?– Si le contenu est annoté sur un thesaurus A, et que l’utilisateur cherche
avec un thesaurus B ?– Permet d’interroger des corpus annoté sur un thesaurus différent de
celui de la recherche
GEMET
Alignement des thesaurus
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
ITM-align : Création des alignements
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Format des alignements
<map> <Cell rdf:about="150046"> <entity1> <edoal:Class rdf:about="http://eurlex-directory-codes.europa.eu/0350" /> </entity1> <entity2> <edoal:Class rdf:about="http://eurovoc.europa.eu/2897" /> </entity2> <relation>fr.inrialpes.exmo.align.impl.rel.EquivRelation</relation> <measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</measure> </Cell></map><map> <Cell rdf:about="152849"> <entity1> <edoal:Class rdf:about="http://eurlex-directory-codes.europa.eu/0350" /> </entity1> <entity2> <edoal:Class rdf:about="http://eurovoc.europa.eu/2479" /> </entity2> <relation>fr.inrialpes.exmo.align.impl.rel.EquivRelation</relation> <measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</measure> </Cell></map>
Concepts alignés
Type de la relation Score
Format « EDOAL » de l’INRIA : http://alignapi.gforge.inria.fr/edoal.html
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Utilisation des alignements
• Au moment de l’indexation
• On traduit les annotations des documents d’origine en utilisant l’alignement– Du Thesaurus A vers le thesaurus B
• On enrichit l’index avec les concepts du thesaurus B– L’index contient donc l’annotation sur le thesaurus A et sur le
thesaurus B
• On peut ensuite rechercher sur le corpus en utilisant les concepts du thesaurus B
• L’alignement est interprété par du code spécifique dans la chaine d’indexation, il n’y a pas de config spécifique côté SolR– Si ce n’est un champ d’index dédié pour recevoir le résultat de la
traduction
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Alignements des référentiels : résultat
Facette sur l’annotation du thesaurus de
départ
Facette sur les concepts traduits par l’alignement
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Désambiguïsation
• Pourquoi ?– Ramener les termes de recherche d’un utilisateur à une
entité contrôlée• « loisirs » http://thes.world-tourism.org#LOISIRS
• Désambiguïser une entité au moment de la recherche n’a de sens que si cette entité a été désambiguïsée au moment de l’indexation– Soit le document était explicitement catégorisé sur une
entité (par son URI)– Soit l’entité a été extraite par du text-mining
• La désambiguïsation d’une entité du référentiel par le moteur ne peut se faire que si le référentiel a été lui-même indexé par le moteur
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Désambiguïsation : principe
1. Utilisation du référentiel à l’indexation
2. Indexation du référentiel
http://www.z.fr/e1 doc1
http://www.z.fr/e1 doc2
venus http://www.z.fr/e1
cupidon http://www.z.fr/e2
3. Désambiguïsation du terme vers une
entité contrôlée
4. Recherche sur l’identifiant de l’entité
contrôlée
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Désambiguïsation : Résultat
Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier
Plan
1 - Synonymes
2 - Traductions
3 - Termes spécifiques
4 - Corrections orthographiques
5 - Facettes
6 - Classification dynamique
7 - Alignements de vocabulaires
8 - Désambiguïsation
Merci de votre attention !