Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

55
28/10/22 Enrichissement des moteurs de recherche à partir de connaissances métier Mondeca [email protected] om

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 SolR

Transcript of Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Page 1: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

08/04/23

Enrichissement des moteurs de recherche à partir de connaissances métier

Mondeca [email protected]

Page 2: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 3: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 4: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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.

Page 5: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 6: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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)

Page 7: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 8: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 9: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Point de départ : une indexation simple des sites web – sans enrichissement

Page 10: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 11: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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>

Page 12: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 13: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 14: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Résultat

Page 15: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 16: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 17: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 18: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 19: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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>

Page 20: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Résultat

Page 21: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 22: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 23: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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.

Page 24: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 25: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Résultat

Page 26: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 27: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 28: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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>

Page 29: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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…

Page 30: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Résultat

Page 31: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 32: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 33: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Catalogue structuré en RDF

Page 34: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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" />

Page 35: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Résultat : facettes

Page 36: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 37: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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é

Page 38: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

ITM-rules : création des règles

Page 39: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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>

Page 40: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 41: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Le catalogue classifié avec des métadonnées supplémentaires

Page 42: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 43: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Classification dynamique : Résultat

Page 44: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 45: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 46: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

ITM-align : Création des alignements

Page 47: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 48: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 49: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 50: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 51: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 52: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 53: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Thomas Francart - Enrichissement des moteurs de recherche à partir de connaissances métier

Désambiguïsation : Résultat

Page 54: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

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

Page 55: Enrichissement des moteurs de recherche à partir de connaissances métier thomas francart

Merci de votre attention !

[email protected]