Annotation Semantique de Documents Semi-Structurés
pour la recherche d’information
Mouhamadou Thiam
To cite this version:
Mouhamadou Thiam. Annotation Semantique de Documents Semi-Structurés pour la recherche
d’information. Interface homme-machine [cs.HC]. Université Paris Sud - Paris XI, 2010. Français.
tel-00542932
HAL Id: tel-00542932
https://tel.archives-ouvertes.fr/tel-00542932
Submitted on 4 Dec 2010
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
!
!
Laboratoire de Recherche en Informatique — U.M.R CNRS 8623 —
Université de Paris-Sud
Annotation Sémantique de Documents
Semi-structurés pour la Recherche
d’Information
THÈSE EN CO-TUTELLE
présentée et soutenue publiquement le 09 Décembre 2010
pour l’obtention du
Doctorat des Universités de Paris-Sud et Gaston Berger
Spécialité : informatique
par
Mouhamadou THIAM
Composition du jury
Rapporteurs :
Nathalie Aussenac-Gilles
Fabien Gandon
Directrice de Recherche – IRIT – Toulouse
Chercheur Senior – Edelweiss Research team
INRIA – Sophia Antipolis
Examinateurs :
Cheikh Talibouya Diop
Amel Bouzeghoub
Maı̂tre de conférences HDR – LANI – UGB
Professeur – TELECOM & Management – Sudparis
Directeurs de thèse :
Moussa LO
Chantal Reynaud
Maı̂tre de conférences HDR – LANI – UGB
Professeur – LRI – Université Paris-Sud
Co-directrices :
Nacéra Bennacer
Nathalie Pernelle
Maı̂tre de conférences – E3S– SUPELEC
Maı̂tre de conférences – LRI – Univ. Paris-Sud
Université Paris-Sud, 91405 Orsay Cedex, France
!
!
Mis en page avec la classe thloria.
Je dédie cette thèse
à ma mère Bigué Kébé,
à mon père El Hadji Yague,
à mes nièces Fatou Kiné et BB Khady,
et à mon futur petit bout-de-bois-de-Dieu...
i
ii
Remerciements
J’aimerais remercier toutes les personnes qui m’ont assisté durant mes travaux de recherche et d’écriture de cette thèse :
Amel Bouzeghoub pour l’intérêt qu’elle a porté à cette thèse en acceptant de présider le
jury de ma soutenance.
Nathalie Aussenac-Gilles et Fabien Gandon qui me font l’honneur d’être rapporteurs
de cette thèse, mais également pour leur amabilité.
Nacéra Bennacer et Nathalie Pernelle, mes co-directrices de thèse, pour leurs idées et
critiques constructives, leurs remarques toujours pertinentes, leur relecture rigoureuse de
ce mémoire et nos discussions animées autour de ce travail thèse.
Moussa Lo et Chantal Reynaud, mes directeurs de thèse, pour leur disponibilité, leurs
critiques et leurs conseils toujours opportuns.
Cheikh Talibouya Diop pour l’intérêt qu’il a porté à cette thèse en acceptant de faire
partie de mon jury.
Toute l’équipe IASI, qui m’a accueilli, me procurant ainsi un cadre de travail et de réflexion propice à la réalisation de cette thèse, grâce notamment aux divers projets et
conférences auxquels j’ai pu participer activement.
Tous les membres du département informatique de Supelec, et notamment Yolaine Bourda,
Evelyne Faivre, tous les doctorants, pour les nombreuses heures passées ensemble, pour
leur aide précieuse et pour leur bonne humeur revigorante.
Ma famille, et plus particulièrement mes parents, qui ont su m’encourager jour après
jour et qui ont toujours cru en moi. Sans leur soutien constant, tant affectif que matériel,
je n’aurai jamais pu accomplir mes études et envisager cette thèse.
Mon oncle Mouhamed Kébé pour son soutien matériel, pour tous les livres qu’il a achetés
depuis mes premiers pas à l’école.
L’ensemble de mes amis, plus particulièrement Momath Kébé, pour ces derniers longs
mois d’absence durant ces années de thèse.
Les familles de Abou et Thioub de Kaolack, spécialement à Yaye Diale Touré, pour leur
accueil et assistance, mais aussi la famille Diassé de Ndar, Madjiguène et ses enfants.
Et enfin, mon chouchou, ma femme, mon épaule, mon cerveau aussi parfois, Fatimata,
pour son amour, sa tendresse, sa présence et sa grande patience surtout pour ses premières
Eid passées sans moi, sans qui je ne serai peut-être pas arrivé au bout de cette aventure.
iii
iv
Table des matières
viii
Introduction générale
1
Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
2
Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
3
Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
4
Plan du manuscrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Chapitre 1
ÉTAT DE L’ART
3
1.1 Extraction et annotation sémantique dans les documents semi-structurés .
1.1.1
Approches exploitant la structure des documents . . . . . . . . . .
1.1.2
Approches exploitant des patterns syntaxiques ou lexico-syntaxique
dans le texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3
4
6
8
Approches exploitant des ressources lexicales et/ou le web . . . . . 10
1.2 Langages de représentation et d’interrogation de ressources Web . . . . . . 16
1.2.1
Pile du Web sémantique . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.2
Ressource Description Framework / Schema (RDF/RDFS) . . . . . 17
1.2.3
Ontology Web Langage (OWL) . . . . . . . . . . . . . . . . . . . . 20
1.2.4
Simple Knowledge Organisation Systems (SKOS) . . . . . . . . . . 20
1.2.5
Langage d’interrogation SPARQL . . . . . . . . . . . . . . . . . . . 21
Chapitre 2
PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
2.1 Ontologie à composante lexicale . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1
Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.2
Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2 Modèle d’annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1
Le concept PartOfSpeech . . . . . . . . . . . . . . . . . . . . . . . . 32
v
Table des matières
2.2.2
Le concept SetOfConcept . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3
La propriété neighborOf . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.4
Les métadonnées de pré-annotation . . . . . . . . . . . . . . . . . . 33
2.3 Architecture de notre système . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.1
Constitution du corpus . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.2
Processus d’extraction SHIRI-Extract . . . . . . . . . . . . . . . . . 34
2.3.3
Processus d’annotation SHIRI-Annot . . . . . . . . . . . . . . . . . 36
2.4 Scénario d’usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Chapitre 3
EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES
TERMES
3.1 Présentation de SHIRI-Extract
. . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.1
Objectifs généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.2
Extraction des termes candidats . . . . . . . . . . . . . . . . . . . . 46
3.1.3
Stratégie de sélection des termes candidats . . . . . . . . . . . . . . 50
3.1.4
Alignement local ou via le web . . . . . . . . . . . . . . . . . . . . . 50
3.1.5
Enrichissement de l’ontologie
. . . . . . . . . . . . . . . . . . . . . 55
3.2 Algorithme d’extraction et d’alignement . . . . . . . . . . . . . . . . . . . 55
3.2.1
Notations et principes algorithmiques . . . . . . . . . . . . . . . . . 55
3.2.2
Alignement local d’une entité nommée . . . . . . . . . . . . . . . . 58
3.2.3
Alignement local d’un terme . . . . . . . . . . . . . . . . . . . . . . 60
3.2.4
Alignement via le Web d’un terme candidat . . . . . . . . . . . . . 62
3.2.5
Illustration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Chapitre 4
ANNOTATION DES DOCUMENTS ET INTERROGATION
4.1 Règles d’annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.1
Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.2
Génération du typage des nœuds . . . . . . . . . . . . . . . . . . . 75
4.1.3
Génération de relations de voisinage entre nœuds . . . . . . . . . . 77
4.1.4
Exemple d’application des règles d’annotations . . . . . . . . . . . . 77
4.2 Interrogation des annotations . . . . . . . . . . . . . . . . . . . . . . . . . 80
vi
4.2.1
Définitions préliminaires . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2
Types de requête utilisateur . . . . . . . . . . . . . . . . . . . . . . 80
4.2.3
SHIRI-Querying
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Chapitre 5
EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
5.1 Entrées des expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.1
Ontologie du domaine . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.2
Constitution du corpus . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2 Expérimentation et évaluation de l’extraction et de l’alignement . . . . . . 93
5.2.1
Résultats de l’extraction . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.2
Outil de Pierre Senellart . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.3
Résultats de l’alignement . . . . . . . . . . . . . . . . . . . . . . . . 99
5.3 Expérimentation et évaluation de l’annotation . . . . . . . . . . . . . . . . 108
5.3.1
Résultats du typage des nœuds . . . . . . . . . . . . . . . . . . . . 108
5.3.2
Évaluation de la relation neighborOf selon la distance . . . . . . . . 108
CONCLUSIONS ET PERSPECTIVES
111
1
Apports de notre approche . . . . . . . . . . . . . . . . . . . . . . . . . . 111
2
Perspectives
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Table des figures
116
Liste des tableaux
118
Bibliographie
119
vii
Introduction générale
1
Contexte
Le web constitue une masse d’information gigantesque. Le nombre de ressources accessibles sur le web croît de façon exponentielle et le nombre d’usagers double chaque
année. Selon Tim Berners-Lee, le web sémantique est un ensemble de méthodes et de
technologies permettant à des agents logiciels de manipuler et de raisonner sur le contenu
des ressources du Web. Cependant, le web actuel est encore loin de cet idéal.
Cette vision du Web futur dépend de la construction, de la prolifération des ontologies
et de l’utilisation de métadonnées pour décrire et représenter les ressources Web. Une
ontologie est définie comme une spécification explicite d’une conceptualisation [Gru93].
Une métadonnée est définie comme une donnée qui définit d’autres données notamment
leur sémantique.
L’annotation sémantique des ressources Web à l’aide de métadonnées permet une
meilleure interprétation de leur contenu. Quand ces annotations sont disponibles, il est
possible de formuler des requêtes basées sur le vocabulaire des ontologies, de raisonner
sur ces annotations, et de recueillir des réponses combinant des données provenant de
différents documents. Les moteurs de recherche sont alors capables d’aller au-delà d’une
recherche mots-clés et de répondre précisément à des requêtes complexes.
L’annotation sémantique de ressources Web est un problème qui intéresse différentes
communautés. De nombreux projets existent, certains visent à construire des bases d’annotations comme DBpedia [ABK+ 07] qui annote sémantiquement des pages wikipédia
dans le langage RDF [W3Cb]. Le projet Linked-Data est un projet plus ambitieux qui
vise à décrire, à partager et à connecter différentes ressources provenant de différentes
sources telles que DBpedia, DBLP et Geo-names. D’autres projets ont pour objectif de
faciliter l’annotation manuelle de ressources Web comme Annotea [KK01] un standard du
W3C qui vise à améliorer la collaboration sur le web en annotant les documents dans le
langage RDF.
Compte tenu du nombre des ressources disponibles, l’annotation manuelle est une
tâche longue et fastidieuse qui ne sied pas à l’échelle du Web. L’automatisation des techniques d’annotation est un facteur clé pour le Web du futur et son passage à l’échelle.
L’une des principales difficultés rencontrées réside dans le fait que les ressources Web sont
très hétérogènes aussi bien du point de vue de leur format (HTML, pdf, gif, mpeg, avi,...)
et de leur structuration que du point de vue du vocabulaire utilisé. Les approches proposées dans la littérature concernent des domaines complémentaires tels que le datamining,
l’intelligence artificielle, l’ingénierie des connaissances et le traitement du langage naturel.
viii
2. Problématique
Pour limiter les problèmes liés à l’annotation, les méthodes développées se focalisent
souvent sur un domaine d’application, sur une classe de sites Web ou encore sur des entités
précises comme l’annotation des noms de personnes, des adresses e-mail, ou des pays.
2
Problématique
Techniquement, une annotation sémantique consiste à assigner à une entité (une chaîne
de caractères, une phrase, un paragraphe, une partie de document ou un document) une
métadonnée dont la sémantique est définie dans une ontologie. Elle a comme objectif
d’annoter des concepts, des instances de concepts ou leurs relations. Cette annotation peut
être stockée dans le document lui-même, ou dans un autre document référençant l’entité
annotée par son URI (Universal Resource Identifier). L’annotation de documents est une
problématique trés liée à l’extraction d’information. La différence est que l’extraction ne
conserve pas le contexte d’apparition (le document) de l’entité extraite.
Les instances de concepts de l’ontologie recherchées sont décrites de différentes façons dans les textes de documents, par un paragraphe, par une phrase, un segment de
phrase, par un terme ou une entité nommée. Souvent, ces termes et ces entités nommées
représentent une part importante de la sémantique du document.
Une méthode d’annotation est caractérisée par le niveau de structuration des documents qu’elle traite. Certaines approches sont spécialisées dans de l’annotation du texte
libre et d’autres dans l’annotation d’éléments de structure spécifiques comme les tableaux
et les listes. Cependant, les documents existants sont souvent structurellement hétérogènes
et comportent des parties bien structurées et des parties textuelles.
Si les documents sont conçus par des auteurs différents et pour des besoins différents,
ces termes et ces entités nommées ne sont pas décrits dans des expressions linguistiques
qui se répètent. L’utilisation de méthodes basées sur des patterns ou des règles spécifiques
au domaine ou au corpus traité ne permettrait pas de couvrir correctement les termes
et les entités nommées de concepts ou leurs relations. Compte tenu du nombre et de
l’hétérogénéité des documents, l’utilisation de méthodes exploitant une base d’exemples
pré-annotés (labellisés) permettant de superviser l’apprentissage de règles d’extraction et
d’annotation aura également un taux de couverture limité.
Dans ce contexte, une méthode d’annotation qui se veut automatique est confrontée au
fait que les termes et les entités nommées sont difficiles à repérer et à délimiter précisément
dans les parties textuelles des documents traités. L’une des solutions est alors de s’appuyer sur des bases lexicales, des bases de connaissances (ontologie peuplée d’instances)
existantes ou le Web.
3
Contributions
Notre travail de thèse se situe dans le cadre du projet SHIRI (Système Hybride d’Intégration pour la Recherche d’Information dans les ressources hétérogènes) 1 .
1. SHIRI : Projet Digiteo labs (LRI, Supélec). Lot 1 : Annotation sémantique de documents semistructurés (SHIRI-Extract et SHIRI-Annot ). Lot 2 : Interrogation des annotations (SHIRI-Quering).
ix
Introduction générale
Notre objectif est d’annoter sémantiquement une collection de documents relatifs au
même domaine et délimités par des balises (XHTML, XML). Ces documents sont structurellement hétérogènes et comportent des parties bien structurées et d’autres textuelles.
Notre approche se veut automatique et non supervisée.
Nous nous plaçons dans le contexte où nous disposons d’une ontologie de domaine
définie par un ensemble de concepts, un ensemble de relations entre ces concepts et leurs
propriétés. Cette ontologie comporte une composante lexicale où chaque concept est accompagné de plusieurs labels, d’un premier ensemble d’entités nommées et de termes du
domaine. L’ensemble des labels d’un concept est un ensemble de termes considérés comme
équivalents (synonymie dans le domaine) pour représenter un concept. L’ensemble des
termes d’un concept est un ensemble de termes qui décrivent les instances des concepts
du domaine. Les termes d’un concept sont plus spécifiques que ses labels. Ces ensembles
sont validés par l’expert du domaine.
L’idée maîtresse, dans notre travail, est de repérer des termes ou entités nommées
de concepts dans les nœuds de l’arbre DOM (Document Object Model) représentant la
structure d’un document (HTML ou XML). Pour avoir une bonne couverture, nous extrayons les termes ou les entités nommées candidats de manière indépendante du domaine
et des documents. Ces termes ou entités nommées candidats sont rapprochés des termes
ou des labels de l’ontologie lexicale afin de déterminer les concepts appropriés. Vu que
ces termes ou ces entités nommées ne sont pas délimités parfaitement dans le texte, nous
avons choisi d’annoter les nœuds dans lesquels ils sont repérés. Ce qui permet de prendre
en compte cette délimitation imprécise et de conserver les termes et les entités nommées
repérés dans leur contexte structurel minimal : le nœud qui les contient. De même, nous
exploitons la proximité structurelle des nœuds instances pour déduire l’existence possible
d’une relation sémantique de domaine et l’annoter par une relation de voisinage, sans
chercher à l’identifier précisément.
Dans ce contexte, nous avons plusieurs problèmes à résoudre liés à : (i) l’extraction
des termes et entités nommées candidats, (ii) au rapprochement avec l’ontologie, (iii) au
fait que la composante lexicale ne soit pas suffisamment riche et (iv) à l’annotation qui
soit adaptée au contenu du nœud.
Notre approche est composée de trois modules :
• SHIRI-Extract : est le module qui extrait des termes et des entités nommées (EN)
dans les documents, qui les associe aux concepts de l’ontologie et qui enrichit la
composante lexicale de l’ontologie.
• SHIRI-Annot : est le module qui annote les nœuds de documents conformément au
modèle d’annotation que nous avons défini.
• SHIRI-Querying : est le module qui permet de poser des requêtes sur la base des
annotations, ces requêtes sont formulées à l’aide des métadonnées définies dans le
modèle d’annotation.
L’ontologie ainsi que les annotations sont représentées avec les langages RDF(S).
x
3. Contributions
Plus précisément, nos contributions dans ce travail de thèse sont les suivantes :
Extraction des termes et entités nommées candidats et alignement avec l’ontologie.
Nous utilisons des patterns syntaxiques représentant des syntagmes nominaux utilisés
couramment pour l’extraction des termes. De la même façon, les entités nommées sont
extraites grâce à un ensemble de patterns lexico-syntaxiques. Ces patterns sont indépendants du domaine et du corpus.
Les termes et les entités nommées candidats sont associés aux concepts de l’ontologie avec des mesures de similarité différentes parce que ces entités ne subissent pas les
mêmes types de variations syntaxiques. Ces mesures exploitent la catégorie grammaticale
des mots, la similarité des chaînes de caractères ainsi que la taxonomie dans laquelle ils
apparaissent. Les mesures que nous utilisons pour les termes sont celles utilisées pour l’alignement de deux ontologies dans Taxomap [HZSR08]. Dans notre approche nous appelons
alignement le processus qui permet d’associer un terme ou une entité nommée candidat
avec les concepts de notre ontologie.
Même si la composante lexicale de l’ontologie est riche, ces mesures ne permettront
pas de trouver tous les alignements. Notre approche exploite le Web pour découvrir des
termes en relation d’hyponymie avec les termes candidats ou des termes décrivant les
concepts auxquels les entités nommées appartiennent. Ces termes découverts permettent
ainsi d’aligner d’autres termes ou entités nommées candidats.
Enrichissement de l’ontologie.
L’ontologie est enrichie lexicalement par les termes ou EN découverts dans les documents ou sur le Web. Ainsi le besoin d’accès au Web, qui peut être coûteux, est réduit
au fur et à mesure que les documents, appartenant au même domaine, sont traités. Cet
enrichissement peut être validé par l’expert pour s’assurer de sa qualité.
Annotation des nœuds de documents
Nous avons défini un modèle d’annotation pour représenter les résultats d’extraction
et d’annotation. L’annotation d’un nœud est définie en fonction de la présence d’un ou
plusieurs termes ou ENs dans ce nœud et des concepts avec lesquels ils ont été alignés.
Les métadonnées du modèle d’annotation permettent de distinguer les nœuds selon que
les termes ou les entités nommées agrégés dans un même nœud soient alignés avec un ou
plusieurs concepts différents ou similaires sémantiquement.
Ces métadonnées permettent également d’annoter la relation de voisinage entre les
nœuds instances en exploitant leur sémantique et leur proximité structurelle en termes de
longueur du chemin les reliant dans l’arbre structurel représentant les documents.
Pour annoter les nœuds instances et leur relation, nous avons défini un ensemble de
règles déclaratives qui permettent de transformer les triplets résultant de l’extraction en
triplets d’annotations conformes au modèle d’annotation que nous avons défini.
xi
Introduction générale
La base d’annotations RDF ainsi construite peut être interrogée en utilisant des requêtes SPARQL.
Notre approche est implémentée, expérimentée et évaluée sur une collection de documents portant sur les appels à participation à des conférences du domaine informatique
et les résultats obtenus sont très encourageants.
Les résultats obtenus en utilisant le module SHIRI-Querying ont bien montré l’intérêt
de notre modèle d’annotation pour trier les réponses selon le niveau d’agrégation des
termes et entités nommées repérés dans les nœuds. De plus, la granularité de l’annotation
permet de présenter à l’utilisateur des nœuds et non pas des documents en réponses.
4
Plan du manuscrit
Ce manuscrit est organisé en cinq chapitres.
Chapitre I : Etat de l’art.
Dans ce chapitre, nous présentons les problèmes liés à l’annotation dans les documents semi-structurés et les principales orientations et techniques utilisées pour traiter
ces problèmes. Ensuite, nous présentons brièvement les langages du W3C pour le Web
sémantique. Nous concluons en positionnant notre approche par rapport aux approches
présentées.
Chapitre II : Présentation de l’architecture de notre système.
Dans ce chapitre, nous présentons formellement l’ontologie à composante lexicale et le
modèle d’annotation. Ensuite, nous présentons brièvement l’architecture de notre système,
et ses différents modules. Enfin, nous illustrons à travers un scénario d’usage l’utilisation
successive des modules SHIRI-Extract, SHIRI-Annot et SHIRI-Querying.
Chapitre III : Extraction, alignement des entités nommées et des termes.
Ce chapitre présente notre approche d’extraction et d’alignement sémantique d’entités
nommées et de termes. Tout d’abord, nous présentons l’extraction des entités nommées
et des termes candidats, ainsi que l’alignement local et l’alignement utilisant le Web.
Nous détaillons l’algorithme Extract-Align, l’enrichissement lexicale de l’ontologie et les
pré-annotations qui en résultent. Le déroulement de Extract-Align est ensuite détaillé sur
un document de la collection traitée.
Chapitre IV : Annotation des documents et interrogation.
L’objectif de ce chapitre est de présenter SHIRI-Annot qui permet de générer les
annotations des nœuds de documents conformes au modèle d’annotation à partir des préannotations en utilisant un ensemble de règles déclaratives que nous avons définies. Nous
présentons un ensemble de fonctions de transformations du module SHIRI-Querying. Ces
xii
4. Plan du manuscrit
fonctions sont définies pour construire les reformulations permettant d’atteindre tous les
nœuds réponses triés selon le niveau d’agrégation des termes ou entités nommées repérés
dans ces nœuds.
Chapitre V : Expérimention et évaluation des résultats.
Ce chapitre présente notre système d’extraction, d’alignement et d’annotation qui implémente l’algorithme Extract-Align et intègre d’autres outils existants. Nous présentons
l’évaluation des résultats obtenus des expérimentations menées sur une collection de documents portant sur les appels à participation à des conférences du domaine informatique.
1
Introduction générale
2
Chapitre 1
ÉTAT DE L’ART
Sommaire
1.1
Extraction et annotation sémantique dans les documents semistructurés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.1.1 Approches exploitant la structure des documents . . . . . . . .
6
1.1.2 Approches exploitant des patterns syntaxiques ou lexico-syntaxique
dans le texte . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.1.3 Approches exploitant des ressources lexicales et/ou le web . . .
10
1.2 Langages de représentation et d’interrogation de ressources
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1 Pile du Web sémantique . . . . . . . . . . . . . . . . . . . . . .
16
1.2.2 Ressource Description Framework / Schema (RDF/RDFS) . . .
17
1.2.3 Ontology Web Langage (OWL) . . . . . . . . . . . . . . . . . .
20
1.2.4 Simple Knowledge Organisation Systems (SKOS) . . . . . . . .
20
1.2.5 Langage d’interrogation SPARQL . . . . . . . . . . . . . . . . .
21
Introduction
L’un des objectifs du web sémantique est de construire et d’utiliser des métadonnées
permettant d’annoter sémantiquement les ressources afin d’améliorer la recherche d’information. Atteindre cet objectif dépend de la prolifération des ontologies, des possibilités
d’automatiser le processus d’annotation et du passage à l’échelle. Par ailleurs, les ressources Web sont très hétérogènes aussi bien du point de vue de leur structuration que
du point de vue du vocabulaire utilisé.
Le problème d’annotation sémantique de ressources Web intéresse des chercheurs de
différentes communautés. Les approches proposées concernent des domaines complémentaires tels que le datamining, l’intelligence artificielle, l’ingénierie des connaissances et le
traitement de la langue naturelle. La plupart des approches d’annotation, qui existent
dans la littérature, se concentrent sur un domaine d’application, sur une classe de sites
3
Chapitre 1. ÉTAT DE L’ART
Web ou encore sur des entités précises comme l’annotation des noms de personnes, des
adresses e-mail, des pays, etc.
L’objectif de ce chapitre est de présenter les problèmes liés à l’annotation dans les
documents semi-structurés et de survoler les principales orientations et techniques utilisées
pour traiter ces problèmes. Dans la section 1, nous présentons un ensemble d’approches
que nous avons choisies. Dans la section 2, nous présentons brièvement les langages du
W3C pour le Web sémantique. Dans la section 3, nous concluons et nous positionnons
notre approche par rapport aux différentes orientations.
1.1
Extraction et annotation sémantique dans les documents semi-structurés
L’annotation sémantique consiste à assigner à une entité (une chaîne de caractères, une
phrase, un paragraphe, une partie de document ou un document) une métadonnée dont la
sémantique est souvent définie dans un modèle. Cette métadonnée peut être stockée dans
le document lui-même, ou dans un autre document référençant l’entité annotée par son
URI 2 . L’annotation externe est plus intéressante car elle permet de référencer une seule
fois une métadonnée ayant des entités présentes dans plusieurs documents. Dans ce cas,
une annotation est un ensemble d’instances (de métadonnées) rattachées à des ressources
Web. L’annotation de documents est un processus similaire au processus d’extraction
d’information. La différence est que l’extraction ne conserve pas le contexte d’apparition
(le document) de l’entité.
De nombreuses approches d’extraction et d’annotation de documents semi-structurés
existent dans la littérature. Certaines ont pour objectif d’annoter des documents, d’autres
de construire une base de connaissances (une ontologie peuplée d’instances) ou les deux à
la fois. Cette extraction peut concerner les concepts, les relations ou encore les instances
de concepts. Ces approches se distinguent non seulement par leurs objectifs mais aussi
par les hypothèses qu’elles exploitent, et qui souvent ne sont adaptées qu’à des corpus
spécifiques. Ces hypothèses peuvent concerner l’utilisation de :
• une ontologie plus ou moins peuplée (une base de connaissances) ;
• structures régulières de documents, ou des structures spécifiques comme les tableaux
et les listes ;
• patterns lexico-syntaxiques dans le texte permettant de délimiter et d’extraire les
entités d’information ;
• ressources externes lexicales ou le Web ;
• une base d’exemples pré-annotés (étiquetés ou labellisés) permettant de superviser
l’apprentissage de règles d’extraction et d’annotation ;
2. URI : Uniform Resource Identifier
4
1.1. Extraction et annotation sémantique dans les documents semi-structurés
• l’intervention de l’utilisateur pour le choix des données en entrée et/ou pour valider
des résultats.
Extraction de termes
Les extracteurs de termes sont des outils qui dépouillent automatiquement un corpus de textes pour extraire des termes. Un terme peut être défini comme la réalisation
linguistique d’un concept. Ces extracteurs sont généralement utilisés pour construire une
terminologie permettant d’indexer ou d’annoter des documents. Les approches d’extraction de termes appartiennent à trois catégories : les approches linguistiques, les approches
statistiques et les approches mixtes. Les approches statistiques sont basées sur la redondance des mots et sur leurs probabilités de co-occurences dans les documents. Elles
utilisent des mesures comme le cosinus ou encore l’information mutuelle [DES05]. Ces
méthodes ont une bonne couverture et sont indépendantes des langues mais nécessitent
un corpus d’une taille minimale et une bonne distribution des termes.
Les approches linguistiques se basent sur la catégorie morpho-syntaxique des mots
d’un terme. Un terme doit correspondre à une séquence syntaxiquement valide [Bou]. Elles
exploitent des patterns syntaxiques de formation de termes de type syntagmes nominaux
ou verbaux [Bou92, AH06, Jac94]. Elles sont donc plus précises mais dépendantes de la
langue.
Ces patterns peuvent être lexico-syntaxiques, dépendant ou indépendants du domaine.
Les patterns de Hearst [Hea92] sont un exemple de patterns lexico-syntaxiques qui sont
indépendants du domaine qui permettent de délimiter dans le texte des termes (syntagmes
nominaux) et leur relation d’hyponymie. Par exemple, works by such authors as Herrick,
Goldsmith, and Shakespeare, ... temples, treasuries, and other important civic buildings,
All common-law countries, including Canada and England ... sont des portions de textes
répondant aux patterns de Hearst présentés dans la section 3.1.4.
Extraction d’entités nommées
L’expression entité nommée (EN) est apparue lors de la conférence MUC−6 (Message
Understanding Conférence) [GS96]. Les catégories d’EN définies sont les personnes, les
lieux et les organisations. Cette définition a été élargie aux expressions telles que les noms
d’espèces (ex : cèdre du Liban), de maladies, ou de substances chimiques, aux expressions
collectives (ex : les Parisiens, les Néendertaliens), aux expressions temporelles telles que
les dates et les heures, ou aux numériques (ex : 2000 euros).
Des travaux tels que [SC04] ont défini une hiérarchie d’entités nommées qui comporte
150 catégories telles que les aéroports, les musées ou les religions. Ainsi, certaines approches exploitent des taxonomies issues d’encyclopédies telles que Wikipédia [KT07].
D’autres travaux, dits de Reconnaissance d’Entité Nommée (REN), définissent des techniques qui combinent les ressources lexicales et l’analyse d’expressions régulières pour
détecter et délimiter les EN dans le texte et leur associer une catégorie [Eva03]. Ces
expressions régulières sont des patterns lexico-syntaxiques utilisant souvent la casse des
5
Chapitre 1. ÉTAT DE L’ART
caractères. Comme pour les termes, et en particulier pour les EN, la difficulté réside dans :
• la localisation des limites des expressions désignant l’entité nommée (exemple : l’EN
le pic du Canigou ou le Canigou) ;
• la surcomposition dans lesquels une EN peut en contenir une autre (exemple : L’EN
Université Gaston Berger contient l’EN Gaston Berger ) ;
• l’ambiguité (exemple : l’EN Roissy qui peut désigner l’aéroport ou la ville de Roissy)
ou la coréférence (exemple : l’EN Ford Compagny et l’EN Ford ).
Pour faire la jonction entre les termes, les entités nommées et les ontologies, il existe
des approches qui préconisent de les représenter en utilisant une composante lexicale
intégrée dans l’ontologie ([BAGC04, RTAG07], Terminae [BS99]). Ces termes et entités
nommées sont alors associés aux concepts et aux relations de cet ontologie. Dans OntoPop
[Ama07], l’utilisation de règles d’acquisition de connaissances permettent de passer des
résultats d’un extracteur tel que IDE (Insight Discoverer Extractor) de Temis à l’ontologie.
De nombreux systèmes ont été créés pour faciliter l’extraction et l’annotation semiautomatique qui impliquent l’utilisateur et qui l’assistent grâce à l’intégration de différentes techniques d’extraction. Nous citons, à titre d’exemple Annotea [KK01], S-CREAM
(Semi-automatic CREAtion of Metadata) [HSC02] et Terminae [BS99].
Dans ce qui suit, nous présentons un ensemble d’approches et de systèmes d’extraction et d’annotation de documents semi-structurés classés en fonction des éléments qu’ils
exploitent dans le tableau 1.1.
1.1.1
Approches exploitant la structure des documents
L’organisation structurelle des éléments dans les documents semi-structurés peut être
exploitée dans un processus d’extraction d’information. De nombreuses approches comme
[VGP01], [DVN05], [BFG01b], [AKM+ 03],[AGM03] et [HBDBH07] exploitent les éléments
de structure des documents tels que les tableaux, les listes, les imbrications de ces éléments
pour générer automatiquement ou semi-automatiquement des modèles ou des patterns
basés sur la structure. Ces patterns permettent d’identifier des concepts, des instances de
concepts et/ou des relations entre ces instances.
Lixto
Lixto [BFG01b] est un système qui permet d’encoder un ensemble de pages HTML en
XML de manière semi-automatique et supervisée. Tout d’abord, l’utilisateur sélectionne
un ensemble d’élements dans une page, en précisant leur ordre, le système génère un ensemble hiérarchique de patterns en analysant le contexte structurel des éléments et sa
similarité avec d’autres éléments. Par exemple, un pattern < item > et un sous-pattern
< price > expriment qu’une instance < price > apparaît dans une instance de type
6
1.1. Extraction et annotation sémantique dans les documents semi-structurés
< item >. Les noms des patterns représentent des balises XML. L’ensemble des instances
d’un pattern ont des niveaux de structuration différents, elles peuvent correspondre à une
chaîne de caractères ou un paragraphe ou à une liste, tout dépend de la structure du document en question. Le système encode dans un langage appelé Elog [BFG01a] l’ensemble
des patterns sous forme de règles déclaratives qu’il applique à d’autres documents HTML
pour générer des annotations XML .
Appliqué à des pages de e-commerce, Lixto donne de bons résultats. Par ailleurs, Lixto
suppose que l’utilisateur est un expert dans le domaine, et malgré le fait que les documents
soient de structures hétérogènes, une règle n’a de couverture minimale que si une certaine
régularité structurelle existe.
Ontominer
Ontominer [DVN05] est un système qui permet de construire automatiquement une
taxonomie de concepts à partir d’un ensemble de pages HTML et d’annoter ces documents
en XML. Il détecte et exploite la régularité structurelle des documents pour extraire les
concepts, leurs relations de taxonomie et les instances. Une page est représentée par son
arbre DOM (Document Object Model du W3C). L’algorithme d’extraction repose sur
trois principales hypothèses :
• l’existence d’une corrélation entre la représentation structurelle et arborescente d’un
document et les relations taxonomiques entre concepts définies dans l’ontologie ;
• l’ensemble des documents présente une structuration régulière ;
• l’ensemble des pages Web partage une taxonomie.
Pour identifier les concepts et leurs relations taxonomiques, Ontominer identifie les
chemins des arbres DOM qui sont similaires et exploite la répétition des labels ou des labels
similaires en utilisant la mesure de Jaccard [TSK05] (après lemmatisation). Un algorithme
spécifique appelé Data Table Detector est défini pour les structures tabulaires. Ontominer
procède ensuite à l’identification des instances de concepts en utilisant les chemins depuis
un nœud vers une feuille. Il détermine si les segments de nœuds identifiés sont similaires ou
pas en utilisant les mesures de Levenshtein [LSF07] et Jaccard. Ces segments considérés
comme des instances différentes correspondent soit à des valeurs soit à des nœuds semistructurés. Les collections traitées sur la description des hôtels et les articles de journaux
répondent bien à ces hypothèses.
Dans notre approche, nous n’utilisons ni la régularité structurelle ni la nature des
éléments de structure mais nous exploitons la proximité et l’imbrication des nœuds dans
lesquels des instances sont repérées pour générer une relation de voisinage entre nœuds.
7
Chapitre 1. ÉTAT DE L’ART
1.1.2
Approches exploitant des patterns syntaxiques ou lexicosyntaxique dans le texte
L’exploitation des patterns lexico-syntaxiques permet de segmenter un texte en entités
et délimiter les différentes entités. Le lexique utilisé dans le pattern peut provenir d’un
dictionnaire.
LP2
LP2 (Learning pattern) [Cir01] est un algorithme supervisé d’extraction d’instances de
concepts et d’annotation en XML de pages web faiblement structurées. L’entrée de l’algorithme est un ensemble de pages annotées manuellement, la sortie est un ensemble de
règles d’annotation. L’algorithme génère des règles adaptées aux textes traités et destinées
à la détection d’instances de concepts. Il utilise des informations morpho-syntaxiques des
mots (nom, verbe, etc., singulier ou pluriel), le typage de certains mots reconnus dans un
dictionnaire (noms de villes, de pays...) et la reconnaissance des entités nommées (noms
de personnes, d’organisations, dates...).
• LP2 effectue sa phase d’apprentissage inductif (induite à partir d’exemples) des
règles d’extraction de connaissances à l’aide d’un ensemble d’apprentissage décomposé en deux sous-ensembles : le premier est utilisé pour l’induction des règles qui
permettent l’insertion de balises XML (certaines règles permettent l’insertion d’une
balise ouvrante, d’autres d’une balise fermante), le deuxième est utilisé pour la sélection des règles les plus efficaces parmi les règles générées : l’induction de règles
de correction permettant de déplacer les balises afin de corriger les erreurs et imprécisions des règles d’annotation précédentes.
• Pour chaque balise ouvrante ou fermante de l’annotation manuelle (appelée exemple),
un pattern comprenant une fenêtre de n mots avant et après la balise est généré. Ce
pattern est ensuite généralisé : chacun des mots du pattern peut être généralisé en
le représentant par son lemme, sa classe syntaxique (nom, verbe, chiffre...), sa typographie (majuscule, minuscule...) ou sa sémantique (reconnu dans le dictionnaire
ou entité nommée), ou encore par un joker autorisant n’importe quel mot. Toute
combinaison de généralisation (ou mot conservé à l’identique) du pattern initial devient un pattern candidat pour devenir une règle d’annotation.
• Les patterns conservés sont uniquement ceux qui, appliqués à l’ensemble des documents annotés manuellement, permettent de couvrir un nombre minimal d’exemples,
et dont le taux d’erreur (i.e. le nombre de balises insérées au mauvais endroit rapporté au nombre total de balises insérées) est inférieur à un certain seuil. Le nombre
minimal d’exemples à couvrir et le seuil sont fixés par l’utilisateur.
• Ces patterns sont enregistrés dans la liste des règles d’annotation et sont appliqués
à l’ensemble du corpus. Tous les exemples couverts par ces patterns sont retirés de
la liste des exemples à traiter, puis le processus est répété avec l’exemple suivant,
8
1.1. Extraction et annotation sémantique dans les documents semi-structurés
jusqu’à ce qu’il n’y ait plus d’exemple à traiter. Ceci permet d’obtenir une liste de
meilleures règles, les règles d’annotation ayant une forte précision, mais une couverture assez faible.
Pour augmenter la couverture, des règles contextuelles sont ajoutées. Elles correspondent aux patterns n’ayant pas été retenus comme meilleures règles à cause d’un taux
d’erreur trop important, mais que l’on peut rendre plus précis en contraignant leur application dans une certaine fenêtre autour d’une balise insérée dans l’étape précédente par
les meilleures règles.
TextRunner
TextRunner [BCS+ 07] est un système plus récent qui extrait des triplets de relations
à partir du texte pour construire une base de connaissances. Cette extraction est automatique et indépendante du domaine, supervisée et la base d’exemples d’apprentissage est
construite automatiquement.
• En utilisant un petit ensemble de documents, ce module extrait un ensemble de triplets (ei , rij , ej ) à partir de chaque phrase où ei et ej sont des phrases nominales et
rij est le texte entre les deux. La relation est labellisée comme positive ou négative
selon que certaines contraintes comme la longueur de la chaîne, l’existence de clauses
relatives, le fait que ei ou ej soit un pronom. Pour chaque triplet sont conservées
les caractéristiques telles que le nombre de mots d’arrêt, le nombre de mots, si ei
ou ej est un pronom, les étiquettes morpho-syntaxiques des mots. L’ensemble des
exemples labellisés constitue une base pour le classifieur naïf de Bayes.
• L’extraction génère des triplets candidats à partir de chaque phrase. Chaque mot
du triplet est étiqueté mopho-syntaxiquement, les relations sont détectées en examinant le texte entre les phrases nominales et normalisées en éliminant par exemple les
phrases prépositionnelles qui sur-spécifient une entité ou les adverbes. Par exemple la
phrase ”scientists from many universities are studying...” est réduite à ”scientists are
studying...” et la phrase ”...definitely developped...” est réduite à ”...developped...”.
Pour chaque phrase nominale, à chaque mot est affectée la probabilité que le mot
fasse partie de l’entité, ce qui permet de sélectionner les triplets ayant une confiance
suffisante. Le triplet t(ei , rij , ej ) est ensuite traité par le classifieur qui labellise t
comme correct ou non. Le système utilise enfin le modèle de redondance basé sur
l’information mutuelle pour valider une relation entre deux entités.
• Textrunner permet d’interroger plusieurs millions de triplets. Le triplet est ce qui va
permettre de soumettre des requêtes ”intelligentes” en comparaison à celles permises
par les moteurs classiques. Par exemple, la requête constituée du triplet ”Who killed
Kennedy ?” peut être posée.
Les résultats des expériences présentés dans [BCS+ 07] montrent que la couverture et
la qualité des relations entre instances trouvées par TextRunner sont meilleures que celles
9
Chapitre 1. ÉTAT DE L’ART
utilisant des patterns lexico-syntaxiques présentées dans la section suivante 1.1.3.
Dans [SM07], les triplets résultant de Textrunner sont enrichis conceptuellement comme
suit :
• les arguments sont alignés en utilisant les synonymes de Wordnet ;
• les relations sont alignées avec des (meta) relations prédéfinies et qui sont indépendantes du domaine comme les relations partOf et de causalité.
Par exemple, le triplet (orange, is rich in, vitamin C) est aligné à (F ruit, contain,
V itamin).
Textrunner et LP2 sont toutes les deux des approches supervisées et génèrent des
règles contextuelles qui sont spécifiques aux documents. Ces approches supposent donc
que les documents présentent des formes grammaticales et lexicales qui se répètent. Notre
approche ne génère pas des règles d’extraction spécifiques aux documents car les instances
candidates sont extraites en utilisant des patterns syntaxiques indépendants du domaine.
1.1.3
Approches exploitant des ressources lexicales et/ou le web
KIM
Le système KIM [PKK+ 04] a pour objectif d’annoter automatiquement les entités
nommées dans les documents. Il se base sur les ressources suivantes :
• une ontologie généraliste appelée PROTON, qui définit des concepts, des relations,
des attributs et des axiomes ;
• une base de connaissances décrivant des instances dans le vocabulaire de l’ontologie
PROTON. Chaque entité y est éventuellement décrite par un ensemble de noms
alternatifs appelés alias (exemple : New York, N.Y )
• des ressources lexicales permettant de reconnaître une nouvelle EN, telles que des
listes de noms et de prénoms de personnes, des préfixes ou suffixes (exemple : company, SA), ou des devises.
L’objectif de l’approche est d’annoter sémantiquement des entités nommées trouvées
dans un document qui existent déjà dans la base de connaissances ou sont nouvelles. KIM
extrait les EN en utilisant les outils de la plate-forme GATE [CGW95] et annote chacune
des EN extraite du texte par le concept le plus spécifique de l’ontologie auquel l’instance
décrite appartient (exemple : le concept Sea pour l’EN Arabian Sea) ainsi que par un lien
vers l’instance de la base de connaissances, si cette instance existe déjà. Les annotations
résultats sont représentées en RDF. La base de connaissances contient environ 200 000
instances et comprend des lieux tels que les continents, les pays, les villes de plus de 100
000 habitants, ou les rivières ainsi que leurs coordonnées géographiques, les entreprises et
organisations les plus connues (exemples : Apple, NATO, OPEC). Les auteurs indiquent
10
1.1. Extraction et annotation sémantique dans les documents semi-structurés
que ce type de base de connaissances peut toujours être peuplée avec des connaissances
provenant de sources de références et que l’on ne peut extraire d’EN sur la base de
l’ontologie seule.
Si l’EN extraite est nouvelle, celle-ci est conservée dans la base de connaissances et
peut être utilisée pour de futures annotations sémantiques.
Armadillo
Armadillo [CCDW04] est un système d’annotation non supervisé qui peut aussi bien
annoter des documents en utilisant une ontologie de domaine que créer une base de
connaissances à partir de différentes entrepôts d’informations. Armadillo utilise des concepts
”ancres”, qui servent d’accroche pour trouver les instances du concept recherché, et des
concepts ”annexes”, qui permettent de valider la classification des instances repérées.
Prenons l’exemple où des instances du concept Professor sont recherchées. Le concept
Person, un super-concept de Professor, peut être un concept ”ancre” qui possède des
instances qui sont facilement repérables dans le texte. En revanche, le concept Person
est ambigu. Il peut être désambiguïsé en utilisant les relations de ses instances avec des
instances de concepts ”annexes”, comme University ou Article, sur lesquelles il y a peu
d’ambiguïté.
L’idée maîtresse dans Armadillo est d’utiliser tout d’abord des informations certaines
obtenues sur des instances, par exemple ici, des listes d’universités. Ces instances sont
alors recherchées dans les documents, les instances candidates du concept ”ancre” (ici, des
noms de personne) sont extraites (par des techniques de détection d’entités nommées).
Ensuite, les relations entre les instances candidates du concept ”ancre” et les instances
des concepts ”annexes” sont vérifiées, en utilisant :
• la redondance de l’information sur le web. Plus il y a de documents présentant une
co-occurrence des instances des concepts ”ancre” et ”annexes”, plus la relation entre
eux est probable ;
• certaines techniques, dépendantes du domaine, permettent de vérifier la nature d’une
relation entre une instance du concept ”annexe” et une instance du concept ”ancre”.
Par exemple, l’utilisation de DBLP 3 permet de trouver des instances d’Article et
de Person reliées par la relation auteur. D’autres concepts ”annexes” permettent
d’apporter des indices supplémentaires sur la classification d’une instance du superconcept du concept recherché comme étant une instance du concept recherché. Par
exemple, la recherche de titres académiques Phd, comme concept ”annexe”, apporte
un indice supplémentaire sur la classification d’une personne en tant que professeur.
Si les différents indices recueillis sont suffisamment nombreux et/ou sûrs pour reconnaître une instance du concept recherché, cette instance est alors annotée.
Armadillo utilise différentes techniques d’extraction basées sur la structure et/ou des
patterns syntaxiques (Amilcare [CDWP03]) et intègre d’autres sources comme les résul3. Digital Bibliography Library Project
11
Chapitre 1. ÉTAT DE L’ART
tats de recherche mot-clé sur le web et/ou sites spécialisés. Armadillo suppose que l’on
dispose de techniques permettant de reconnaître des relations entre instances. Il suppose
également que les instances à extraire sont redondantes sur le web et qu’elles sont référencées par plusieurs sources.
Comme dans Armadillo, le point de départ de notre approche est une ontologie lexicale
comportant des informations sûres. L’utilisation de la redondance n’est envisageable que
pour certains concepts.
KnowItAll
KnowItAll [ECD+ 05] est un un système automatique et non supervisé d’extraction
d’informations à partir du Web. Il permet d’extraire des instances de concepts donnés en
entrée en utilisant des patterns lexico-syntaxiques indépendants du domaine introduits
par Hearst et décrits en section 3.1.4. Ainsi, en utilisant les patterns et le concept, plusieurs requêtes sont générées et soumises à un moteur comme Google et Yahoo. Cette
extraction utilise des expressions régulières basées sur les étiquettes morpho-syntaxiques
pour identifier des groupes nominaux, sur la syntaxe (casse des caractères) et lexicale et
est focalisée sur les entités nommées. KnowItAll peut également appliquer ces patterns
sur une base d’exemples, afin de déterminer la confiance que l’on peut avoir en chacun
de ces patterns, et ne retenir une instance que si elle est extraite par plusieurs patterns
linguistiques dont la combinaison permet d’avoir une confiance suffisante.
Une fois ces instances extraites, la couverture de KnowItAll est améliorée en utilisant
diverses techniques : apprentissage de patterns d’extraction spécifiques au domaine, extraction de sous-concepts et extraction de listes :
• L’apprentissage de patterns d’extraction spécifiques au domaine se fait en repérant
dans les documents les différentes occurrences des instances extraites dans une fenêtre appelée le contexte d’apparition de l’instance. KnowItAll utilise l’information
mutuelle PMI (Pointwise mutual information) entre mots des différents contextes
pour trouver des discriminants pour un concept. Par exemple stared in peut être un
pattern spécifique pour le concept Film qui permet de rechercher d’autres instances
film.
Les meilleurs patterns construits de ces contextes d’apparition sont utilisés comme
patterns d’extraction de nouvelles instances.
• L’extraction de sous-concepts est aussi réalisée en utilisant les patterns lexicosyntaxiques de Hearst. Par exemple, l’application du pattern such as sur l’expression
scientists, such as mathematicians, physicists and chemists permet d’identifier Mathematician, Physicist et Chemist comme des sous-concepts du concept Scientist.
Il devient alors possible de trouver que Leibniz et Lambert sont des instances de
Scientist grâce à la reconnaissance du sous-concept Mathematician dans la phrase
... formal logic in a symbolic or algebraic way were made by some of the more philosophical mathematicians, such as Leibniz and Lambert.
12
1.1. Extraction et annotation sémantique dans les documents semi-structurés
La distinction entre sous-concept et instance n’est pas claire et les domaines d’application choisis (Scientist, City et Film) simplifient le problème, les instances sont des
noms propres (techniques NER) et les sous-concepts sont des noms communs. Cette
extraction peut être améliorée en utilisant des ressources lexicales comme Wordnet
pour valider la relation d’hyponymie.
• L’extraction de listes : une fois que les différentes instances d’une classe ont été
identifiées, il est possible de rechercher des documents dans lesquels plusieurs de ces
instances apparaissent. Si ces différentes instances apparaissent sous forme de listes
ou de tableaux, il est alors possible, par induction de découvrir d’autres instances
du même concept.
De la même manière qu’Armadillo, KnowItAll utilise la redondance de l’information
sur le Web. La principale différence est que Knowitall n’utilise pas des concepts ”ancres”
pour extraire les instances mais les patterns de Hearst.
CPankow
CPankow (Context-driven and Pattern-based Annotation through Knowledge on the
Web) [CLS05] est une autre approche automatique et non supervisée permettant d’annoter
des instances de concepts dans des documents. CPANKOW utilise la redondance sur le
Web des instances candidates, extraites des documents, pour découvrir les concepts à
associer à ces instances.
Ainsi, si l’on ne sait pas comment annoter le mot Niger extrait dans un document,
comme dans KnowItAll, un ensemble de requêtes est généré en utilisant les patterns de
Hearst et l’instance candidate (et non le concept comme dans KnowItAll). Ces requêtes
sont ensuite posées à un moteur de recherche tel que Google. Par exemple pour quatre
patterns, les expressions extraites des premiers documents réponses sont : ”Niger is a
country”, ”Niger is a state”, ”Niger is a river” and ”Niger is a region”.
Même si l’expression indiquant que ”Niger” est un pays est plus fréquente sur le Web,
cet emploi n’est peut être pas adapté au contexte du document traité. Aussi, l’approche
utilise le contexte du document pour choisir les meilleurs concepts.
Plus précisément, la méthode comporte plusieurs étapes :
• L’extraction des instances candidates à partir des documents qui utilise des patterns
indépendants du domaine issus des techniques de détection d’entités nommées.
• La construction d’un ensemble de requêtes qui utilise des patterns de Hearst et une
instance candidate.
• L’extraction des concepts candidats à partir des réponses fournies par le moteur de
recherche qui donne une liste de concepts candidats, en tenant compte de la distribution de l’instance candidate sur le web.
• L’annotation sémantique qui consiste à sélectionner les meilleurs concepts en tenant
13
Chapitre 1. ÉTAT DE L’ART
compte du contexte d’appartion de l’instance candidate (utilisation du TFIDF entre
le document et les documents réponses).
Dans notre approche, comme dans CPankow, les instances candidates sont extraites à
l’aide de patterns indépendants du domaine. En revanche, nous distinguons les patterns
pour les termes candidats et les patterns pour les entités nommées candidates.
Par ailleurs, pour associer une instance candidate à un concept, soit nous utilisons
directement l’ontologie lexicale soit nous utilisons le même principe que CPankow pour
extraire les concepts candidats. A la différence avec CPankow, dans notre approche les
concepts retenus correspondent non seulement au contexte mais doivent aussi être rattachés aux concepts de l’ontologie.
14
Ontominer
LP2 TextRunner
x
semi
x
x
x
forte régularité
-
Armadillo KnowItAll C-PANKOW
semi
x
x
possible
-
KIM
x
-
-
-
x
x
x
x
x
x
-
-
-
-
x
-
-
-
-
-
x
-
-
x
x
x
possible
x
-
x
possible
x
-
x
-
-
x
-
x
-
-
Table 1.1 – Approches d’extraction et d’annotation
15
1.1. Extraction et annotation sémantique dans les documents semi-structurés
Automaticité
Supervision
Patterns
structurels
Patterns
lexicosyntaxiques
Patterns dépendants du
domaine
Ontologie
Autres
ressources
lexicales ou
KB
Web
Intervention
de l’utilisateur
Lixto
semi
x
x
Chapitre 1. ÉTAT DE L’ART
1.2
Langages de représentation et d’interrogation de
ressources Web
Dans cette section nous présentons brièvement les langages de représentation de ressources RDF, RDFS, OWL et SKOS recommandés par le W3C et le langage d’interrogation SPARQL pour le Web Sémantique.
1.2.1
Pile du Web sémantique
D’après la vision de Tim Berners-Lee du Web sémantique, l’information pourra être
accessible et compréhensible non seulement par les humains mais aussi par les machines.
Dans cette vision, le Web sémantique peut être considéré comme une pile de langages
représentée dans la figure 1.1. Cette pile distingue principalement des langages dédiés à
la structuration des ressources Web (XML, XML Schema) et la représentation de la sémantique qui peut être associée à ces ressources décrites par des ontologies et des règles
logiques. La pile est structurée sur trois niveaux principaux [BL98] :
• Niveau d’adressage et de nommage. Ce niveau est représenté par le standard
d’adressage des ressources du Web URI (Universal Resource Identifier) et la norme
Unicode pour le codage des caractères.
• Niveau syntaxique. Ce niveau syntaxique est représenté par la définition des espaces de noms qui permettent d’identifier les ressources du Web, le langage XML,
XML schéma et le langage de requêtes XML Query.
• Niveau Sémantique. Ce niveau est représenté d’une part par les langages de représentation d’ontologies RDF/RDFS et OWL, et d’autre part par les langages de
règles, de logique, de preuves et de confiance (trust).
Les langages du Web doivent permettre de :
• décrire les données, les schémas et leur sémantique (RDF/S et OWL) ;
• échanger des métadonnées et des schémas (eXtensible Markup Language / Schema
ou XML/S) ;
• interroger les documents par les annotations (SPARQL).
16
1.2. Langages de représentation et d’interrogation de ressources Web
Figure 1.1 – Piles du Web Sémantique (Tim Berners-Lee [BL98])
1.2.2
Ressource Description Framework / Schema (RDF/RDFS)
Le langage RDF est un pilier pour les langages du Web Sémantique [W3Cb]. RDF
permet d’annoter des ressources 4 du Web avec des métadonnées qui peuvent être définies
en utilisant les schémas RDFS. Le modèle de données RDF est constitué d’un triplet
composé trois éléments :
• Sujet : il représente la ressource à décrire. Il est nécessairement identifié par une URI.
• Prédicat ou Propriété : il s’agit d’une propriété utilisée pour caractériser et décrire
le sujet. Un prédicat est nécessairement identifié par une URI.
• Objet : représente une donnée de type primitif (numérique, littéral, etc.) ou une
autre ressource identifiée par une URI.
Un ensemble de déclarations RDF peut être représenté en utilisant une notation NTRIPLE (Sujet, Prédicat, Objet), ou la syntaxe RDF/XML ou encore les graphes RDF.
La notation XML/RDF ci-dessous décrit une ressource (http ://www.example.org/staf
fid/85740 ) par la propriété http ://www.example.org/terms/address et cette dernière est
décrite par les propriétés http ://www.example.org/terms/city, http ://www.example.org/terms/street, http ://www.example.org/terms/state et http ://www.example.org/terms/postalCode.
4. [W ikiP edia] Toute chose ou entité susceptible d’être identifiée, nommée, manipulée à travers ses
représentations, par quelque moyen que ce soit, sur le Web en général ou dans n’importe quel système
d’information utilisant les technologies du Web.
17
Chapitre 1. ÉTAT DE L’ART
<?xml v e r s i o n ="1.0" enco ding ="ISO−8859−1"?>
<r d f :RDF
xmlns : c l s ="ht t p : / /www. example . o r g/#"
xmlns : prp="ht t p : / /www. example . o r g / terms/#">
<r d f : D e s c r i p t i o n r d f : about=" c l s : s t a f f i d /85740" >
<prp : a d d r e s s r d f : r e s o u r c e =" c l s : a d d r e s s i d /85740"/ >
</ r d f : D e s c r i p t i o n >
<r d f : D e s c r i p t i o n r d f : about=" c l s : a d d r e s s i d /85740" >
<prp : c i t y >Bedford </prp : c i t y >
<prp : s t r e e t >1501 Grant Avenue</prp : s t r e e t >
<prp : s t a t e >Ma ssa cha uset t s </prp : s t a t e >
<prp : postalCode >01730</ prp : postalCode >
</ r d f : D e s c r i p t i o n >
</ r d f :RDF>
La figure 1.2 décrit le même exemple en utilisant les graphes RDF.
!""#$%%&&&'()*+#,('-./%0"*1123%45678
!""#$%%&&&'()*+#,('-./%"(.+0%*33.(00
!""#$%%&&&'()*+#,('-./%*33.(0023%45678
!""#$%%&&&'()*+#,('-./%"(.+0%:2";
!""#$%%&&&'()*+#,('-./%"(.+0%#-0"*,9-3(
!"#$%&#
./01.
!""#$%%&&&'()*+#,('-./%"(.+0%0".(("
/2./34&(5-367"5,"
!""#$%%&&&'()*+#,('-./%"(.+0%0"*"(
'())(*+(,)"--)
Figure 1.2 – Exemple de graphe RDF, W3C [W3Cb]
RDF Schema [W3Cc] permet de définir en RDF un schéma pour les métadonnées annotant les ressources. Plus précisément RDFS permet de définir :
18
1.2. Langages de représentation et d’interrogation de ressources Web
• un ensemble de concepts ou classes (rdfs :Class) et leur hiérarchie (rdfs :subClassOf ) ;
• le domaine (rdfs :domain) et le co-domaine (rdfs :range) d’une propriété ;
• une hiérarchie de propriétés (rdfs :subPropertyOf ) ;
Il permet aussi d’utiliser des propriétés prédéfinies comme rdfs :label, rdfs :seeAlso,
rdfs :comment, etc.
Prenons l’exemple de la figure 1.3 où nous avons une propriété address qui représente
une adresse, on peut déclarer que cette propriété s’applique à une ressource de type Staff
et qu’une valeur de cette propriété référence une ressource de type Adresse. De la même
manière les propriétés street et postalCode sont définies et s’appliquent à des ressources
de type Adresse et leurs valeurs sont de type Literal.
!"#$%!(*3,
(""!,$$
!"#$%"&'()*
+"!,$$,
!"#$%"&'()*
$.!,,.
0&$.(/1&",
!"#$%!(*3,
2.(##
-).,!(/
Figure 1.3 – Exemple de schéma RDF
La sémantique en logique du premier ordre des déclarations RDFS de subsomption
entre classes, de subsomption entre propriétés et de signature des propriétés est présentée
dans le tableau 1.2.2.
Constructeurs
Subsomption entre Classes
Subsomption entre Propriétés
Typage du domaine d’une propriété
Typage du co-domaine d’une propriété
N-TRIPLE
C1 rdfs :subClassOf C2
P1 rdfs :subPropertyOf P2
P rdfs :domain C
P rdfs :range C
Sémantique LP
∀X(C1 (X) ⇒ C2 (X))
∀X ∀Y (P1 (X, Y ) ⇒ P2 (X, Y ))
∀X ∀Y (P (X, Y ) ⇒ C(X))
∀X ∀Y (P (X, Y ) ⇒ C(Y ))
Table 1.2 – Sémantique des constructeurs RDFS en logique du premier ordre
19
Chapitre 1. ÉTAT DE L’ART
1.2.3
Ontology Web Langage (OWL)
Le niveau d’expressivité du langage RDFS est insuffisant pour représenter des ontologies riches et complexes. OWL étend le langage RDFS pour exprimer des contraintes sur
des classes et des propriétés. Par exemple on peut exprimer :
• des contraintes de cardinalité sur les valeurs ou le type d’une propriété : owl :minCardinality, owl :maxCardinality ;
• des propriétés fonctionnelles ou inverses fonctionnelles : owl :FunctionalProperty et
InverseFunctionalProperty, symétriques owl :SymmetricProperty, transitives TransitiveProperty ;
• des contraintes de cohérence entre classes : équivalence owl :equivalentClass, disjonction owl :disjointWith ;
• des contraintes de mise en correspondance entre instances owl :sameAs et owl :differentFrom ;
• de nouveaux constructeurs à partir de classes existantes par intersection owl :intersectionOf, union owl :unionOf ou complément owl :complementOf.
Selon son niveau d’expressivité, OWL est décomposé en trois familles de langages :
• Le langage OWL Lite permet de définir une hiérarchie de classes et des contraintes
simples. Par exemple, bien que le langage gère les contraintes de cardinalité, il n’admet que les valeurs de cardinalité 0 ou 1. Les constructeurs tels que owl :unionOf,
owl :intersectionOf ne font pas partie de OWL Lite.
• Le langage OWL DL, dont le nom est hérité des logiques de description, est l’un des
nombreux sous-ensembles décidables de OWL. Il Le niveau d’expressivité de OWL
DL garantit la complétude et la décidabilité des algorithmes de raisonnement. OWL
DL étend OWL Lite, il permet par exemple l’utilisation des contraintes de cardinalité autre que 0 et 1 et de constructeurs comme owl :disjointWith. Par ailleurs OWL
DL nécéssite une séparation entre classes et instances, entre owl :DataTypeProperty
et owl :ObjectProperty. De même, des contraintes ne peuvent pas être définies sur
des propriétés transitives ou leurs inverses.
• Le langage OWL Full est destiné aux utilisateurs voulant une expressivité maximale.
Le raisonnement dans ce cas est incomplet ou non décidable.
1.2.4
Simple Knowledge Organisation Systems (SKOS)
SKOS est un modèle de données permettant la représentation standard et la publication de vocabulaires structurés tels les thésaurus et les taxonomies. SKOS est construit sur
20
1.2. Langages de représentation et d’interrogation de ressources Web
la base du langage RDF. Il s’agit d’une recommandation du W3C depuis août 2009. Il peut
être utilisé seul ou combiné avec des langages tels que OWL(Ontology Web language).
SKOS définit une classe Concept de type OWL :Class à laquelle peuvent se rattacher
de nombreuses propriétés. Un concept SKOS peut être décrit par :
• des littéraux appelés labels en distinguant le label préféré (skos :prefLabel) par
langue des autres labels dits alternatifs (skos :altLabel) ;
Exemple
ex : r o c k s r d f : type s k o s : Concept ;
s k o s : p r e f L a b e l " r o c k s "@en ;
s k o s : a l t L a b e l " b a s a l t "@en ;
s k o s : a l t L a b e l " g r a n i t e "@en ;
s k o s : a l t L a b e l " s l a t e "@en .
• des identifiants spécifiques aux applications (skos :notation) ;
Exemple
<Potassium> s k o s : n o t a t i o n "K"^^<ChemicalSymbolNotation > .
• des propriétés de documentation comme des notes et des définitions (skos :note,
skos :definition, ...) ;
Exemple
<Pr o t e i n > r d f : type owl : C l a s s ;
s k o s : d e f i n i t i o n "A p h y s i c a l e n t i t y c o n s i s t i n g o f a sequ−
ence o f amino−a c i d s ; a p r o t e i n monomer ; a s i n g l e po lypept−
i d e c h a i n . An example i s t he EGFR p r o t e i n . " @en .
• des relations avec d’autres concepts exprimant par exemple la généricité (skos :b
roader ou skos :broaderTransitive) ou la spécificité (skos :narrower ou skos :narrowerTransitive) d’un concept par rapport à un autre concept comme pour les termes
d’un thésaurus.
Exemple
ex : mammals s k o s : b r o a d e r ex : a ni ma l s .
ex : a n i m al s s k o s : n ar r ower ex : mammals .
ex : r e n a i s s a n c e s k o s : r e l a t e d ex : humanism .
Cette liste n’est pas exhaustive, mais elle présente les principaux éléments de SKOS
et en particulier les propriétés pref Label et altLabel que notre ontologie utilise.
1.2.5
Langage d’interrogation SPARQL
SPARQL est un langage de requête recommandé par le W3C depuis le 15 Janvier 2008.
SPARQL est capable d’interroger des informations représentées par des graphe RDF.
Une requête SPARQL, dans sa forme élémentaire, est constituée d’un ensemble de
patrons de triplets appelé un patron de graphe élémentaire (basic graph pattern). Les
patrons de triplets sont comme les triplets RDF sauf qu’un sujet, un prédicat et un objet
peuvent être des variables.
21
Chapitre 1. ÉTAT DE L’ART
L’exemple ci-dessous montre une requête SPARQL permettant de rechercher le titre
d’un livre dans le graphe de données RDF fourni. La requête comprend deux clauses :
la clause SELECT identifie les variables qui doivent apparaître dans les résultats, et la
clause WHERE définit le patron de graphe élémentaire à mettre en correspondance avec
le graphe RDF de données. Le patron de graphe élémentaire dans cet exemple se compose
d’un seul patron de triplet avec une seule variable ( ?title) en position d’objet.
• Données :
@ p r e f i x dc :
@prefix :
@ p r e f i x ns :
: book1
: book1
: book2
: book2
dc :
ns :
dc :
ns :
<ht t p : / / p u r l . o r g / dc / e l e m e n t s /1.1/ > .
<ht t p : / / example . o r g / book/> .
<ht t p : / / example . o r g / ns#> .
title
price
title
price
"SPARQL T u t o r i a l " .
42 .
"The Semantic Web" .
23 .
• Requête :
SELECT ? t i t l e
WHERE
{
<ht t p : / / example . o r g / book / book1>
<ht t p : / / p u r l . o r g / dc / e l e m e n t s / 1 . 1 / t i t l e > ? t i t l e .
}
• Résultats :
"SPARQL T u t o r i a l "
Les clauses FILTER du SPARQL permettent de restreindre les résultats à celles que
l’expression de filtre évalue à vrai. La fonction de filtre comme regex peut tester des littéraux RDF. L’exemple ci-dessous montre une requête SPARQL permettant de rechercher
le titre d’un livre commençant par la chaîne de caractères ”SPARQL” dans le graphe de
données RDF ci-dessus.
• Requête :
PREFIX
SELECT
WHERE
dc : <ht t p : / / p u r l . o r g / dc / e l e m e n t s /1.1/ >
? title
{ ?x dc : t i t l e ? t i t l e
FILTER r e g e x ( ? t i t l e , "^SPARQL" )
}
• Résultats de la requête :
"SPARQL T u t o r i a l "
Une requête SPARQL peut être complexe et comporter des clauses comme la clause
OPTIONAL qui définit un patron de graphe optionnel par rapport au patron de graphe
élémentaire. Plusieurs patrons peuvent être optionnels dans une requête.
22
1.2. Langages de représentation et d’interrogation de ressources Web
Le moteur de recherche sémantique CORESE [CDKFZ04, CDKFZG05] a ajouté des
extensions tels que le constructeur de patterns UNION et des clauses telles que GROUP
BY et ORDER BY. Ces extensions seront dans SPARQL 1.1 Query Language 5 .
Il existe des outils permettant d’interroger une base d’annotations RDF utilisant
SPARQL. CORESE utilise les graphes conceptuels et propose différentes approximations
utilisant soit la distance ontologique basée sur la relation de subsomption, soit la proximité
contextuelle, soit sur la longueur du chemin séparant les éléments recherchés. CORESE
propose un langage de règles permettant d’inférer de nouveaux faits.
Jena [McB01] est une autre API Java pour la construction d’applications pour le Web
Sémantique. Il fournit un environnement de programmation pour RDF, RDFS, OWL et
SPARQL. L’API de Jena inclut aussi un moteur d’inférence basé sur des règles.
Conclusion de l’état de l’art
Dans notre travail de thèse, notre objectif est d’annoter sémantiquement une collection
de documents relatifs au même domaine et délimités par des balises (HTML, XML). Ces
documents sont structurellement hétérogènes comportant des parties bien structurées et
d’autres textuelles. Notre approche se veut automatique pour le passage à l’échelle et non
supervisée en raison du nombre et de l’hétérogénéïté des documents.
Les instances de concepts étant noyées dans le texte de documents plus ou moins structurés sont difficiles à repérer et à délimiter précisément dans une approche complètement
automatique. Ces instances ne sont pas représentées avec une structure régulière dans
les documents et ne sont pas non plus décrites avec des expressions linguistiques qui se
répètent. L’utilisation de méthodes d’extraction automatique de patterns spécifiques au
domaine ou au corpus traité, qu’ils soient structurels ou lexico-syntaxiques, ne permettra
pas de couvrir correctement les instances de concepts ou leurs relations.
Nous nous plaçons dans le contexte où nous disposons d’une ontologie de domaine
définie par un ensemble de concepts, un ensemble de relations entre ces concepts et leurs
propriétés. Cette ontologie comporte une composante lexicale, chaque concept est accompagné de plusieurs labels et d’un premier ensemble de termes ou entités nommées du
domaine.
L’idée, dans notre travail, est de repérer des termes ou entités nommées de concepts
dans les nœuds de l’arbre DOM (Document Object Model) représentant la structure d’un
document (HTML ou XML). Pour avoir une bonne couverture, nous extrayons les termes
ou les entités nommées candidats de manière indépendante du domaine et des documents.
Ces termes ou entités nommées candidats sont ensuite rapprochés des termes ou des labels
de l’ontologie lexicale afin de déterminer les concepts appropriés.
Dans ce contexte, nous avons plusieurs problèmes à résoudre liés à l’extraction des
termes et des entités nommées candidats, au rapprochement avec l’ontologie lexicale, au
fait que la composante lexicale ne soit pas suffisamment riche et aussi à la granularité de
l’annotation.
Pour traiter l’extraction des termes candidats, nous utilisons des patterns syntaxiques
5. W3C Working Draft 14 October 2010, http ://www.w3.org/TR/sparql11-query/
23
Chapitre 1. ÉTAT DE L’ART
représentant des syntagmes nominaux et pour les entités nommées nous utilisons des
patterns lexico-syntaxiques indépendants du domaine.
Le rapprochement aux concepts de l’ontologie d’un terme ou d’une entité nommée
candidat exploite les mesures de similarité souvent utilisées pour l’alignement d’ontologie.
Ces mesures exploitent la similarité des chaînes de caractères, la catégorie grammaticale
des mots et les relations taxonomiques des concepts. Par exemple, si ”European Conference” est un terme candidat, et si ”Conference” est un des labels ou termes du concept
Evenement, et bien le terme ”European Conference” peut être associé au concept Evenement.
Pour l’annotation, notre approche étant automatique, nous ne cherchons pas à délimiter parfaitement les instances de concepts. Ce sont les nœuds de documents, où des termes
et des d’entités nommées associées aux concepts sont localisées, qui sont les instances de
concepts. Cette annotation prend en compte la sémantique des termes ou des d’entités
nommées et le voisinage structurel des nœuds les contenant.
En effet, Nous exploitons la structure non seulement pour délimiter les instances mais
aussi pour détecter les éventuelles relations du domaine reliant ces instances.
Nous utilisons le Web pour chercher d’autres termes candidats ayant des relations
d’hyponymie (is-a ou instanceOf) avec le terme ou l’EN candidat. De ce point de vue, la
redondance de ce terme ou de l’entité nommée candidat sur le Web est primordiale pour
renforcer l’apprentissage de nouveaux termes qui permettraient d’annoter les documents
et aussi d’enrichir lexicalement l’ontologie.
24
Chapitre 2
PRÉSENTATION DE
L’ARCHITECTURE DE NOTRE
SYSTÈME
Sommaire
2.1
Ontologie à composante lexicale . . . . . . . . .
2.1.1 Définitions . . . . . . . . . . . . . . . . . . . .
2.1.2 Exemple . . . . . . . . . . . . . . . . . . . . . .
2.2 Modèle d’annotation . . . . . . . . . . . . . . .
2.2.1 Le concept PartOfSpeech . . . . . . . . . . . .
2.2.2 Le concept SetOfConcept . . . . . . . . . . . .
2.2.3 La propriété neighborOf . . . . . . . . . . . . .
2.2.4 Les métadonnées de pré-annotation . . . . . . .
2.3 Architecture de notre système . . . . . . . . . .
2.3.1 Constitution du corpus . . . . . . . . . . . . . .
2.3.2 Processus d’extraction SHIRI-Extract . . . . .
2.3.3 Processus d’annotation SHIRI-Annot . . . . . .
2.4 Scénario d’usage . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
28
29
32
32
33
33
34
34
34
36
41
Introduction
Dans notre travail de thèse, nous avons défini une approche d’annotation de documents
semi-structurés automatique, non supervisée et guidée par une ontologie à composante
lexicale [TPB08, TBPL09, TBP07] et [MBPT10b, MBPT10a].
Étant donnée l’hétérogénéité des documents, les instances de concepts sont difficilement localisables de manière complète et précise dans une approche complètement automatique. Notre approche repère les termes et les entités nommées de concepts dans les
nœuds de l’arbre DOM (Document Object Model) représentant la structure d’un document (HTML ou XML) et ce sont les nœuds qui sont annotés en tant qu’instances de
25
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
concepts. Nous exploitons, ensuite, la proximité des nœuds annotés pour déduire l’existence possible d’une relation sémantique de domaine et les annoter par une relation de
voisinage, sans chercher à l’identifier précisément.
Nous avons défini une architecture utilisant les langages du W3C RDF(S) et SPARQL
composée principalement 3 modules : SHIRI-Extract, SHIRI-Annot et SHIRI-Querying.
• SHIRI-Extract : est le module qui extrait des termes et des entités nommées (EN)
dans les documents, qui les associe aux concepts de l’ontologie et qui enrichit la
composante lexicale de l’ontologie. Ce module s’appuie sur des patterns syntaxiques
et lexico-syntaxiques indépendants du domaine permettant d’extraire des entités
nommées et des termes de type groupe nominal. Il utilise un algorithme appelé
Extract-Align que nous avons défini permettant d’enrichir l’ontologie chaque fois
qu’un terme ou une entité nommée candidat a pu être aligné, c’est à dire, associé à
un concept de l’ontologie. L’alignement se fait soit directement avec l’ontologie soit
en utilisant le Web pour découvrir de nouveaux termes.
• SHIRI-Annot : est le module qui annote les nœuds de documents conformément au
modèle d’annotation que nous avons défini. Ce modèle est généré automatiquement
à partir de l’ontologie pour représenter les résultats d’extraction et d’annotation.
Pour annoter les nœuds de documents, nous avons défini un ensemble de règles exprimées en logique du premier ordre.
• SHIRI-Querying : est le module qui permet de poser des requêtes sur la base des
annotations, ces requêtes sont formulées à l’aide des métadonnées définies dans le
modèle d’annotation.
Ce chapitre est organisé comme suit. D’abord, dans la section 1, nous présentons
formellement l’ontologie à composante lexicale. Dans la section 2, nous présentons le
modèle d’annotation que nous avons défini pour représenter l’ontologie et les annotations
relatives aux documents. Dans la section 3, nous présentons l’architecture de notre système
et nous détaillons les entrées et les sorties des modules SHIRI-Extract, SHIRI-Annot. Dans
la section 4, nous détaillons un scénario d’usage du système.
2.1
2.1.1
Ontologie à composante lexicale
Définitions
Une ontologie est une formalisation explicite d’une conceptualisation commune et partagée [Gru93].
Dans notre travail, l’ontologie que l’on considère est définie par un ensemble de concepts,
de relations entre ces concepts et de propriétés. Elle est à composante lexicale [RTAG07],
chaque concept est caractérisé par un ensemble de labels et un ensemble de termes. Ce
lexique est enrichi par le module SHIRI-Extract. Plus formellement, soit O(CO , RO , $
26
2.1. Ontologie à composante lexicale
, SO , XO , Lex
O ) l’ontologie de domaine où :
• CO est l’ensemble des concepts,
• RO est l’ensemble des relations entre les instances de concepts,
• $ désigne la relation de subsomption entre les concepts et entre les relations,
• SO définit le domaine et le co-domaine (signature) de chaque relation,
• XO est l’ensemble d’axiomes du domaine définis sur les concepts et les relations,
• Lex
O (L, T , pref Label, altLabel, hasT erm, hasT ermNe) définit :
• L est l’ensemble des labels de concepts. L’ensemble des labels d’un concept est un
ensemble de termes considérés comme équivalents (synonymie dans le domaine)
pour représenter un concept.
• T est l’ensemble des termes et entités nommées décrivant les instances des concepts
du domaine. L’ensemble des termes d’un concept est un ensemble de termes plus
spécifiques que les labels.
• Chaque concept c ∈ CO est lié à un label préféré l ∈ L via la propriété pref Label 6
et aux labels alternatifs l! ∈ L via la propriété altLabel7 .
• Chaque concept c ∈ CO est relié à un terme via la propriété hasT erm et à une
entité nommée via la propriété hasT ermNe. En effet, un terme candidat peut
être extrait soit par un pattern spécifique pour les entités nommées soit par un
pattern pour les termes.
L’ontologie que notre système exploite pour l’annotation ne décrit que les relations
qui ont comme co-domaine des concepts et non des littéraux. Si l’ontologie fournie par
l’expert comporte de telles relations (attributs), nous transformons ce littéral en concept
car notre approche ne cherche à repérer que des instances de concepts décrits par des
labels, des termes ou entités nommées.
Dans notre approche, les ensembles L et T sont respectivement initialisés par un
ensemble de labels et un ensemble de termes choisis par l’expert du domaine en utilisant,
par exemple, WordNet.
L’ensemble T est automatiquement enrichi par le module SHIRI-Extract. L’ensemble
L n’est enrichi que manuellement par l’expert qui valide les termes en modifiant ou en
supprimant certains ou en les associant à un concept plus spécifique ou plus général. Il
peut également décider que certains termes deviennent des labels.
6. Propriétés définies dans SKOS : Simple Knowledge Organization System
27
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
2.1.2
Exemple
Les figures 2.1 et 2.2 décrivent le graphe RDF(Resource Description Framework [W3Cb])
de l’extrait d’une ontologie de domaine portant sur les appels à participation dans des
conférences dédiées au domaine informatique. Elle comprend des concepts comme topic
(thème), et des concepts comme event (évènement). Ces concepts sont reliés par des propriétés telle que hasTopic dont le domaine est CallForPaper (appel à participation) et le
co-domaine est Topic.
Les labels et les termes sélectionnés initialement par l’expert pour le concept Topic sont : {topic} pour le label préféré, {f ield, area, theme} pour les alternatives et
{communications protocols, data encryption, inf ormation, object-oriented programming
language} pour les termes (figure 2.2).
2"3!"##$%&'"()&
!"#!$&%)*&
!"#!$%&'(%)*&
!"#!$+,*-(%)*&
&A=3EF)3%>&/)
.0-)&"#
2"39)&1
2"39)&1D)
!"##$%&'"()&
*+),-
2"3!%110--))
!%,/)(-
!%110--))
2"3:)1;)&
'&%6&"18
!%110--))
')&3%,
2"3<=!#0"-0%,
2"3.%/"-0%,
<=!#0"-0%,
5&6",07"-0%,
!%110--))
.%/"-0%,
9%(0/
2"34"-)
!!"#$%&'%!(
4"-)
2"39%(0/8
2"34"-)
883>;3%1(-0%,
8(&%(&0?-?8@A%1"0,)8+)&38/%BA%1"0,)C
8(&%(&0?-?8@A%1"0,)8@/#"33)C8+)&38/%BA%1"0,)C
Figure 2.1 – Extrait du graphe RDF de l’ontologie d’appel à participation à des conférences
28
2.2. Modèle d’annotation
+,*-.
!"##$%&'$(")*'
/"0!"##%&'(")*'
!%&'(
!"#$#
/"01&)23
)*+,#(!
04&05)'*67"8*#
01#0
-'#./
1&)23
04&05"#.7"8*#
'))*#
(%$$*3'(0!'%3)2&1%!%(%.
/0!02#3(14&!'%3
/"01*'9
'3-%1$0!'%32&1%(#))'352)4)!#$
Figure 2.2 – Exemples de labels et de termes du concept Topic
2.2
Modèle d’annotation
Dans notre travail, les métadonnées d’annotation sont définies dans le modèle d’annotation décrit dans la figure 2.3.
Rappelons qu’une métadonnée est définie comme une donnée définissant une autre
donnée, pouvant être associée à des éléments définis dans une ontologie. Dans notre cas,
en plus des métadonnées dont la sémantique est définie dans l’ontologie, nous avons défini un ensemble de métadonnées spécifiques pour le module d’annotation SHIRI-Annot.
Celles-ci expriment l’agrégation et la proximité des instances repérées dans les documents.
L’ensemble des concepts et relations du domaine et d’agrégation sont réunis dans le modèle d’annotation. Ces métadonnées sont générées automatiquement à partir de l’ontologie
du domaine.
Plus formellement, le quintuplet A(CA , RA , $, SA , XA , Lex
O ) désigne le modèle d’annotation où :
• CA = CO ∪ CS , CS est l’ensemble des concepts définis pour la tâche d’annotation,
• RA = RO ∪RS , RS est l’ensemble des propriétés définies pour la tâche d’annotation,
• XA = XO ∪ XS , XS est un ensemble de règles décrites en logique du premier ordre
et définies pour le module SHIRI-Extract.
Nous avons défini dans l’ensemble CS les concepts Metadata, Concept, P artOf Speech,
SetOf Concept et tous les concepts SetOf c générés pour tout c ∈ CO comme des concepts
descendants de SetOf Concept.
Metadata est défini comme un super-concept direct des concepts Concept, SetOf Concept
et P artOf Speech. Tous les concepts racines ∈ CO de l’ontologie sont des sous-concepts
directs de Concept.
29
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
/0$)#"1
!"#$%&'())*+
+/)*",)()#*")+'12
!"#$"%&'()#*")+'
:5&;$"#
,#()3'4'356
,-.*)($
5)$"6"$"
)',-!./012
')$%&,-.*)($
!"#7'*
34).$
')$%&34).$
')$%&2-(0*
')$%&!)#7-.
!"#7'*
!"#7'*
!"#7'*
!"#$%&'(%
!!"#$%&'%!(
!)#7-.
)%#(*(+'$
,,&-.&(/0#'(%
,01(01'2#2,34(/5'%$,6$1&,7(84(/5'%$9
,01(01'2#2,34(/5'%$,37*5&&$9,6$1&,7(84(/5'%$,37*5&&$99
,01(01'2#2,34(/5'%$,6$1&,7(84(/5'%$,37*5&&$99
Figure 2.3 – Modèle d’Annotation
30
2-(0*
2.2. Modèle d’annotation
Génération des concepts SetOfc subsumés par SetOfConcept
des concepts SetOfc est réalisée comme suit :
: La génération
• Pour chaque concept ontologique c ∈ CO est généré le concept SetOf c.
• Tout concept SetOf c généré, tel que c est sous-concept direct de Concept, est sousconcept direct de SetOf Concept.
• Tout concept SetOf c! généré, tel qu’il ∃c ∈ CO et c! est sous-concept direct de c, est
sous-concept direct de SetOf c.
• La propriété hasSet dont le domaine est la classe du concept Concept et le codomaine est la classe du concept SetOfConcept est instanciée pour chaque c et
SetOf c correspondant.
L’exemple représenté dans la figure 2.4 illustre la génération de SetOf c.
,$)'-%
!$&12,$)'-%
!$&12!"#$%&#'&
!"#$%&#'&
()*+$)
.*&/$0*&#"#*%
!$&12()*+$)
!$&12.*&/$0*&#"#*%
Figure 2.4 – Exemple de génération des concepts SetOfc
Granularité de l’annotation (Nœud) : La structure d’un document est représentée
par l’arbre DOM (Document Object Model, une recommandation du W3C). Chaque
nœud de l’arbre représente un élément de structure (une balise), et possède un nœud
fils contenant son texte. Les nœuds sont reliés par des liens père/fils qui repésentent leur
imbrication arborescente. La figure 2.5 décrit un exemple d’une repésentation DOM d’un
document HTML.
Dans notre approche, la granularité d’annotation est le nœud. En d’autres termes, une
instance d’un concept défini dans le modèle d’annotation est un nœud (cf. 2.3) identifié
par son URI (Universal Resource Identifier). Les nœuds annotés sont tous des instances du
concept Metadata. De plus, une instance est soit une instance d’un concept ontologique
c ∈ CO ou d’agrégation c ∈ CS .
La propriété hasText associe à un nœud son texte.
Dans ce qui suit, nous définissons les éléments des ensembles de CS et de RS .
31
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
!"#$%&
!"'()&
************!#+#%'&*,'-)./011.#*!2#+#%'&*
!2"'()&
*********!-.)3&
*******,'-4./011.#*+5*(*6777
*********!2-.)3&
!2"#$%&
"#$%
-.)3
"'()
#+#%'
*,'-4./011.#*+5*(*777
,'-4./011.#
Figure 2.5 – Exemples de document DOM
2.2.1
Le concept PartOfSpeech
Comme souligné plus haut, les termes et les ENs relatifs aux concepts ontologiques
sont souvent noyés dans les parties non structurées et sont ainsi difficiles à repérer. Un
nœud de document peut comporter des termes et des ENs de concepts différents. Le
concept P artOf Speech est défini pour annoter un nœud de document dont le texte
contient plusieurs termes ou ENs alignés avec des concepts différents. Une instance de
type P artOf Speech est reliée via la propriété isIndexedBy aux concepts des termes ou
ENs repérés dans ce nœud.
Prenons l’exemple d’un nœud contenant le texte ”ECAI 2008, the 18th conference
in this series, is jointly organized by the European coordinating Committee on Artificial
Intelligence the university of Patras and the Hellenic Artificial Intelligence Society” où des
termes ou EN alignés avec les concepts Date (date), T opic (thème), Event (événement)
et Location (lieu) sont localisés. Ce nœud est donc annoté comme instance du concept
P artOf Speech et est reliée via la propriété isIndexedBy aux concepts Date, T opic,
Event et Location.
2.2.2
Le concept SetOfConcept
Avant de définir les métadonnées SetOfConcept et ses concepts descendants SetOfc,
nous définissons les concepts comparables.
Concepts comparables : C un est ensemble de concepts comparables si ∀ci ∈ C et
∀cj ∈ C, subClassOf (ci , cj ) ∨ subClassOf (cj , ci ). Un exemple de concepts comparables
est représenté dans la figure 2.6.
Un nœud de document, comportant des termes ou ENs de concepts comparables appartenant à un ensemble C de concepts comparables, est annoté comme une instance de
SetOfc tel que c est le concept ancêtre des concepts de C.
Par exemple, le concept ontologique T opic défini dans 2.1 est relié via la propriété
hasSet au concept SetOf T opic qui est un sous-concept direct de SetOf Concept. Le nœud
32
2.2. Modèle d’annotation
contenant le texte "searching, querying, visualizing, navigating and browsing the semantic
web", où plusieurs termes du concept T opic sont localisées, est annoté par SetOf T opic.
Un autre exemple de nœud où plusieurs entités nommées de concepts comparables
scientist et son super-concept P erson sont repérés dans le texte, ce nœud est annoté en
tant qu’instance de SetOf P erson.
$"%&'(')*+,
2+(,"!
!"!#$"%&'(')*+,
-$.+!/.,/
0('1+(
3'/4+%'/.$.'!
Figure 2.6 – Exemples de concepts comparables et non comparables
2.2.3
La propriété neighborOf
Vu l’hétérogénéité des documents, l’extraction des relations du domaine peut s’avérer
encore plus difficile que pour les instances de concepts. Le principe de notre approche est
d’utiliser les nœuds annotés, leur sémantique et leur proximité structurelle pour déduire
une relation entre instances, plus précisément, entre nœuds.
Le voisinage structurel est représenté par le chemin de liens entre nœuds de l’arbre
structurel DOM du document.
La relation neigbhorOf est instanciée pour deux nœuds de type Metadata reliés par un
chemin structurel de longueur ne dépassant pas une valeur déterminée d. Les deux nœuds
doivent contenir respectivement des instances de concepts ci et cj ∈ CO tels que ∃r ∈ RO
où ci ∈ domaine(r) et cj ∈ co-domaine(r). Cette relation est symétrique.
La relation neighborOf est instanciée quand la distance est nulle. Dans ce cas, les
instances se trouvent dans le même nœud et ce nœud est de type P artOf Speech.
2.2.4
Les métadonnées de pré-annotation
Nous avons également défini deux propriétés de pré-annotation pour représenter les
résultats obtenus par le module SHIRI-Extract.
• La propriété containInstanceOf est définie entre un nœud et un concept ci ∈ CO ,
pour exprimer le type du terme ou de l’entité nommée localisée dans ce nœud.
33
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
• De la même manière, la relation hasValueInstance est définie entre un nœud et un
littéral pour conserver le terme ou l’entité nommée (littéral) localisé dans ce nœud.
2.3
Architecture de notre système
Dans cette section, nous présentons les modules définis dans notre système, à savoir, la constitution du corpus, l’extraction SHIRI-Extract et l’annotation SHIRI-Annot
(figure 2.7). Notre système utilise les langages du W3C [W3Ca] : RDF/RDFS pour la
représentation du modèle d’annotation et les documents annotés et SPARQL pour leur
interrogation.
2.3.1
Constitution du corpus
La constitution du corpus se fait en deux étapes : (i) chargement du corpus portant
sur le domaine d’intérêt et (ii) pré-traitement du corpus.
Chargement du corpus
Le chargement du corpus peut se faire automatiquement en utilisant un moteur de
recherche comme Google ou Yahoo. Pour ce faire nous identifions un ensemble de mots clé
appelés graines (seed en anglais). Ces mots sont combinés pour former des n-uplets qui sont
fournis au moteur de recherche pour obtenir une liste d’URLs de documents à télécharger.
Ces mots clé sont formés à partir des labels de concepts et éventuellement des termes déjà
alignés aux concepts de l’ontologie. Le chargement automatique des documents à partir
des sites ainsi identifiés se fait via un crawler (un robot d’indexation) comme montré dans
la figure 2.7.
Pré-traitement du corpus
Les documents chargés sont traités pour obtenir un ensemble de documents XHTML
bien formés grâce à des outils comme JTidy, TidyHtml et des APIs comme SAX (Simple
API for XML) et DOM (Document Object Model). Chaque document est ensuite représenté par un ensemble de mots numérotés par ordre d’occurrence dans le document. Les
caractères de ponctuation sont bien entendu conservés pour la tâche d’extraction, et les
balises remplacées par des points.
2.3.2
Processus d’extraction SHIRI-Extract
SHIRI-Extract s’applique à un ensemble de documents après pré-traitement. Il s’appuie sur des patterns indépendants du domaine en distinguant :
• les patterns syntaxiques de type syntagmes nominaux couramment utilisés dans
l’extraction d’information pour extraire les termes candidats,
34
2.3. Architecture de notre système
3*45/$&'%&
'*./0%)+$&6789
3&4
9)*:;.)
!"#$#%&'()*+(
!
!
!
:)+*;*<,%&-%&
-*0#,)%
7818)*(.-)
!"#$#%5116(
1=<;%$&'>.;#4#+,?%$&
,)'>5%)'#)+%$&'/&
'*0#,)%
!
!
8*'=;%&'(#))*+#+,*)
!
-*./0%)+$&1-2&
-*./0%)+$&1-2&
-*./0%)+$&1-2&
-*./0%)+$&1-2&
"#$%&
'(#))*+#+,*)$
!"#$#%,-.)/012
Figure 2.7 – Principaux modules de notre système
35
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
• et lexico-syntaxiques utilisés dans les techniques de détection d’entités nommées
pour extraire les entités nommées candidates.
Le module SHIRI-Extract utilise un algorithme appelé Extract-Align qui enrichit lexicalement l’ontologie de manière incrémentale par chaque terme ou EN candidat aligné
(associé un concept défini dans l’ontologie). L’alignement utilise soit directement l’ontologie lexicale augmentée de nouveaux termes alignés soit en passant par le Web pour
découvrir de nouveaux termes. La sortie de ce module est un ensemble de triplets RDF :
1. les triplets qui enrichissent l’ontologie : (term, hasT erm, uri(Concept)) et (termNe,
hasT ermNe, uri(Concept))
2. les triplets de pré-annotation qui précisent quels concepts de termes ou ENs ont
été repérés et dans quels nœuds des documents. (uri(Node), containInstanceOf,
uri(Concept)) et (uri(Node), hasV alueInstance, term ou termNe)
2.3.3
Processus d’annotation SHIRI-Annot
Le module SHIRI-Annot a pour objectif d’annoter les documents en utilisant les triplets des relations containInstanceOf et hasV alueInstance résultant de SHIRI-Extract.
Pour ce faire nous avons défini un ensemble de règles en logique du premier ordre permettant de générer les annotations conformes au modèle d’annotation :
1. annoter les nœuds en tenant compte à la fois des concepts associés à ces nœuds
via la propriété containInstanceOf dans le module d’extraction et de leur agrégation structurelle dans les documents. Les triplets que nous obtenons en sortie sont :
(uri(Node), type, uri(c)), (uri(Node), type, uri(P artOf Speech)), (uri(NodeP os),
isIndexedBy, uri(c)), (uri(Node), type, uri(SetOf c))
2. inférer des relations entre nœuds en tenant compte à la fois des types de termes et
ENs localisés dans ces nœuds et de leur voisinage structurel. Ce voisinage structurel
est représenté par un chemin de longueur fixée entre nœuds dans l’arbre structurel
DOM du document. Les triplets que nous obtenons en sortie sont : (uri(Node),
neighborOf, uri(Node))
SHIRI-Querying est le module qui traite la requête de l’utilisateur exprimée avec
les concepts et les relations de l’ontologie. L’objectif est de reformuler automatiquement
cette requête initiale en exploitant le modèle d’annotation afin d’atteindre d’autres nœuds
réponses et de trier ces nœuds en fonction de leur sémantique.
Dans notre travail, nous avons défini un ensemble de fonctions de transformations qui
permettent de construire des requêtes reformulées. Ce module est détaillé dans [MBPT10a].
36
2.4. Scénario d’usage
Figure 2.8 – Exemples de documents à traiter
37
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
Figure 2.9 – Extraction et alignement des termes et entités nommées
38
2.4. Scénario d’usage
Figure 2.10 – Annotation des nœuds de documents
39
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
Figure 2.11 – Interrogation des annotations
40
2.4. Scénario d’usage
2.4
Scénario d’usage
La figure 2.8 montre 2 exemples de documents semi-structurés (Document 1 et Document 2) traités successivement par SHIRI-Extract et SHIRI-Annot.
SHIRI-Extract extrait les termes et les entités nommées et les aligne avec les concepts
de l’ontologie. La figure 2.9 montre les résulats de ce module. Par exemple, dans le document 1, on a pu extraire et aligner les entités nommées Greece et Heraklion au concept
Location et applications of Semantic Web technologies au concept Topic. Dans le document 2, le terme Semantic web intelligence extrait est aligné au concept Topic et le terme
Politecnico di Torino est aligné au concept Affiliation.
Les triplets générés à ce stade pré-annotent les documents en instanciant la relation
containInstanceOf entre les nœuds et les concepts des termes et ENs localisés dans ces
nœuds et la relation hasV alueInstance entre ces mêmes nœuds et les littéraux des termes
et entités nommées.
La figure 2.10 montre les résultats de SHIRI-Annot qui annote les nœuds en utilisant
les pré-annotations et l’agrégation des instances et leur voisinage structurel. Par exemple,
dans le document 2, la métadonnée SetOf T opic est utilisée pour annoter le nœud qui
contient plusieurs termes alignés au concept T opic.
Dans le document 1, les nœuds contenant plusieurs termes ou ENs alignés avec différents concepts comme P erson et Event ou date et Location sont annotés comme des
instances de PartOfSpeech.
La relation neighborOf est instanciée entre nœuds voisins (distance de 2 dans la figure
2.10) contenant des termes et ENs de concepts domaine et co-domaine d’une relation définie dans l’ontologie. Par exemple, dans le document 1, neighborOf est instanciée entre
deux nœuds P artOf Speech voisins. Le premier contient des termes et ENs alignés avec les
concepts Event et T opic. Le second contient des ENs alignés avec les concepts Location
et Date.
Enfin, la figure 2.11 montre une requête utilisateur exprimée par les concepts et les
relations de l’ontologie. Cette requête cherche des conférences qui ont pour thème Semantic
Web. La requête telle qu’elle est posée n’a aucune réponse. Les différentes reformulations
permettent d’atteindre les nœuds agrégés P artOf Speech et SetOf Concept et les nœuds
reliés par neighborOf .
Conclusion
Dans ce chapitre, nous avons présenté notre architecture modulaire qui permet de
traiter séparément l’extraction et l’annotation. SHIRI-Extract extrait des termes et ENs
candidats de manière indépendante du domaine et les aligne ensuite avec l’ontologie.
41
Chapitre 2. PRÉSENTATION DE L’ARCHITECTURE DE NOTRE SYSTÈME
SHIRI-Annot exploite la structure et la sémantique associée aux nœuds pour annoter les
documents. SHIRI-Extract est détaillé dans le chapitre 3. SHIRI-Annot est détaillé dans
le chapitre 4.
42
Chapitre 3
EXTRACTION, ALIGNEMENT DES
ENTITÉS NOMMÉES ET DES
TERMES
Sommaire
3.1
Présentation de SHIRI-Extract . . . . . . . . .
3.1.1 Objectifs généraux . . . . . . . . . . . . . . . .
3.1.2 Extraction des termes candidats . . . . . . . .
3.1.3 Stratégie de sélection des termes candidats . . .
3.1.4 Alignement local ou via le web . . . . . . . . .
3.1.5 Enrichissement de l’ontologie . . . . . . . . . .
3.2 Algorithme d’extraction et d’alignement . . .
3.2.1 Notations et principes algorithmiques . . . . .
3.2.2 Alignement local d’une entité nommée . . . . .
3.2.3 Alignement local d’un terme . . . . . . . . . . .
3.2.4 Alignement via le Web d’un terme candidat . .
3.2.5 Illustration . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
46
50
50
55
55
55
58
60
62
63
Introduction
L’automatisation de l’annotation de documents hétérogènes peut exploiter une technique de reconnaissance d’entités nommées qui a pour but de localiser et de classer des
éléments du texte dans des catégories pré-définies telles que les noms de personnes, d’organisations, de lieux ou les dates.
Elle peut également se baser sur la recherche de termes associés à des concepts du
domaine et qui ne sont pas des entités nommées.
43
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Nous proposons une approche appelée SHIRI-Extract qui permet d’extraire des entités
nommées et des termes dans les documents et de les rapprocher à des concepts d’une
ontologie de domaine. Cette approche utilise des patterns lexico-syntaxiques indépendants
du domaine. Elle vise à s’affranchir de l’existence de ressources lexicales en utilisant le
Web : l’alignement des termes candidats se fait soit localement avec l’ontologie, soit en
utilisant des termes provenant du Web. L’ontologie est ensuite enrichie par les termes
extraits découverts dans les documents ou sur le Web. Ainsi le besoin d’accès au Web est
réduit au fur et à mesure que les documents, appartenant au même domaine, sont traités.
Dans ce chapitre, nous présentons brièvement SHIRI-Extract, ensuite nous présentons
l’algorithme Extract-Align qui extrait des entités nommées et des termes et qui les aligne
avec des concepts de l’ontologie.
3.1
Présentation de SHIRI-Extract
Dans cette section, nous présentons tout d’abord les principales étapes de l’extraction
et de l’alignement. Nous détaillons ensuite comment l’extraction des termes et des entités
nommées est effectuée, puis comment ces termes candidats sont alignés avec l’ontologie.
Enfin, nous montrons comment l’ontologie est enrichie.
3.1.1
Objectifs généraux
SHIRI-Extract correspond à la phase de localisation et d’alignement de SHIRI. L’objectif de SHIRI-Extract est de générer des triplets RDF qui associent aux nœuds de
documents les concepts du domaine décrits par les termes ou les entités nommées qui ont
été localisés dans ces nœuds. Les triplets générés utilisent les attributs hasValueInstance
et containInstanceOf définis dans le modèle d’annotation.
Par exemple, la figure 3.2 montre les triplets qui permettent d’associer le terme Porto au
nœud [http ://www..../cfp.html/ body/.../p] qui le contient :
(http ://www..../cfp.html/body/.../p, hasValueInstance, ”Porto”) ;
(http ://www..../cfp.html/body/.../p, containInstanceOf, uri(Location)).
Les principales étapes de SHIRI-Extract sont les suivantes (cf. figure 3.1) :
• Les documents XHTML relatifs au domaine sont nettoyés et passés à l’outil d’extraction.
• L’approche d’extraction commence par étiqueter morpho-syntaxiquement les documents avant de leur appliquer un ensemble de patterns pour obtenir les termes ou les
EN candidats. Nous appelons terme candidat (ou EN candidate) un terme (ou une
entité nommée) extrait et non encore aligné avec un concept de l’ontologie. Nous
distinguons deux types de patterns :
44
3.1. Présentation de SHIRI-Extract
=0##(;"4-./("#'#>4"$11>(4
2$3,1("#4-56789(%0#':4-0,-.$10'"(
=0##(;"4-.(-&;$,?(4"$1'"0,<
!"#$%&#'()*+,-*#,$.,-*
&%)+'+%#-
)*+
9(44$,;3(4(<#(;"(4
!,#'%-./0%'&"(1("#
@,;'A3$"3(?#B-C046(;1B------/4#;'"&/F
@,;'A3$"3(?#B-C046(;1G(B-/4#;'"&/F
!"#$%$&'(
@,;'A4,B-------C04D0%,(E"4#0"3(B----/4#;'"&/F
@,;'A4,B-3$"#0'"E"4#0"3(!:B-,;'A3$"3(?#F
H5E9EIJ""$#
Figure 3.1 – Architecture de SHIRI-Extract
45
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
1. des patterns spécifiques à la recherche d’entités nommées ;
2. des patterns permettant de découvrir des termes.
Les deux types d’extraction sont réalisés indépendamment l’un de l’autre sur l’ensemble des documents.
• Les termes ou EN candidats obtenus sont alignés avec les concepts de l’ontologie
du domaine. Cet alignement est particulier à chaque type de pattern. Il est effectué soit directement avec les termes, les entités nommées ou les labels des concepts
de l’ontologie, soit indirectement en utilisant une ressource externe ou via le Web.
Une ressource externe peut être terminologique comme WordNet ou une base de
connaissances d’entités nommées comme celle utilisée dans KIM [PKK+ 04] ou un
outil d’extraction d’EN appartenant à des catégories que l’on peut directement associer à des concepts de l’ontologie de domaine comme [P.07].
• L’ontologie est régulièrement enrichie avec les termes candidats alignés qui peuvent
ainsi être exploités dans des traitements ultérieurs. L’approche génère un ensemble
de faits construits à partir des propriétés hasTermNe et hasTerm définies dans l’ontologie. Par exemple, si "Porto" n’existe pas dans les entités nommées de l’ontologie
et que l’on a découvert qu’il s’agit d’une instance du concept Location (Lieu), le fait
(uri(Location), hasTermNe, ”Porto”) est généré.
Nous avons défini un algorithme de localisation et d’alignement appelé Extract-Align.
Il est décrit en détail dans la section 3.2.
3.1.2
Extraction des termes candidats
Dans notre approche, pour extraire les termes candidats dans les documents, nous
avons appliqué une méthode basée sur l’utilisation d’un ensemble de patterns syntaxiques
ou lexico-syntaxiques. Dans cette section, nous présentons les patterns utilisés pour les
termes et pour les entités nommées.
Extraction des termes
Nous avons choisi d’utiliser des patterns syntaxiques indépendants du domaine qui
permettent de localiser certains groupes nominaux susceptibles de représenter des termes.
Comme nous souhaitons distinguer les entités nommées des termes, nous avons supprimés les noms propres des seize patterns définis dans [Arp95] .
1. (NN|NNS) & (IN|CC) & (NN|NNS) & (IN|CC) & (NN|NNS) & (IN|CC) & (NN|NNS)
2. (NN|NNS) & (IN|CC) & (NN|NNS) & (IN|CC) & (NN|NNS)
3. VBG & (NN|NNS) & (IN|CC) & (NN|NNS) & (NN|NNS)
46
3.1. Présentation de SHIRI-Extract
!"##$%&&'''((((&)*$("#+,&-./0&(((&$12"47<4,=8637#43)812>>?.@#.>>;
!"#!"#$%&'"$()*+,#-.$/+.0#*#.1#$+.$2-1"3.#$4#-*.3.5
6$(/24$7$-.8$'"#$9'"$()*+,#-.$/+.0#*#.1#$+.$:*3.13,;#<$-.8$
:*-1'31#$+0$3.$=-'->-<#<$6:?==7$@3;;$>#$1+A;+1-'#8$3.B !"#$"
!"#$1+C>3.#8$#D#.'$@3;;$1+C,*3<#$,*#<#.'-'3+.<$+0$1+.'*3>)'#8$
,-,#*<$-.8$3.D3'#8$<,#-E#*<F$-$@38#$,*+5*-C$+0$@+*E<"+,<$-.8$
')'+*3-;<F$-$8#C+$<#<<3+.F$-.8$-$83<1+D#*G$1"-;;#.5#B
!$"#%
!"#$%$&'()*()
*$+,'"(
!"##$%&&'''((((&)*$("#+,&-./0&(((&$12).3#453637#43)89*12:.)4#5.3;
Figure 3.2 – Exemple d’instanciation des relations hasValueInstance et containInstanceOf
47
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Symbole/Tag
?
+
*
&
|
NN
NP
CC
IN
JJ
FW
DT
UH
POS
NNS
NPS
VBG
VBN
\w
[a-z]
[A-Z]
Signification
0 ou 1 fois
Répétition 1 ou N fois
Répétition 0 ou N fois
Concaténation
Ou/Choix
Nom commun
Nom propre
Conjonction de coordination
Conjonction de subordination
Adjectif
Mot étranger
Déterminant
Interjection
Forme possessive
Nom commun au pluriel
Nom propre au pluriel
Verbe au gérondif / participe
présent
Verbe au participe passé
tout caractère
tout caractère minuscule
tout caractère majuscule
Exemples
A & B : A suivi de B
A | B : A ou B
conference
Moussa
and, but, or, nor, yet
without
great
bête, noire, persona, non, grata
the, a(n), no, every
OH
’s, ’
conferences
Jacques
saving, presenting
presented
m, k, j
M, K, J
Table 3.1 – Signification des tags
48
3.1. Présentation de SHIRI-Extract
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
(JJ|VBN) & (JJ|VBN) & (NN|NNS) & (IN|CC) & (NN|NNS)
(NN|NNS) & (IN|CC) & (JJ|VBN) & (NN|NNS)
(JJ|VBN) & (NN|NNS) & (IN|CC) & (NN|NNS)
(NN|NNS) & (IN|CC) & (NN|NNS) & (NN|NNS)
(NN|NNS) & (IN|CC) & (NN|NNS)
(JJ|VBN) & (NN|NNS) & (NN|NNS)
(JJ|VBN) & (JJ|VBN) & (NN|NNS)
(JJ|VBN) & VBG & (NN|NNS)
(NN|NNS) & (NN|NNS) & (NN|NNS)
(JJ|VBN) & (NN|NNS)
(NN|NNS) & (NN|NNS)
VBG & (NN|NNS)
NN|NNS
Ces patterns permettent d’obtenir des termes tels que : workshop, database indexing and
search, Semantic Web, combined events, Principles and Practice of Knowledge Discovery.
Ces patterns ont en général un bon rappel puisqu’ils ne sont pas spécifiques à un
domaine, ni contraints syntaxiquement. Par exemple tous les noms communs sont extraits
et nombre d’entre eux ne sont pas des termes du domaine. Une manière de filtrer ces termes
aurait été de leur appliquer des techniques statistiques permettant de retenir une majorité
de termes pertinents. Dans notre approche nous avons défini une méthode d’alignement
qui permet d’associer un terme à un concept du domaine et qui sert également de filtre
au grand nombre de termes candidats extraits.
Extraction des Entités Nommées
Pour extraire les entités nommées, nous exploitons les patterns lexico-syntaxiques utilisés par C-Pankow [CLS05]. pn signifie ”pattern de nom” et pnp signifie ”pattern de nom
propre”
• pn = DT ? & JJ ? & (NN(S) ?)+
• pn2 = pn & CC (and|or) & pn
• pn+ = pn & (, pn)+ & CC (and|or) & pn
• pn(+) = pn & (, pn)+
• pnp = DT ? & (JJ [A-Z]+) ? & (((NPS|NNS|NN|NP|JJ|UH|FW) [A-Z] & \w*)+ &
(DT the|IN of|POS ’|-|FW de|FW la|FW los|FW las|FW del|NP de|NP del|NP la| &
NP los|NP las|NN [A-Z]+|NNS [A-Z]+|NP [A-Z]+|NPS [A-Z]+)+ & (((NPS|NNS|
NN|NP|JJ|UH|FW) [A-Z] & \w*)+)) ?))
49
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Ces patterns permettent d’obtenir des termes tels que : Porto, SEMMA, European Conference on Machine Learning, ECML, Tim Berners-Lee.
Nous utilisons également des expressions régulières classiques pour la détection de certaines instances de concepts de l’ontologie telles que le concept Date.
3.1.3
Stratégie de sélection des termes candidats
Un terme candidat extrait peut être inclus dans un autre terme candidat extrait par
un autre pattern pour une même occurrence. Par exemple, dans le tableau 3.2 qui montre
les résultats de l’extraction de termes et leur numéro d’occurrence dans les documents, le
terme candidat distributed75 databases76 contient le terme databases76 .
Nous avons choisi de traiter ces termes candidats du plus long au plus court, la taille
d’un terme candidat étant le nombre de mots le composant. En effet, le terme le plus
long est souvent plus précis ou plus significatif que les sous-termes qu’il contient. Par
exemple, l’entité nommée ”Gaston Berger University” qui est un établissement est plus
significatif que ”Gaston Berger ” qui est une personne (philosophe et industriel né à SaintLouis, Sénégal). Ce raisonnement est également valable pour les termes. Par exemple, le
terme ”knowledge management systems” obtenu avec le pattern (NN|NNS) & (NN|NNS)
& (NN|NNS) est plus précis que ”systems” obtenu avec (NN|NNS).
D’un autre côté, un terme peut être trop complexe pour être aligné avec un concept
de l’ontologie. Aussi, si nous n’avons pas réussi à aligner un terme, nous tentons d’aligner
ses sous-termes. C’est le cas, par exemple, du terme candidat ”Interoperability of data
on the Semantic Web” pour lequel l’alignement avec le concept Topic échouerait très
probablement à cause de sa complexité. En particulier, l’alignement exploitant le Web
comme ressource externe, détaillé dans la section suivante, risque d’échouer compte tenu
de la faible fréquence de ce terme sur le Web.
Afin de garder l’information sur l’inclusion des termes, les mots qui forment les termes
sont numérotés selon leur ordre d’apparition dans les documents. Cette numérotation
permet de distinguer les différentes occurrences du même terme et leurs inclusions. Par
exemple, si le terme ”distributed75 databases76 ” a pu être aligné il sera inutile de traiter
”databases76 ”. En revanche, si le terme ”artif icial78 intelligence79 ” n’a pas pu être aligné avec le concept ”T opic”, nous tentons d’aligner le terme ”Intelligence79 ”. Le terme
candidat ”databases86 ” qui est une autre occurrence dans le document est aussi traité.
En revanche, si nous n’avons pas réussi à aligner une entité nommée candidate, nous
ne tentons pas d’aligner les entités nommées qui sont contenues dans celle-ci.
3.1.4
Alignement local ou via le web
Dans notre approche, l’alignement des termes candidats se fait soit localement avec
l’ontologie, soit en utilisant une ressource lexicale externe, soit via le Web. Nous avons
distingué le cas des entités nommées et le cas des termes. En effet, les éléments de l’ontologie utilisés pour l’alignement sont différents et les techniques d’alignement sont plus
strictes pour les entités nommées.
50
3.1. Présentation de SHIRI-Extract
Texte Original
...
Areas71
of72
interest73
are74
distributed75 databases76 and77 artificial78
intelligence79 .
The80
workshop81
SEMMA82
focuses83
also84
on85
databases86 . Intelligence87 areas88 ...
Termes Candidats Extraits
... [Areas71 ] of72 interest73
are74
[distributed75
[databases76 ]]
and77
[artificial78
[intelligence79 ]].
The80
[workshop81 ] SEMMA82 focuses83 also84
on85 [databases86 ]. [Intelligence87 ] [areas88 ]
...
Table 3.2 – Exemples de termes candidats extraits
Alignement des entités nommées
Une entité nommée extraite est comparée aux entités nommées appartenant à l’ontologie. Il y a peu de variations syntaxiques dans les noms d’entités nommées (à l’exception
des abbréviations ou des erreurs typographiques). Nous avons choisi de considérer des mesures de similarités strictes pour décider que deux entités nommées doivent être alignées
(e.g. chaînes de caractères identiques, techniques probabilistes avec des seuils élevés dans
l’outil externe [P.07]).
Alignement local : tout d’abord, nous tentons d’aligner l’entité nommée localement en
utilisant les entités nommées présentes dans les valeurs de la propriété hasT ermNe
de l’ontologie. Si cette tentative échoue, cet alignement peut se faire via une ressource
d’entités nommées externe.
Alignement via le Web : au cas où cette dernière tentative ne permet pas de rapprocher l’entité nommée d’un concept de l’ontologie, nous recherchons des termes sur
le Web qui sont susceptibles de décrire le concept auquel cette entité nommée appartient et nous tentons d’aligner ces termes avec les concepts de l’ontologie. Plus
précisément, cet alignement via le web est réalisé selon les principes suivants :
Requêtes traitées par le moteur de recherche : les requêtes contenant l’entité nommée sont construites et soumises à un moteur de recherche en utilisant,
comme dans [CLS05], les patterns de Hearst [Hea92] suivants :
hearst1 = np1 , ? & DT such & (IN | RB | CS) as & (pnp3|pnp2|pnp1)
hearst2 = pnp4 & CC (or | and) & JJ other & np1
hearst3 = np1 & , ? & RB (especially | including) & (pnp3|pnp2|pnp1)
hearst4 = DT such & np1 & IN as & (pnp3|pnp2 |pnp1)
apposition = pnp1 & , & np1
def inite1 = ((DT the | DT The) & (JJ & \w+) ? & ((NN(S) ? [a-z]+)+) &
pnp1)
def inite2 = ((DT the | DT The) & (JJ & \w+) ? & pnp1 & ((NN(S) ? [AZ]+)+))
copula = pnp1 & (BEZ | BEDZ) \w+ & np1 ;
51
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Les requêtes sont soumises au Web grâce à un plug-in adapté au moteur de
recherche. Par exemple, la requête correspondant au pattern hearst1 appliquée
à l’entité nommée Porto est ”such as Porto”. Le résultat de la requête fournit
un ensemble d’extraits de documents contenant le pattern instancié. Un des
extraits fournis par la requête ”such as Porto” est :
Spel today manages a total of 16953 places in 24 car parking facilities in cities
such as Porto, Lisbon, Viseu and Matosinhos.
Filtrage des extraits obtenus en réponses : les extraits sont filtrés suivant leur
similarité avec le document d’où provient l’entité nommée. Les n meilleurs
extraits sont retenus. La similarité est évaluée en utilisant la mesure du cosinus
qui permet de comparer deux documents texte en se basant sur la fréquence
des mots. Les mots vides sont supprimés avant cette comparaison grâce à une
liste de mots vides.
−−−−→ −→
extrait.doc
−−−−→ −→
cosinus(extrait, doc) = −−−−→ −→
||extrait||.||doc||
(3.1)
Sélection des termes trouvés sur le web : les extraits sont étiquetés morphosyntaxiquement. Ensuite, les termes candidats sont repérés dans les patterns
instanciés (np1 ) et lemmatisés. Ainsi, le terme candidat City est repéré dans
l’exemple ci-dessus. Nous obtenons alors une liste de termes candidats pour
l’entité nommée. Les termes dont la fréquence est supérieure à un seuil sont
sélectionnés.
Alignement des termes trouvés sur le web : les termes sélectionnés sont utilisés pour aligner l’entité nommée en utilisant les valeurs des propriétés hasLabel
ou hasT erm de l’ontologie. Cet alignement est réalisé suivant le principe décrit ci-dessous pour l’alignement local des termes. Par exemple, l’entité nommée
Porto pour laquelle le Web a proposé le terme City est alignée avec le concept
Town grâce à son label alternatif City. De même, SEMMA pour laquelle le
Web a proposé le terme international workshop est alignée avec le concept
Event grâce au terme workshop de ce concept.
Alignement des termes
Pour associer un terme à un concept de l’ontologie, nous utilisons l’outil d’alignement
d’ontologie Taxomap [HZSR08].
Présentation de Taxomap Taxomap est un outil d’alignement de taxonomies (ensembles de concepts organisés par une relation de spécialisation). Cet outil est particulièrement adapté à l’alignement de taxonomies dissymétriques où l’une des taxonomies
est peu structurée et même éventuellement limitée à une liste de concepts. L’alignement
est en effet orienté de l’ontologie peu structurée, dite ontologie source, à l’ontologie bien
52
3.1. Présentation de SHIRI-Extract
structurée, dite cible. Il exploite les ensembles de labels des concepts des deux taxonomies
ainsi que la structure de la taxonomie cible. Cet outil d’alignement peut donc facilement
être utilisé pour comparer un terme aux termes présents dans les labels de concepts d’une
taxonomie en considérant qu’il s’agit d’un concept décrit par un unique label.
Taxomap recherche différents types de relations de correspondance entre concepts :
des relations d’équivalence (isEq), de spécialisation (isA) ou de proximité sémantique
(isClose) dont la sémantique n’est pas précisemment définie.
TreeTagger est utilisé pour rechercher la catégorie morpho-syntaxique de chacun des
mots des labels de concept et pour les lemmatiser (i.e donner sa forme canonique). Les
mots sont soient considérés comme des mots pleins (les noms qui n’apparaissent pas après
une préposition), soient comme des modificateurs. Les mots pleins ont alors plus de poids
dans les calculs de similarité entre labels. Cette similarité est calculée en utilisant une
variante de la mesure de Lin [Lin98], qui peut être utilisée pour mesurer la similaritée
entre deux concepts, x et y, en se basant sur le nombre de tri-grammes communs aux
labels de ces deux concepts. La variante SimLinLike utilisée dans Taxomap permet de
donner plus de poids aux mots pleins. Elle est définie de la façon suivante :
SimLinLike (x, y) =
2 ∗
!
!
t∈Inter logP (t) + 0.5 ∗
t∈I ! logP (t)
!
!
t∈tri(x) logP (t) +
t∈tri(y) logP (t)
(3.2)
où tri(x) est l’ensemble des tri-grammes de la chaîne de caractères x, P(t) représente la
probabilité d’apparition du tri-gramme t dans les labels d’une des ontologies (estimée en
utilisant la fréquence du tri-gramme dans l’ontologie, Inter est l’ensemble des tri-grammes
communs extraits à partir des mots pleins, I’ est l’ensemble des tri-grammes communs
extraits à partir des modifieurs.
Différentes techniques d’alignement (T1, T2, T3, T4, T5 , T6, T7 et T8) sont appliqués de manière séquentielle, de la plus sûre, à la plus incertaine. Soit CS un concept de
l’ontologie source et CCmax, CC2, CC3 les trois concepts de l’ontologie cible les plus
similaires à CS, les techniques proposées sont les suivantes :
• T1 (Equivalence) : une relation d’équivalence isEq est générée si la similarité d’un
des labels du concept CS de l’ontologie source avec un des labels du concept CCmax
de l’ontologie cible est supérieure ou égale à un seuil.
• T2 et T3 (Inclusions) : une relation CS isA CCmax est générée si un des labels
de CCmax est inclus dans un des labels de CS et si tous les mots inclus sont des
mots pleins (technique T2). Une relation CS isClose CCmax est générée si un des
labels de CS est inclus dans un des labels de CCmax.
• T4, T5 et T6 (Similarité relative) La similarité relative est le rapport entre la similarité de CC2 et celle de CCmax. Si elle est inférieure ou égale à un seuil, T4, T5
ou T6 peuvent s’appliquer. Une relation CS isClose CCmax est générée si la similarité de CCmax est supérieure ou égale à un seuil et qu’il existe une inclusion de
53
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
labels entre CS et CCmax(technique T4). Par exemple, si CS a pour label Chaîne
de Montagne, et CCmax a pour label Montagne, CS isClose CCmax.
Une relation CS isClose CCmax est générée si la similarité de CCmax est supérieure ou égale à un certain seuil supérieur au précédent (technique T5). Une
relation CS isA père(CCmax ) est générée si la valeur de similarité avec CCmax
est inférieure à un seuil mais supérieure ou égale à un deuxième seuil (technique T6).
• T7 et T8 (Raisonnement sur la structure) Une relation CS isClose CC est générée si la relation de spécialisation CS isA X existe dans l’ontologie source et si la
relation de correspondance X isA CC a été générée (technique T7) . Une relation
CS isClose CC est générée si CC est le concept de l’ontologie cible qui a le plus
de fils qui ont des labels identiques aux labels des fils de CS. La relation CS isA
P est générée si les trois concepts de l’ontologie cible qui sont les plus similaires à
CS ont une similarité supérieure à un seuil et ont un père commun P (technique T8).
Nous alignons le terme avec tous les concepts trouvés par Taxomap que la relation de
correspondance soit l’équivalence (isEq), la subsomption (isA) ou la proximité sémantique
(isClose), sous réserve que la valeur de similarité soit supérieure à un seuil donné.
Lorsque nous utilisons Taxomap, nous exploitons la composante lexicale de l’ontologie
de domaine (ontologie cible) en considérant les termes présents dans les valeurs de la
propriété hasT erm comme des labels, en plus de deux déjà présents dans les valeurs de
la propriété hasLabel.
Alignement local : comme pour les entités nommées, nous commençons par aligner le
terme localement avec l’ontologie en utilisant l’outil Taxomap.
Alignement via le web : Si aucune correspondance n’est trouvée lors de l’alignement
local par Taxomap, nous soumettons le terme au Web comme nous le faisons pour
les entités nommées et avec les mêmes patterns. En effet, les patterns définis par
Hearst permettent de retrouver aussi bien des liens instance-de que des relations
d’hyponymie dans un texte.
Historisation des entités nommées et termes non alignés
Si une entité nommée ou un terme a été soumis au Web et n’a pu être aligné, nous ne
souhaitons pas le soumettre de nouveau si ce terme est rencontré de nouveau dans un autre
document. En effet, les appels Web sont coûteux et les documents étant relatifs au même
domaine, nous supposons qu’il suffit de vérifier le contexte dans lequel apparaît le terme à
sa première occurrence. Aussi, nous conservons les résultats obtenus lors de l’appel Web :
l’entité nommée ou le terme accompagné de l’ensemble des termes candidats trouvés sur
le web (éventuellement vide). Si nous avons pu trouver des termes candidats sur le Web,
comme l’ontologie évolue, il est possible qu’une future tentative d’alignement réussisse en
exploitant le fichier XML contenant ces informations historisées. Si nous n’avons pas pu
en découvrir, il est inutile de soumettre à nouveau les requêtes sur le Web.
54
3.2. Algorithme d’extraction et d’alignement
3.1.5
Enrichissement de l’ontologie
L’ontologie est enrichie par les termes et les entités nommées trouvés et alignés avec
des concepts de l’ontologie. Cet enrichissement permet d’améliorer le traitement des documents de deux façons différentes. Tous les termes similaires au terme traité pourront
être alignés avec ce terme et cet alignement sera local, nous n’avons plus besoin de soumettre le terme au Web. Il en est de même pour les entités nommées. Aussi, comme les
documents sont du même domaine et que les termes se répètent, le nombre d’appels au
web devrait diminuer au fur et à mesure que l’on traite des documents et que le nombre
d’alignements augmente.
Les termes étant découverts automatiquement, ils peuvent être erronés : soit la suite
de mots extraite n’a pas de sens suite à une erreur d’etiquetage (results to scientists) ou
une erreur de typographie , soit il s’agit d’une EN ou d’un terme comportant un (des)
mot(s) en plus (year conference au lieu de conference) ou une EN incomplète (international conference on field). D’autres types d’erreurs sont introduites par l’outil d’alignement
(Conferences themes qui est annoté avec Event). Ceci explique que nous n’enrichissons
pas les labels des concepts mais plutôt l’ensemble des termes associés aux concepts. Cet
ensemble peut être nettoyé par un expert de temps en temps. Celui-ci peut décider de supprimer ou modifier un terme, ou d’en faire un nouveau label du concept. Il peut également
décider de créer de nouveaux concepts, par exemple des concepts plus spécifiques.
3.2
3.2.1
Algorithme d’extraction et d’alignement
Notations et principes algorithmiques
L’algorithme Extract-Align extrait des termes et des entités nommées des documents
HTML fournis en entrée et les aligne avec des concepts de l’ontologie.
Extract-Align est appliqué à un ensemble de documents HTML qui appartiennent au
même domaine. Il prend en entrée l’ontologie O de ce domaine, un ensemble de patterns
d’entités nommées Pen , un ensemble de patterns de termes Pt , un entier T ailleP aquet
fixant le nombre de candidats à traiter par le Web, un ensemble Echecs contenant les
termes ou EN candidats non alignés et déjà traités par le Web. Cet ensemble permet de
ne pas soumettre au Web un terme ou EN candidat déjà traité et d’exploiter pour une
autre occurrence de ce candidat le résultat obtenu lors de l’appel Web.
Entrées de la fonction Extract-Align
1. l’ensemble Corpus des documents HTML à annoter ;
2. l’ontologie O représentée en OWL ;
3. les patterns de termes Pt ;
4. les patterns d’entités nommées Pen ;
5. la taille des paquets de termes T ailleP aquet ;
6. l’ensemble Echecs des termes traités et non alignés.
55
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Sorties de la fonction Extract-Align
1. l’ontologie O éventuellement enrichie ;
2. les pré-annotations des nœuds de documents représentées en RDF ;
Principales étapes de l’algorithme
• Nous commençons par un nettoyage et un étiquetage morpho-syntaxique des documents de Corpus. La fonction Extract extrait les entités nommées candidates en
utilisant les patterns lexico-syntaxiques de Pen et les garde dans l’ensemble noté
Ien . Elle extrait aussi les termes candidats en utilisant l’ensemble des patterns Pt .
Ces termes sont sauvegardés dans Ite (voir tableau 3.3).
• Chaque terme ou EN candidat est identifié par une séquence de mots numérotés en fonction de leur ordre d’apparition dans le document. Un candidat de longueur k se situant à la position i dans un document est une séquence de k mots :
tki = wi wi+1 ...wi+k−1 , où wi+j désigne le mot à la position i + j, j allant de 0 à k − 1.
Pour chaque candidat extrait n’appartenant pas à Echec, la fonction AlignT erm
ou AlignNe est appelée (voir tableaux 3.4 et 3.5 ) selon qu’il s’agisse d’un candidat
!
extrait en utilisant Pen ou Pt . Pour chaque candidat tki , les candidats inclus tki! sont
traités du plus long au plus court tel que k ! = k, k − 1, ..., 1 et i ≤ i! ≤ i + k − 1.
• Si l’appel à AlignT erm ou AlignNe réussit, Ien et It sont mises à jour en suppri!
mant l’ensemble de ses sous-termes ou des ENs qu’il contient (tki! ).
• Si l’appel à AlignT erm ou AlignNe échoue, le terme ou l’EN est ajouté à TermesASoumettreAuWeb. Lorsque la taille de l’ensemble TermesASoumettreAuWeb atteint
tailleP aquet la fonction AlignW eb est appelée (voir tableau 3.6). Cette fonction
utilise le Web pour rechercher des termes labels candidats pour les termes candidats
appartenant à TermesASoumettreAuWeb. Un terme candidat sera aligné grâce à
l’alignement en local de ses termes labels candidats. En cas d’échec, ce terme ainsi
que ses termes labels candidats trouvés par le Web sont ajoutés dans l’ensemble
Echecs. Cet ensemble sera exploité pour tenter d’aligner ce même terme pour une
autre occurrence. Le nombre d’appels au Web devrait diminuer avec le traitement
de l’ensemble des documents à annoter : (i) d’une part, les documents portent sur
le même domaine, un même terme peut donc avoir au moins une occurrence dans
le corpus, (ii) d’autre part, plus l’ontologie est enrichie plus la probabilité d’aligner
en local un terme augmente.
L’algorithme de la la fonction Extract-Align est détaillé dans le tableau 3.3. Les fonctions d’alignement des entités nommées et des termes sont respectivement présentées dans
les sections 3.2.2 et 3.2.3.
56
3.2. Algorithme d’extraction et d’alignement
Extract-Align (Ensemble<Document> Corpus, Ontologie O, Ensemble<Pattern> Pt,
Ensemble<Pattern> Pen,
Entier TaillePaquet, Ensemble<Terme> Echecs)
variables :
entier i, // le rang du terme courant
entier taille-courante, // la taille des termes de l’ensemble courant
Ensemble<Terme> Ite, //ensemble des termes
Ensemble<Terme> Ien, //ensemble des entités nommées
Ensemble<Terme> Ilen, //les termes candidats de taille len
Ensemble<Terme> TermesASoumettreAuWeb //les termes à soumettre au Web
DEBUT
Nettoyage(Corpus)
EtiquetageMorphoSyntaxique(Corpus) //avec QTag
Ien=Extract(Corpus, Pen)//extraction des entités nommées en utilisant les patterns dans Pen
Ite=Extract(Corpus, Pt)//extraction des termes candidats en utilisant les patterns dans Pt
taille-courante=tailleMaximale(Pen)
i=0
tant que (taille-courante >= 1) faire
debut
Ilen := {t dans Ien / taille(t)=taille-courante}
pour chaque (t dans Ilen) faire
debut
Ilen = Ilen - t
Si ( AlignNe(O, t, D, Echecs) == FAUX ) alors
debut
TermesASoumettreAuWeb.ajouter(t)
i= i+1
fin
Sinon
debut
Misajour(Ien, t) //supprime les occurrences de termes
Misajour(Ite, t) //incluses dans une occurrence de t
fin
Si ( i modulo TaillePaquet == 0 || Ilen est vide) alors
debut
WebAlign(O, TermesASoumettreAuWeb, Corpus, Echecs, Ien+Ite)
TermesASoumettreAuWeb = null // Réinitialisation des termes à soumettre au Web
fin
fin
taille-courante = taille-courante -1
fin
taille-courante=tailleMaximale(Pt)
i=0
tant que (taille-courante >= 1) faire
debut
Ilen := {t dans Ite / taille(t)=taille-courante}
pour chaque (t dans Ilen) faire
debut
Ilen = Ilen - t
Si ( AlignTerm(O, t, D, Echecs) == FAUX ) alors
debut
TermesASoumettreAuWeb.ajouter(t)
i= i+1
fin
Sinon
Misajour(Ite, t) //supprime les occurrences de termes
incluses dans une occurrence du terme aligné
Si ( i modulo TaillePaquet == 0 || Ilen est vide) alors
debut
WebAlign(O, TermesASoumettreAuWeb, Corpus, Echecs, Ite)
TermesASoumettreAuWeb = null // Réinitialisation des termes à soumettre au Web
fin
fin
taille-courante = taille-courante -1
fin
FIN
Table 3.3 – Algorithme d’extraction et d’alignement d’entités nommées et de termes57
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
3.2.2
Alignement local d’une entité nommée
La fonction AlignNe, présentée dans le tableau 3.4 est utilisée par Extract-Align pour
rapprocher les termes entités nommées candidats des entités nommées décrites pour
chaque concept de l’ontologie. La fonction AlignNe utilise des mesures de similarité appropriées à la comparaison d’entités nommées. L’égalité de chaîne de caractères est la
solution la plus stricte.
Entrées de la fonction AlignNe
1. l’ontologie O représentée en OWL ;
2. l’entité nommée candidat tki à aligner ;
3. le document D contenant tki ;
4. l’ensemble des termes candidats traités et non alignés Echecs.
Sorties de la fonction AlignNe
1. l’ontologie O enrichie par des triplets hasTermNe ;
2. les pré-annotations en RDF des nœuds de documents contenant tki avec les relations
hasValueInstanceOf et containInstanceOf ;
3. une valeur booléenne vrai si tki est alignée et faux sinon.
Principales étapes de l’algorithme
La fonction AlignNe procède ainsi :
• Elle vérifie si l’entité nommée tki est similaire à une entité nommée présente dans
les valeurs de hasT ermNe de l’ontologie. Si tel est le cas, elle appelle la fonction
Misajour, elle pré-annote le nœud contenant tki par les concepts correspondants, et
enrichit si nécessaire l’ontologie et retourne vrai ;
• Sinon elle cherche si tki a été soumis au Web. Si tki ∈ Echecs, elle récupère les termes
candidats du Web de tki à partir de l’ensemble Echecs.
• Si cet ensemble est non vide, elle tente d’aligner en local ces termes candidats avec
les valeurs de hasT erm, pref Label et altLabel de l’ontologie. Si cet alignement
réussit, elle appelle la fonction Misajour, elle annote le nœud contenant tki par les
concepts correspondants, ajoute le(s) termes(s) du web aux valeurs hasT erm de ces
concepts, ajoute tki aux valeurs hasT ermNe de ces concepts, et retourne vrai. Si cet
alignement échoue, elle retourne faux.
• Si cet ensemble est vide, elle appelle AlignW eb.
58
3.2. Algorithme d’extraction et d’alignement
Booléen AlignNe(Ontologie O, Entité Nommée t, Document D, Ensemble<Terme> Echecs)
variables :
Ensemble<Concept> concepts
DEBUT
si (il-existe e appartenant-à O tel-que t similaire-à e ) alors
debut
concepts = récupérer-concepts(O,t)
GénérerPréAnnotation (concepts, D, t)
retourner VRAI
fin
sinon si ( t inclus-dans Echecs) alors // égal à une entité nommée traitée et inconnue
debut
termesWeb = récupérer-termesWeb(Echecs, t)
si ( termesWeb non vide ) alors // le terme a été passé au Web
debut
concepts = Aligner (termesWeb, O)
si ( concepts non vide ) alors
debut
GénérerPréAnnotation (concepts, D, t)
EnrichirOntologie (concepts, t)
retourner VRAI
fin
fin
fin
retourner FAUX
FIN.
Table 3.4 – Fonction d’alignement local d’une entité nommée
59
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
3.2.3
Alignement local d’un terme
La fonction AlignTerm, présentée dans le tableau 3.5 est utilisée par Extract-Align
pour rapprocher les termes candidats des valeurs de hasT erm, pref Label ou altLabel
pour l’ensemble des concepts de l’ontologie. AlignTerm utilise des mesures de similarité
adaptées à la comparaison de termes ou groupes nominaux. Ces mesures s’appliquent sur
les formes lemmatisées des termes et des labels.
Entrées de la fonction AlignTerm
1. l’ontologie O représentée en OWL ;
2. le terme tki à aligner ;
3. le document D contenant tki ;
4. l’ensemble des termes traités et non alignés Echecs
Sorties de la fonction AlignTerm
1. l’ontologie O enrichie
2. les annotations en RDF des nœuds de documents contenant tki
3. une valeur booléenne vrai si tki est aligné et faux sinon.
Principales étapes de l’algorithme
La fonction AlignTerm procède ainsi :
• Elle vérifie si le terme tki est présent dans l’ontologie, c’est-à-dire égal à une valeur
des propriétés hasT erm, pref Label ou altLabel des concepts de l’ontologie. Si tel
est le cas, elle appelle la fonction Misajour, elle annote le nœud contenant tki par les
concepts correspondants et retourne vrai. Sinon, la fonction vérifie si le terme peut
être aligné à des concepts de l’ontologie via un lien de subsomption et leurs propriétés hasT erm, pref Label ou altLabel. Si cet alignement réussit, AlignT erm annote
le nœud contenant tki par les concepts trouvés, ajoute tki aux valeurs de hasT erm
de ces concepts et retourne vrai.
• Si l’alignement en local échoue, AlignT erm cherche si tki a été soumis au Web. Si
tki ∈ Echecs, elle récupère les termes du web de tki à partir de l’ensemble Echecs.
• Si l’ensemble des termes du web est non vide, AlignT erm tente d’aligner en local
ces termes candidats avec les valeurs de hasT erm, pref Label et altLabel de l’ontologie. Si cet alignement réussit, elle appelle la fonction Misajour, elle annote le
nœud contenant tki par les concepts correspondants, ajoute le(s) terme(s) web et tki
aux valeurs hasT erm de ces concepts et retourne vrai. Si cet alignement échoue,
AlignT erm retourne faux.
• Si cet ensemble est vide, elle appelle AlignW eb.
60
3.2. Algorithme d’extraction et d’alignement
Booléen AlignTerm(Ontologie O, Terme t, Document D, Ensemble<Terme> Echecs)
variables :
Ensemble<Concept> concepts
DEBUT
si (t inclus-dans O) alors //nous cherchons dans hasLabel puis hasTerm
debut
concepts = récupérer-concepts(O,t)
GénérerPréAnnotation (concepts, D, t)
retourner VRAI
fin
sinon si ( t inclus-dans Echecs) alors // égal à un terme traité et inconnu
debut
termesWeb = récupérer-termesWeb(Echecs, t);
si ( termesWeb non vide ) alors //le terme sans numéro a été passé au Web
debut
concepts = Aligner (termesWeb, O)
si ( concepts non vide ) alors
debut
GénérerPréAnnotation (concepts, D, t)
EnrichirOntologie (concepts, t)
retourner VRAI
fin
fin
fin
sinon // un nouveau terme
debut
//Calcul des concepts qui s’alignent avec t utilisant les termes et les labels
concepts = Aligner(t, O)
si ( concepts non vide ) alors
debut
GénérerPréAnnotation (concepts, D, t)
EnrichirOntologie (concepts, t)
retourner VRAI
fin
fin
retourner FAUX
FIN.
Table 3.5 – Fonction d’alignement local d’un terme
61
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
3.2.4
Alignement via le Web d’un terme candidat
A chaque fois que le nombre de termes non alignés localement, avec ou sans utilisation
de l’ensemble Echecs, atteint la taille fixée T ailleP aquet, Extract-Align fait appel à la
fonction WebAlign définie dans le tableau 3.6 pour soumettre les termes candidats non
alignés au Web. Des patterns lexico-syntaxiques de Hearst sont utilisés pour construire des
requêtes contenant l’entité nommée ou le terme non aligné localement. Ces requêtes sont
soumises à un moteur de recherche afin de trouver un ensemble de labels candidats qui
sont utilisés pour aligner le terme candidat avec les concepts de l’ontologie. Généralement,
l’alignement d’un terme long comme ”The Manhattan College Faculty”, échouera très
probablement à cause du nombre d’occurrences faible de ce terme sur le Web.
Entrées de la fonction WebAlign
1. l’ontologie O représentée en OWL
2. l’ensemble des termes T ermesASoumettreAuW eb à soumettre au Web
3. l’ensemble des termes traités et non alignés Echecs
Sorties de la fonction WebAlign
1. l’ontologie O enrichie
2. les annotations en RDF des nœuds de documents contenant tki
3. l’ensemble des candidats termes traités et non alignés ajoutés à Echecs
Principales étapes de l’algorithme WebAlign
La fonction WebAlign procède ainsi :
• La fonction cherche des labels de l’entité nommée ou du terme tki ∈ TermesASoumettreAuWeb sur le Web.
• Les labels trouvés pour tki sont à aligner en local avec avec les valeurs de hasT erm,
pref Label et altLabel de l’ontologie.
• Si cet alignement réussit, la fonction appelle Misajour, elle annote le nœud contenant tki , elle ajoute tki et le(s) label(s) aux termes des concepts de l’ontologie (hasT erm).
Les labels du Web étant extraits automatiquement, ils sont considérés comme des
termes.
• Sinon, elle ajoute le terme et les labels trouvés à Echecs.
Les fonctions Aligner, Annoter et Misajour
Les fonctions présentées dans les sections précédentes font appel à des fonctions Aligner, Annoter et Misajour. Elles sont données dans le tableau 3.7.
62
3.2. Algorithme d’extraction et d’alignement
WebAlign (Ontologie O, Ensemble<Terme> TermesASoumettreAuWeb, Ensemble<Pattern> P,
Ensemble <Document> Corpus, Ensemble<Terme> Echecs, Ensemble<Terme> I)
variables : Terme t;
Ensemble<Terme> termesWeb;
Ensemble<Concept> concepts;
DEBUT
pour chaque ( t dans TermesASoumettreAuWeb ) faire
debut
//recherche de termes pour t sur le Web
termesWeb = search(t);
//Alignement entre les termes du Web et les labels et termes des concepts de O
concepts = Aligner(O,termesWeb,type(P));
Si (concepts non vide) alors
debut
GénérerTripletsRDF //Annoter(O, concepts, Pen, D, t)
EnrichirOntologie
Misajour(I, t)
fin
sinon
Echecs.ajouter(t, termesWeb);
fin
FIN.
Table 3.6 – Fonction WebAlign : alignement utilisant le Web
La fonction Annoter génère les triplet RDF qui décrivent les annotations du nœud
contenant le terme que nous lui donnons en argument. Aussi elle ajoute le terme candidat
aux entités nommées ou aux termes suivant le type de pattern qui a permis de l’extraire,
ajoute les termes provenant du Web aux termes et ainsi enrichie l’ontologie.
La fonction Aligner rapproche un terme ou une entité nommée avec les labels et les
termes des concepts de l’ontologie. Elle peut utiliser des mesures de similarité simples
comme celle du cosinus, celle de Jaccard [TSK05] ou de Lin [Lin98]. Elle peut aussi
implémenter des outils existants comme Taxomap [HZSR08].
La fonction Misajour supprime toutes les entités nommées et termes inclus dans une
entité nommée ou terme aligné. Si tki est aligné, tous les tjp appartenant à l’ensemble
{tjp , p = i + q, q ∈ [0, k − 1]etj ∈ [1, k − q]} sont supprimés de l’ensemble des termes.
3.2.5
Illustration
En guise d’illustration, considérons le fragment de document HTML du tableau 3.8.
L’extrait d’ontologie que nous considérons dans cette illustration est décrit dans la
figure 3.3.
Nous supposons que nous faisons appel à l’algorithme Extract-Align pour la première
fois et donc Echecs est vide.
Nous étiquetons morpho-syntaxiquement ce fragment de documents afin de pouvoir
lui appliquer les patterns de localisation des entités nommées et des termes. Nous commençons par les entités nommées.
63
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Aligner(Ensemble<Label> set, Ontologie O)
DEBUT
rapprocher chaque élément de set avec les labels,
les termes des concepts de O
FIN.
Misajour(Ensemble<Terme> I, Terme terme)
DEBUT
pour chaque (t dans I) faire
debut
si ( terme contient t ) alors //contient avec numéros
I.enlever(t);
fin
FIN.
Table 3.7 – Les fonctions Aligner, Annoter et Misajour
CNRIA’s second edition is organised by FST and SAT faculties and is about :
≺ul≺li-distributed systems area≺/li≺li-knowledge management≺/li≺/ul≺pThe conference is located at Gaston Berger University. The invited speaker at the
conference Abdourahmane FAYE works on project management at Microsoft SWITZERLAND. Microsoft was implanted in ...
≺/pTable 3.8 – Fragment de document HTML
64
3.2. Algorithme d’extraction et d’alignement
.$/+.-01&'-%&%4%&"'24'&=+,-&%96
5$-(+,78+016
5$-(+,7016
.$/+.-01$,+$2%5+7+6
5$-(+,7016
>?!.&$%&"'
.$/+.-01#"'?+,+'#+2@:",3-5")6
5$-(+,7016
5$-(+,78+016
(")&#
5$->?!.$%&"'
A=+'%
5$-!"#$%&"'
*+,-"'
!"#$%&"'
.$/+.-01#&%96
5$-(+,7016
5$-(+,78+01-:&%;+,.$'<6
.$/+.-01)+,-"'2-)+$3+,2$4%5",6
5$-(+,7016
5$-(+,78+016
Figure 3.3 – Extrait de O utilisé dans l’illustration
65
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Traitement des entités nommées
Les patterns d’entités nommées (tableau 3.3) permettent d’extraire les entités nommées présentées dans le tableau 3.9.
Taille 1 (I1 )
FST7 ,
SAT9 ,
Gaston22 ,
Berger23 ,
Microsoft38 ,
SWITZERLAND39 ,
Microsoft40
Taille 2 (I2 )
Abdourahmane31
Gaston22 Berger23
FAYE32 ,
Taille 3 (I3 )
Gaston22
Berger23
University24
Table 3.9 – Résultat de l’extraction des entités nommées
Nous traitons ces entités nommées des plus longues aux plus courtes. Nous commençons par I3 qui contient un seul élément t322 qui est ”Gaston22 Berger23 University24 ”.
Extract-Align fait appel à la fonction AlignNe qui vérifie si t322 est dans les entités nommées de l’ontologie. Comme ce n’est pas le cas, elle vérifie si ”Gaston Berger University”
est dans Echecs (entités nommées traitées et non alignées). Comme ce n’est pas le cas, elle
retourne FAUX à la fonction Extract-Align qui insère t322 dans TermesASoumettreAuWeb.
I3 devient vide. La fonction Extract-Align fait appel à WebAlign qui construit les requêtes
suivantes et les soumet au moteur de recherche Google.
1. ”such as Gaston Berger University”
2. ”including Gaston Berger University”
3. ”, especially Gaston Berger University”
4. ”Gaston Berger University or other”
5. ”Gaston Berger University and other”
6. ”Gaston Berger University is”
La dernière requête renvoie les extraits suivants :
1. ... the Dakar Cheikh Anta Diop University ; this university, Gaston Berger University, is located in Saint-Louis. There are also other private universities : ... [0.294]
2. GESTES, a research institute within Gaston Berger University, is conducting an
assessment of Senegalese women’s current land rights, practices and .. [0.185]
3. 10 Jul 2009 ... We can tell you that Gaston Berger University is a . . . . . . College/University . . . Employer. If you know more about Gaston Berger University, ... [0.196]
66
3.2. Algorithme d’extraction et d’alignement
4. In sum, Gaston Berger University is a young, dynamic, and forward-looking institution that has a modern, progressive philosophy and approach which affords ... [0.229]
5. ...
Nous choisissons les dix meilleurs extraits. Nous avons indiqué après chaque extrait la
mesure du cosinus calculée entre le vecteur de mots de l’extrait et le vecteur de mots du
document en entrée 3.8.
Ces extraits nous permettent de découvrir les labels college, university, institution qui
s’alignent avec les labels university et institution du concept Affiliation. Nous en déduisons
que t322 est une instance du concept Affiliation.
L’entité nommée ”Gaston Berger University” est ajouté au hasTermNe de Affiliation
et les triplets de pré-annotation sont générés.
La fonction Misajour appliquée à t322 et l’ensemble des termes et entités nommées
extraites supprime les entités nommées ”Gaston22 Berger23 ”, ”Gaston22 ” et ”Berger23 ” et
le terme ”University24 ” de I2 et I1 . Les triplets de pré-annotation sont générés.
Nous traitons ensuite les entités nommées de taille deux (I2 ). La seule entité nommée
qu’il contient t231 qui est ”Abdourahmane31 FAYE32 ” est soumis aux même processus que
t322 . t231 n’est pas dans l’ontologie mais les labels du Web nous permettent de l’aligner avec
le concept Person. L’entité nommée ”Abdourahmane Faye” est ajouté au hasTermNe du
concept Person et les triplets sont générés comme pour le traitement de t322 .
Enfin nous traitons l’ensemble des entités nommées de taille une (I1 ). ”FST7 ” et ”SAT9 ”
n’ont pu être alignées ni en local, ni avec le Web qui n’a pas permis d’obtenir de labels.
Nous les sauvegardons dans l’ensemble Echecs.
”Microsoft38 ” n’est ni dans l’ontologie O, ni dans Echecs.WebAlign permet d’obtenir
les labels society, application et site qui ne permettent pas de l’aligner avec un concept de
notre ontologie. L’entité nommée ”Microsoft” et ses labels sont sauvegardés dans Echecs.
L’entité nommée ”SWITZERLAND39 ” est directement alignée avec le concept Location
car elle est déjà présente dans l’ontologie. Nous générons les triplets de pré-annotation.
”Microsoft40 ” n’est pas dans l’ontologie mais est présente dans Echecs. Les labels obtenus lors de son précédent traitement ne permettent toujours pas de l’aligner avec un
concept de notre ontologie.
Après le traitement des entités nommées, l’ontologie de la figure 3.3 enrichie devient
celle présentée dans la figure 3.4.
Les triplets de pré-annotation sont présentés dans le tableau 3.10.
L’ensemble Echecs contient maintenant (FST,{}), (SAT,{}) et (Microsoft, {site, society, application}).
Traitement des termes
Les patterns de termes présentés dans Extract-Align (tableau 3.3), permettent d’extraire les termes présentés dans le tableau 3.11. Le terme ”University24 ” a été supprimé
des termes de longueur un car il est contenu dans l’entité nommée ”Gaston22 Berger23
67
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
,$-),+./&'+%&%3%&"'13'&@)*+&%=5
4$+6)*78)./A$+%"';B)*C)*;D'&@)*+&%=5
4$+6)*7./5
9E!,&$%&"'
,$-),+./#"'E)*)'#)1;>"*2+4"05
4$+6)*7./5
4$+6)*78)./5
F@)'%
,$-),+./$*)$1%4)7)5
4$+6)*7./5
6"0&#
4$+9E!,$%&"'
4$+!"#$%&"'
()*+"'
!"#$%&"'
,$-),+./#&%=5
4$+6)*7./5
4$+6)*78)./+>&%?)*,$':5
,$-),+./0)*+"'1+0)$2)*1$3%4"*5
4$+6)*7./5
4$+6)*78)./9-:"3*$47$');<$=)5
Figure 3.4 – Ontologie après traitement des entités nommées
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”Gaston Berger University”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Affiliation)).
(uri(Affiliation), hasTermNe, ”Gaston Berger University”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”Abdourahmane FAYE”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Person)).
(uri(Person), hasTermNe, ”Abdourahmane FAYE”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”SWITZERLAND”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Location)).
(uri(Location), hasTermNe, ”SWITZERLAND”)
Table 3.10 – Triplets de pré-annotation résultant du traitement des entités nommées
Taille 1 (I1 )
edition3 ,
faculties10 ,
systems13 ,
area14 ,
knowledge15 , management16 ,
conference18 ,
speaker27 ,
project35 , management36
Taille 2 (I2 )
distributed12
systems13 ,
knowledge15 management16 ,
invited26 speaker27 , project35
management36
Table 3.11 – Extraction des termes
68
Taille 3 (I3 )
distributed12
systems13 area14
3.2. Algorithme d’extraction et d’alignement
University24 ” traitée et alignée précédemment. Nous traitons les termes, des plus longs
aux plus courts.
Soit I3 les termes de taille trois. Extract-Align choisit t312 ou ”distributed12 systems13
area14 ”. Elle fait appel à AlignTerm qui vérifie que t312 n’est pas inclus dans les termes
de l’ontologie O. Ensuite elle vérifie que ”distributed systems area” n’est pas inclus dans
Echecs, les termes déjà soumis au Web. AlignTerm tente maintenant d’aligner ”distributed
systems area” avec les labels puis les termes des concepts de l’ontologie. t312 s’aligne avec
le label area du concept Topic. Nous en déduisons que t312 est une instance du concept
Topic.
Le terme ”distributed systems area” est ajouté au hasTerm du concept Topic et nous
obtenons les triplets de pré-annotation dans le tableau 3.12
AlignTerm renvoie VRAI.
Extract-Align applique la fonction Misajour à t312 et l’ensemble des termes extraits.
Misajour supprime les termes ”distributed12 systems13 ”, ”systems13 ” et ”area13 ”.
I3 est vide et Extract-Align passe à I2 . Le terme t215 ou ”knowledge15 management16” est
soumis à TermAlign. Cette dernière vérifie que t215 n’est pas dans les termes de l’ontologie
O et que ”knowledge management” n’a pas été soumis au Web, c’est à dire n’est pas dans
Echecs. AlignTerm tente maintenant d’aligner ”knowledge management” avec les labels
puis avec les termes des concepts de O. t215 ne s’alignant pas avec un label ou terme, il est
gardé dans TermesASoumettreAuWeb.
Ensuite le terme t226 ou ”invited26 speaker27 ” est soumis à TermAlign qui vérifie que t226
n’est pas dans les termes de l’ontologie O et que ”invited speaker” n’a pas été soumis au
Web autrement dit n’est pas dans Echecs. AlignTerm tente maintenant d’aligner ”invited
speaker” avec les labels puis avec les termes des concepts de O et trouve le concept Person.
Le terme ”invited speaker” est ajouté au hasTerm du concept Person et nous obtenons
les triplets comme ceux obtenus avec le terme t312 ou ”distributed12 systems13 area14 ”. La
fonction retourne VRAI.
La fonction Misajour appliquée à t226 et l’ensemble des termes extraits supprime le
terme ”speaker27 ”.
Ensuite Extract-Align soumet le terme t235 ou ”project35 management36” à TermAlign
qui vérifie que t235 n’est pas dans les termes de O et que ”project management” n’a pas
été soumis au Web autrement dit n’est pas dans Echecs. AlignTerm tente maintenant
d’aligner ”project management” avec les labels puis avec les termes des concepts de O et
trouve le concept Topic.
Le terme ”project management” est ajouté au hasTerm du concept Topic et nous
obtenons les triplets comme ceux obtenus avec le terme t226 ou ”invited26 speaker27 ”. La
fonction retourne VRAI.
La fonction Misajour appliquée à t235 et l’ensemble des termes extraits supprime les
termes ”project35 , ”management36” et ne supprime pas ”management16” qui n’est pas inclus
dans la même occurrence que le terme t235 .
I2 devient vide et la fonction Extract-Align applique WebAlign sur TermesASoumettreAuWeb qui contient un seul terme ”knowledge15 management16”. WebAlign construit
les requêtes qui sont posées au moteur de recherche Google qui renvoie des extraits de
documents. Ces extraits permettent d’avoir les labels theme, system et aim qui s’alignent
avec les labels du concept Topic de O.
69
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
Le terme ”knowledge management” est ajouté au hasTerm du concept Topic et nous
obtenons les triplets comme ceux obtenus avec le terme t226 ou ”invited26 speaker27 ”. La
fonction retourne VRAI.
Extract-Align applique la fonction Misajour à t215 et l’ensemble des termes extraits.
Cette dernière supprime les termes ”knowledge15” et ”management16”.
Nous passons maintenant aux termes de taille une I1 . Extract-Align applique la fonction AlignTerm au terme t118 ou ”conference18”. AlignTerm vérifie que conference est un
label du concept Event. Nous obtenons les triplets comme ceux obtenus avec le terme t226
ou ”invited26 speaker27”. La fonction retourne VRAI.
Extract-Align applique la fonction AlignTerm au terme t13 ou ”edition3 ”. AlignTerm
vérifie que edition n’est inclus ni dans les labels, ni dans les termes des concepts de
l’ontologie O. AlignTerm tente de l’aligner avec ces labels et termes. t13 ne s’alignant pas
avec un label ou terme, il est gardé dans TermesASoumettreAuWeb.
Extract-Align applique la fonction AlignTerm au terme t110 ou ”faculty10 ”. AlignTerm
vérifie que ”faculty” n’est inclus ni dans les labels, ni dans les termes des concepts de
l’ontologie O. AlignTerm tente de l’aligner avec ces labels et termes. t110 s’aligne avec un
label du concept Location.
Le terme ”faculty” est ajouté au hasTerm du concept Location et AlignTerm génère
les triplets avant de retourner VRAI.
Maintenant que I1 est vide, Extract-Align fait appel à WebAlign. Cette dernière cherche
des labels pour t13 sur le Web en construisant des requêtes avec les patterns de Hearst
[Hea92]. Ces requêtes sont posées au moteur de recherche Google qui retourne des extraits
de documents. Ces extraits sont comparés avec le fragment de document et des labels sont
extraits. Cependant ces labels ne permettent pas de rapprocher t13 à un concept de O. Nous
gardons ”edition” et ses labels dans Echecs.
Après le traitement des termes l’ontologie devient celle de la figure 3.5.
Les triplets de pré-annotation sont présentés dans le tableau 3.12.
L’ensemble Echecs contient maintenant (FST,{}), (SAT,{}) et (Microsoft, {site, society, application}), et (edition,{l i , i=1,n}).
Conclusion
Dans ce chapitre, nous avons présenté notre approche Extract-Align d’extraction et
d’alignement qui permet : (i) d’extraire des entités nommées et des termes en utilisant des
patterns d’extraction indépendants du domaine, (ii) de les aligner avec des concepts de
l’ontologie soit localement lorsqu’ils sont similaires à un terme ou une EN de la composante
lexicale, soit en utilisant des termes extraits de documents du Web, (iii) d’enrichir l’ontologie avec les entités nommées et les termes alignés en utilisant les propriétés hasT erm
et hasT ermNe, (iv) enfin, de pré-annoter les nœuds de document où ces termes ont été
localisés en utilisant les propriétés containInstanceOf et hasV alueInstance.
Dans le chapitre suivant, nous présentons les règles d’annotation définitive des nœuds qui
prennent en compte à la fois les pré-annotations des nœuds de document et leur voisinage
structurel.
70
3.2. Algorithme d’extraction et d’alignement
,$-),+./&'+%&%3%&"'13'&8)*+&%>5
4$+6)*7;)./B$+%"':C)*D)*:E'&8)*+&%>5
4$+6)*7./5
<?!,&$%&"'
,$-),+./#"'?)*)'#)1:@"*2+4"05
4$+6)*7./#"'?)*)'#)5
4$+6)*7;)./5
G8)'%
,$-),+./$*)$1%4)7)5
4$+6)*7./9&+%*&-3%)9:+>+%)7:$*)$1:
0*"F)#%:7$'$D)7)'%1:2'"@,)9D):
7$'$D)7)'%5
6"0&#
4$+<?!,$%&"'
4$+!"#$%&"'
()*+"'
!"#$%&"'
,$-),+./#&%>5
4$+6)*7./?$#3,%>5
4$+6)*7;)./+@&%A)*,$'95
,$-),+./0)*+"'1+0)$2)*1$3%4"*5
4$+6)*7./&'8&%)9:+0)$2)*5
4$+6)*7;)./<-9"3*$47$'):=$>)5
Figure 3.5 – Ontologie après traitement des termes
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”distributed systems area”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Topic)).
(uri(Affiliation), hasTerm, ”distributed systems area”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”project management”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Topic)).
(uri(Affiliation), hasTerm, ”project management”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”knowledge management”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Topic)).
(uri(Affiliation), hasTerm, ”knowledge management”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”invited speaker”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Person)).
(uri(Affiliation), hasTerm, ”invited speaker”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”faculty”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Location)).
(uri(Affiliation), hasTerm, ”faculty”)
(http ://.../doc.html/body/.../ul/p, hasValueInstance, ”conference”) ;
(http ://.../doc.html/body/.../ul/p, containInstanceOf, uri(Event)).
(uri(Affiliation), hasTerm, ”conference”)
Table 3.12 – Triplets de pré-annotation résultant du traitement des termes
71
Chapitre 3. EXTRACTION, ALIGNEMENT DES ENTITÉS NOMMÉES ET DES TERMES
72
Chapitre 4
ANNOTATION DES DOCUMENTS
ET INTERROGATION
Sommaire
4.1
Règles d’annotation . . . . . . . . . . . . . . . . .
4.1.1 Notations . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Génération du typage des nœuds . . . . . . . . .
4.1.3 Génération de relations de voisinage entre nœuds
4.1.4 Exemple d’application des règles d’annotations .
4.2 Interrogation des annotations . . . . . . . . . . .
4.2.1 Définitions préliminaires . . . . . . . . . . . . . .
4.2.2 Types de requête utilisateur . . . . . . . . . . . .
4.2.3 SHIRI-Querying . . . . . . . . . . . . . . . . . .
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
74
74
75
77
77
80
80
80
82
85
Introduction
L’objectif de SHIRI-Annot est d’annoter les nœuds de documents conformément au
modèle d’annotation que nous avons défini. Nous avons défini un ensemble de règles déclaratives exprimées en logique du premier ordre pour générer l’ensemble des annotations.
Ces règles exploitent la sémantique associée aux nœuds par SHIRI-Extract et leur proximité structurelle.
L’annotation d’un nœud est définie en fonction de la présence d’un ou de plusieurs
termes ou entités nommées alignés dans ce nœud et des concepts avec lesquels ils ont été
alignés. Un nœud annoté est soit une instance d’un ou de plusieurs concepts ontologiques,
soit une instance de P artOf Speech ou de SetOf c (SetOf Concept).
Les règles génèrent les annotations de la relation neighborOf entre les nœuds en tenant
compte de la longueur du chemin les reliant dans l’arbre repésentant le document et de
leur sémantique.
73
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
La base d’annotations RDF ainsi construite peut être interrogée en utilisant des requêtes SPARQL. Nous pésentons un ensemble de requêtes types reformulées avec les
métadonnées du modèle d’annotation, à partir d’une requête utilisateur exprimée avec
les métadonnées de l’ontologie. Ces reformulations peuvent être construites en appliquant
différentes fonctions de transformations. Elles permettent d’atteindre tous les nœuds réponses triées selon le niveau d’agrégation des termes ou entités nommées repérés dans ces
nœuds.
Dans ce chapitre, nous commençons par présenter les règles d’annotation des nœuds et
de la relation neighborOf . Ensuite, nous présentons l’interrogation des annotations dans
le module SHIRI-Querying.
4.1
Règles d’annotation
L’objectif des règles d’annotation est de générer un ensemble d’annotations sémantiques conforme au modèle d’annotation à partir des pré-annotations utilisant les propriétés containInstanceOf et hasV alueInstance produites par SHIRI-Extract.
Nous présentons quelques notations avant de présenter les règles d’annotation permettant de typer les nœuds et d’annoter la relation neighborOf entre les nœuds.
4.1.1
Notations
Les règles utilisent les propriétés RDFS suivantes que nous exprimons en logique des
prédicats. Soient c ∈ CO et r ∈ RO :
• domain(r, c) est vrai si c est un domaine de r.
• range(r, c) est vrai si c est un co-domaine de r.
• subClassOf (c, c!) est vrai si c! subsume ou est équivalent à c.
Pour plus de clarté dans l’expression des règles nous définissons les prédicats unaires
suivants :
• singleT erm(n) est vrai pour tout nœud n ne contenant qu’un seul terme ou une
seule entité nommée.
• singleConcept(n) est vrai pour tout nœud n contenant un ou plusieurs termes ou
entités nommées qui sont uniquement alignés à des concepts comparables.
• path(ni , nj ) est vrai si la longueur du chemin dans l’arbre DOM entre le nœud ni
et le nœud nj est inférieure à une valeur d.
74
4.1. Règles d’annotation
4.1.2
Génération du typage des nœuds
Le choix de la métadonnée à utiliser pour l’annotation d’un nœud dépend de la présence
d’un ou plusieurs termes ou entités nommées dans ce nœud. Ces métadonnées sont définies
dans le modèle d’annotation (Figure 2.3) : Concept, P artOf Speech et SetOf c.
Présentation des patterns de règles
Les règles de typage des nœuds permettent d’annoter un nœud soit comme une instance d’un concept du domaine (CO ), soit comme une instance d’un concept spécifique à
la tâche d’annotation (CS ) exprimant un type d’agrégation structurelle.
1. Si un nœud n ne contient qu’un seul terme, ou une seule entité nommée, aligné à
un concept c ∈ CO , ce nœud est typé par c.
singleT erm(n) ∧ containInstanceOf(n, c) → type(n, c)
Exemple :
singleT erm(http : //www..../cf p.html/body/p) ∧
containInstanceOf(http : //www..../cf p.html/body/p, P erson)
→ type(http : //www..../cf p.html/body/p, P erson)
Notons qu’un même nœud peut être typé par plusieurs concepts non comparables si
le seul terme ou la seule entité nommée qu’il contient est alignée à plusieurs concepts
non comparables. Dans ce cas, ∃ci , cj ci /= cj tel que containInstanceOf(n, ci ) ∧
containInstanceOf(n, cj ) ∧ singleT erm(n)
2. Rechercher des instances en utilisant leur label est particulièrement fréquent en recherche d’information. Nous générons les labels des instances de concepts nommés
afin de pouvoir exploiter cette propriété dans la requête de l’utilisateur.
Si un nœud n est typé par un concept c, si n est relié par la propriété hasValueInstance à un littéral val tel que val appartient à l’ensemble des valeurs de la propriété
hasT ermNe du concept c, nous inférons la propriété label entre n et val.
type(n, c) ∧ hasT ermNe(c, val) ∧ hasV alueInstance(n, val) → label(n, val)
Exemple :
type(http : //www..../cf p.html/body/p), P erson)∧
hasT ermNe(P erson, ”John W oe”)∧
hasV alueInstance(http : //www..../cf p.html/body/p, ”John W oe”)
→ label(http : //www..../cf p.html/body/p, ”John W oe”)
3. Si un nœud n contient plusieurs termes ou entités nommées de plusieurs concepts
non comparables, alors ce nœud est typé par la métadonnée P artOf Speech.
75
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
containInstanceOf(n, c) ∧ ¬singleT erm(n) ∧ ¬singleConcept(n)
→ type(n, P artOf Speech)
Exemple :
containInstanceOf(http : //www..../cf p.html/body/p, P erson)∧
¬singleT erm(http : //www..../cf p.html/body/p)∧
¬singleConcept(http : //www..../cf p.html/body/p)
→ type(http : //www..../cf p.html/body/p, P artOf Speech)
Tout nœud de type P artOf Speech est indexé en utilisant la relation isIndexedBy
par tous les concepts c reliés à ce nœud par la relation containInstanceOf.
type(n, P artOf Speech) ∧ containInstanceOf(n, c) → isIndexedBy(n, c)
isIndexedBy(n, c) ∧ subClassOf (c, c!) → isIndexedBy(n, c! )
Exemple :
type(http : //www..../cf p.html/body/p, P artOf Speech)∧
containInstanceOf(http : //www..../cf p.html/body/p, P erson)
→ isIndexedBy(http : //www..../cf p.html/body/p, P erson)
4. Nous générons les instances de SetOf Concept pour les nœuds susceptibles de représenter un ensemble d’instances de type comparables. Si un nœud contient plusieurs
termes ou entités nommées et si celles-ci sont uniquement alignées à des concepts
comparables, ce nœud est typé par la métadonnée s qui est décrite dans la propriété
hasSet du concept ci le concept ancêtre de cet ensemble de concepts.
containInstanceOf(n, ci ) ∧ singleConcept(n) ∧ ¬singleT erm(n)
∧ ¬∃ cj (containInstanceOf(n, cj )∧subClassOf (ci , cj ))∧hasSet(ci , s) → type(n, s)
Exemple :
Soit un noeud http : //www..../cf p.html/body/p qui contient uniquement une entité nommée alignée au concept ComiteeMember et une entité nommée alignée au
concept P erson , et ComiteeMember est une sous-classe de P erson, alors la règle
va typer le nœud par SetOf P erson.
containInstanceOf(http : //www..../cf p.html/body/p, P erson) ∧
singleConcept(http : //www..../cf p.html/body/p)
∧¬singleT erm(http : //www..../cf p.html/body/p)∧!cj (containInstanceOf(http :
//www..../cf p.html/body/p, cj ) ∧ subClassOf (P erson, cj ))
∧ hasSet(P erson, SetOf P erson) → type(n, SetOf P erson)
76
4.1. Règles d’annotation
4.1.3
Génération de relations de voisinage entre nœuds
Par ailleurs, les règles d’annotation exploitent la présence d’instances susceptibles de
partager une relation sémantique dans des nœuds voisins pour générer des annotations
reliant ces deux nœuds par la propriété neighborOf définie dans le modèle d’annotation.
La propriété neighborOf relie deux nœuds ni et nj voisins tel que ni contient un terme
ou une entité nommée aligné à un concept ci et tel que nj contient un terme ou une entité
nommée aligné à un concept cj et tel qu’il existe une relation r dans l’ontologie pour
laquelle domain(r, ci ) et range(r, cj ).
Les nœuds peuvent être de type P artOf Speech (indexés par ci ou cj ) ou SetOf Concept
(SetOf ci ou SetOf cj ) ou Concept (ci ou cj ).
ni /= nj ∧ containInstanceOf(ni , ci ) ∧ containInstanceOf(nj , cj ) ∧ domain(r, ci )
∧ range(r, cj ) ∧ path(ni , nj ) → neighborOf (ni , nj )
Exemple :
Soit deux nœuds n1 =http ://www.cfp.html/body/p, et n2 = http ://www.cfp.html/body/p
/ul/li voisins (distance ≤ d) typés respectivement par P artOf Speech indexé par Event
et T opic et par Location.
n1 /= n2 ∧containInstanceOf(n1 , Event)∧ containInstanceOf(n2 , Location)∧domain(hasLocation, Event) ∧ range(hasLocation, Location) ∧ path(n1 , n2 ) → neigborOf (n1 , n2 )
4.1.4
Exemple d’application des règles d’annotations
L’application des règles à l’ensemble des pré-annotations représentées dans l’exemple
décrit dans la figure 4.1 génère les annotations représentées dans la figure 4.2. Nous
supposons que la distance d est fixée à 3.
Dans le document Document 1, les deux nœuds contiennent des termes ou des entités
nommées associés à des concepts différents tels que T opic, Date, Event ou Location. Ils
sont donc considérés comme des instances de P artOf Speech et indexés par ces concepts.
De plus, ces deux nœuds sont considérés comme deux nœuds voisins (reliés par neighborOf ) : ils contiennent des termes de concepts qui sont domaine et co-domaine d’une
relation sémantique de l’ontologie. Par exemple, l’entité nommée ”ESW C2009” associée
à Event peut être reliée à ”Heraklion” par la relation sémantique hasLocation.
Dans le document Document 2, le premier nœud ne contient qu’une entité nommée associée au concept Event. Ce nœud est donc un Event qui a pour label ”12th International
Conference on Data Warehousing and Knowledge Discovery”. Le deuxième nœud contient
deux entités nommées ”Bilbao” et ”Spain” associées au concept Location. Ce nœud est
donc un SetOf Location.
77
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
Figure 4.1 – Extraction des termes et entités nommées et leur alignement avec des
concepts de l’ontologie
78
4.1. Règles d’annotation
Figure 4.2 – Annotation des nœuds de documents comportant des termes ou entités
nommées extraits et alignés avec des concepts de l’ontologie
79
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
4.2
Interrogation des annotations
SHIRI-Querying (cf. Figure 2.7) est le module qui permet de traiter les requêtes
pour interroger la base d’annotations. Ce module exploite le modèle d’annotation pour
construire, trier et exécuter les reformulations à partir d’une requête utilisateur exprimée à l’aide des métadonnées définies dans l’ontologie. Il utilise le langage SPARQL pour
interroger la base des annotations RDF.
4.2.1
Définitions préliminaires
Nous introduisons tout d’abord quelques notions préliminaires. Les graphes RDF et
les patrons de graphe élémentaires sont définis comme suit [W3Cb] :
Graphe RDF. Soient les ensembles I, B et L (respectivement des IRIs 7 , nœuds et Litéraux) infinis et disjoints deux à deux. Un graphe RDF est un ensemble de triplets RDF
(s, p, o) ∈ (I ∪ B) × I × (I ∪ B ∪ L) où s est le sujet, p le prédicat et o l’objet.
Patrons de graphe élémentaires. Soit l’ensemble de variables V disjoint des ensembles
I, B, et L. Un patron de triplet est un triplet (s, p, o) ∈ (I ∪ V ) × (I ∪ V ) × (I ∪ V ∪ L). Un
patron de graphe élémentaire P est un ensemble de patrons de triplets. Dans un triplet,
une variable est précédée par un point d’interrogation (e.g. ?v).
Requête SPARQL. Une requête SPARQL est construite à partir de patrons de graphe
élémentaires en utilisant des constructeurs, tels que union, des clauses, telles que OPTIONAL et des filtres. Un filtre est une expression booléenne qui permet de contraindre
l’ensemble des réponses à la requête. Dans ce qui suit, nous considérons uniquement l’égalité et l’inclusion entre variables et littéraux d’un filtre.
4.2.2
Types de requête utilisateur
Dans notre approche, une requête utilisateur est définie par le quadruplet (P, S, F,
D) où :
• P est un patron de graphe élémentaire conforme au modèle d’annotation A.
• S est l’ensemble des variables utilisées dans la clause SELECT.
• F est un filtre.
• D est l’ensemble des triplets RDF de la base d’annotations à interroger.
Une requête peut être formulée différemment selon le degré d’agrégation des termes
et des entités nommées repérés dans les nœuds de document que l’on souhaite atteindre.
7. Internationalized Resource Identifier
80
4.2. Interrogation des annotations
Soit une requête utilisateur qui cherche ”les noms des conférences pour lesquels l’un
des thèmes est Semantic Web” sur les annotations décrites dans la figure 4.2.
Requête 1. L’une des formulations possible en SPARQL de cette requête est de rechercher les nœuds qui sont instances de Event et de T opic tels que le nœud T opic
contienne le litéral ”Semantic Web”. Cette requête q1 est définie par (P1 ,F1 ,S1 ,D) où :
: { (?conf, rdf : type, Event), (?t, rdf : type, T opic),
(?conf, hasT opic, ?t), (?conf, label, ?cName)
(?t, hasT ext, ?v) }
F1 : regex(?v, ”Semantic W eb”)
S1 : { ?cName}
D
: Ensemble des annotations de Document 1 et Document 2.
Dans la figure 4.2, cette requête q1 n’obtient pas de réponse.
P1
Requête 2. Une autre formulation possible de la requête est de rechercher les nœuds
qui sont instances de Event et de T opic, qui ne sont pas liés par la relation hasT opic
mais pour lesquelles il existe une relation de voisinage. Le nœud instance de T opic
contient le litéral ”Semantic Web”. Cette requête q2 est définie par (P2 ,F2 ,S2 ,D) où :
: { (?conf, rdf : type, Event), (?t, rdf : type, T opic),
(?conf, neighborOf, ?t), (?conf, label, ?cName)
(?t, hasT ext, ?v) }
F2 : regex(?v, ”Semantic W eb”)
S2 : { ?cName}
D
: Ensemble des annotations de Document 1 et Document 2.
Dans la figure 4.2, cette requête q2 obtient la réponse : ”12th International Conference on Data Warehousing and Knowledge Discovery”.
P2
Requête 3. Une autre formulation possible de la requête est de rechercher les nœuds
qui sont instances de Event et de SetOf T opic pour lesquelles il existe une relation
de voisinage. Le nœud instance de SetOf T opic contient le litéral ”Semantic Web”.
Cette requête q3 est définie par (P3 ,F3 ,S3 ,D) où :
: { (?conf, rdf : type, Event), (?t, rdf : type, SetOf T opic),
(?conf, neighborOf, ?t), (?conf, label, ?cName)
(?t, hasT ext, ?v) }
F3 : regex(?v, ”Semantic W eb”)
S3 : { ?cName}
D
: Ensemble des annotations de Document 1 et Document 2.
Dans la figure 4.2, cette requête q3 n’obtient pas de réponse.
P3
Requête 4. Une autre formulation possible de la requête est de rechercher les nœuds
instances de P artOf Speech indexé par Event, T opic et qui contient le littéral ”Se81
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
mantic Web”. Cette requête q4 est définie par (P4 ,F4 ,S4 ,D) où :
: { (?p, rdf : type, P artOf Speech), (?p, isIndexedBy, Event),
(?p, isIndexedBy, T opic), (?p, hasT ext, ?v) }
F4 : regex(?v, ”Semantic W eb”)
S4 : { ?v}
D
: Ensemble des annotations de Document 1 et Document 2.
Dans la figure 4.2, cette requête q4 obtient la réponse : ”The 6th Annual European
Semantic Web Conference ... collocated workshops”.
P4
Requête 5. Une autre formulation possible de la requête est de rechercher deux nœuds
voisins instances de P artOf Speech, l’un indexé par Event, et l’autre par T opic qui
contient le littéral ”Semantic Web”. Cette requête q5 est définie par (P5 ,F5 ,S5 ,D) où :
: { (?p1, rdf : type, P artOf Speech), (?p1, isIndexedBy, Event),
(?p2, rdf : type, P artOf Speech),(?p2, isIndexedBy, T opic),
(?p1, neighborOf, ?p2), (?p1, hasT ext, ?v1), (?p2, hasT ext, ?v2) }
F5 : regex(?v2, ”Semantic W eb”)
S5 : { ?v1}
D
: Ensemble des annotations de Document 1 et Document 2.
Dans la figure 4.2, cette requête q5 n’obtient pas de réponse.
P5
Dans notre approche, nous considérons que la pertinence des nœuds réponses est liée
au fait que les instances soient plus ou moins agrégées. Par exemple, on préférera un
nœud typé par le concept du domaine plutôt qu’un nœud typé par un sous-concept de
SetOf Concept ou un P artOf Speech indexé par le concept.
4.2.3
SHIRI-Querying
L’objectif de SHIRI-Querying est de définir un ensemble de fonctions qui permettent
de construire automatiquement les différentes reformulations à partir d’une requête utilisateur exprimée avec les concepts et les relations de l’ontologie. Ces fonctions exploitent
les métadonnées du modèle d’annotation que nous avons défini afin d’atteindre tous les
nœuds réponses et de trier ces réponses en fonction de leur agrégation dans les documents.
Prenons l’exemple d’une requête simple dont le patron de graphe est P = {(?c1, r, ?c2),
(?c1, type, c1), (?c2,type,c2)} les reformulations possibles sont :
- P1 = {(?c1, neighborOf, ?c2), (?c1, type, c1), (?c2, type, c2)}
- P2 = {(?c1, neighborOf, ?c2), (?c1, type, c1), (?c2, type, SetOf c2)}
- P3 = {(?c1, neighborOf, ?c2), (?c1, type, SetOf c1), (?c2, type, c2)}
- P4 = {(?c1, neighborOf, ?c2), (?c1, type, SetOf c1), (?c2, type, SetOf c2)}
- P5 = {(?c1, neighborOf, ?c2), (?c1, type, P artOf Speech), (?c1, isIndexedBy, c1),
(?c2, type, c2)}
82
4.2. Interrogation des annotations
- P6 = {(?c1, neighborOf, ?c2), (?c2, type, P artOf Speech), (?c2, isIndexedBy, c2),
(?c1, type, c1)}
- P7 = {(?c1, neighborOf, ?c2), (?c1, type, P artOf Speech), (?c1, isIndexedBy, c1),
(?c2, type, SetOf c2)}
- P8 = {(?c1, neighborOf, ?c2), (?c2, type, P artOf Speech), (?c2, isIndexedBy, c2),
(?c1, type, SetOf c1)}
- P9 = {(?c1, neighborOf, ?c2), (?c2, type, P artOf Speech),
(?c2, isIndexedBy, c2) (?c1, type, P artOf Speech), (?c1, isIndexedBy, c1)}
- P10 = {(?c1, type, SetOf c1)} si c1 subsume c2 ou
P10 = {(?c1, type, SetOf c2)} si c2 subsume c1 ou
P10 = {(?c12, type, P artOf Speech), (?c12, isIndexedBy, c2), (?c12,isIndexedBy, c1)}
sinon.
D’une manière générale, pour un patron de graphe à n concepts, nous pouvons distinguer les transformations suivantes :
• La transformation qui substitue toutes les relations par neighborOf .
• Les transformations appelées set qui substituent des variables de k types différents
en une variable de type SetOf C, k allant de 1 à n. Cette transformation n’est possible que si les k concepts sont comparables et C étant le concept ancêtre.
• Les transformations appelées pos qui substituent des variables de k types différents
en une variable de type P artOf Speech indexée par Ci , i allant de 1 à k, k allant
de 1 à n. Cette transformation n’est possible que si les k concepts ne sont pas comparables.
• Les transformations qui combinent pos et set.
Le nombre de reformulations par transformation set d’un c en SetOf c ou le nombre
de reformulations
par transformation pos d’un c en P artOf Speech indexée par c est au
!
pire égal à nk=1 Cnk = 2n − 1.
Il est clair que le nombre de reformulations, obtenues à partir des différentes transformations, croît de manière exponentielle avec le nombre de concepts. Cependant, plusieurs
reformulations ne seront pas construites car elles ne seront sémantiquement pas possibles.
Par exemple, pour une requête :
P = {(?c1, r, ?c2), (?c2, r, ?c3) (?c1, type, c1), (?c2, type, c2), (?c3, type, c3)},
appliquer la transformation set à c1, à c2 ensuite à c3 donne les requêtes suivantes :
{(?c1, neighborOf, ?c2), (?c2, neighborOf, ?c3) (?c1, type, SetOf c1), (?c2, type, c2), (?c3,
type, c3)},
{(?c1, neighborOf, ?c2), (?c2, neighborOf, ?c3) (?c1, type, c1), (?c2, type, SetOf c2),(?c3,
83
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
type, c3)}
{(?c1, neighborOf, ?c2), (?c2, neighborOf, ?c3) (?c1, type, c1), (?c2, type, c2), (?c3, type,
SetOf c3)}.
Si c1, c2 et c3 forment un ensemble comparable tel que c1 subsume c2 et c2 subsume
c3, appliquer la transformation set à deux variables de types c1 et c2, de types c1 et c3
et ensuite de types c2 et c3 donne les requêtes suivantes :
{(?c12, neighborOf, ?c3), (?c12, type, SetOf c1), (?c3, type, c3)}
{(?c13, neighborOf, ?c2), (?c13, type, SetOf c1),( ?c2, type, c2),}
{(?c1, neighborOf, ?c23), (?c23, type, SetOf c2), (?c1, type, c1)}
Appliquer la transformation set aux trois variables de types c1, c2 et c3 donne la requête suivante :
{(?c123, type, SetOf c1)}
Dans ce cas de figure, il n y a pas aucune reformulation utilisant la transformation pos.
D’une manière générale, les éléments suivants peuvent réduire considérablement le
nombre de reformulations :
• Dans la réalité, le nombre de concepts dans une requête utilisateur n’est pas très
grand.
• Les reformulations peuvent être construites selon une fonction d’ordre dépendant
du nombre de transformations set et pos. Ce qui permet d’arrêter la génération des
reformulations pour un ordre donné.
• Aussi, étant donné que les règles que nous avons définies sont déclaratives, certaines
pourraient être supprimées ou relâchées par l’utilisateur. Par exemple, dans un cas
extrême, on suppose que tous les nœuds sont de type P artOf Speech reliés par la
relation neighborOf .
containInstanceOf(n, c) ∧ ¬type(n, P artOf Speech) → type(n, P artOf Speech)
type(n, P artOf Speech) ∧ containInstanceOf(n, c) → isIndexedBy(n, c)
isIndexedBy(n, c) ∧ subClassOf (c, c!) → isIndexedBy(n, c! )
n1 /= n2 ∧ containInstanceOf(n1 , ci ) ∧ containInstanceOf(n2 , cj )∧
domain(r, ci ) ∧ range(r, cj ) ∧ path(n1 , n2 ) → neighborOf (n1 , n2 )
Une étude plus complète a été réalisée dans [MBPT10a, MBPT10b] qui a traité les
points suivants :
• Définition formelle des différentes fonctions de transformations, et la fonction d’ordre.
• Définition de l’algorithme appelé DREQ de construction et d’exécution des refor84
4.3. Conclusion
mulations selon la fonction d’ordre.
• Implémentation de l’agorithme en apportant d’autres optimisations comme vérifier l’existence de certains types de nœuds dans la base d’annotations. Ainsi les
reformulations utilisant des types non référencés ne seront pas construites. Cette
implémentation utilise Corese, un moteur de recherche sémantique qui permet d’interroger en SPARQL des annotations RDF.
• Réaliser une interface qui permet de visualiser l’arbre de génération des reformulations d’une requête utilisateur, les réponses sous forme de triplets RDF ou de
documents surlignant le texte des nœuds réponses (Figures 4.3 et 4.4).
• Expérimenter sur deux corpus différents. En particulier sur notre corpus les résultats
ont bien montré l’intérêt des métadonnées définies dans notre modèle d’annotation
pour trier les réponses.
Figure 4.3 – Interface d’interrogation de SHIRI-Querying : reformulation des requêtes
4.3
Conclusion
Nous avons présenté les règles d’annotation qui génèrent les nœuds instances du modèle
d’annotation. Ces règles exploitent la sémantique associée aux nœuds par SHIRI-Extract
et leur proximité structurelle. Un nœud annoté est soit une instance d’un ou plusieurs
concepts ontologiques, soit une instance de P artOf Speech ou de SetOf c. Ces nœuds
85
Chapitre 4. ANNOTATION DES DOCUMENTS ET INTERROGATION
Figure 4.4 – Interface d’interrogation de SHIRI-Querying : navigation dans les résultats
peuvent être reliés par la relation neighborOf avec une longueur maximale fixée du chemin
les reliant dans l’arbre structurel représentant le document.
Nous avons présenté les fonctions de transformations qui permettent de construire les
différentes reformulations à partir d’une requête utilisateur exprimée avec les concepts et
les relations de l’ontologie. Ces fonctions exploitent les métadonnées du modèle d’annotation que nous avons défini afin d’atteindre et de trier tous les nœuds réponses.
Ces fonctions ont bien été formellement définies, implémentées et expérimentés sur
notre base d’annotations dans un autre travail [MBPT10a]. Les résultats obtenus ont
bien montré l’intérêt de notre modèle d’annotation pour trier les réponses selon le niveau
d’agrégation des termes et entités nommées repérés dans les nœuds. De plus, la granularité
de l’annotation permet de présenter à l’utilisateur les textes des nœuds réponses.
86
Chapitre 5
EXPÉRIMENTATIONS ET
ÉVALUATION DES RÉSULTATS
Sommaire
5.1
Entrées des expérimentations . . . . . . . . . . . . . . . . . . .
5.1.1 Ontologie du domaine . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Constitution du corpus . . . . . . . . . . . . . . . . . . . . . . .
5.2 Expérimentation et évaluation de l’extraction et de l’alignement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Résultats de l’extraction . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Outil de Pierre Senellart . . . . . . . . . . . . . . . . . . . . . .
5.2.3 Résultats de l’alignement . . . . . . . . . . . . . . . . . . . . .
5.3 Expérimentation et évaluation de l’annotation . . . . . . . . .
5.3.1 Résultats du typage des nœuds . . . . . . . . . . . . . . . . . .
5.3.2 Évaluation de la relation neighborOf selon la distance . . . . .
1
Apports de notre approche . . . . . . . . . . . . . . . . . . . .
2
Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
88
92
93
93
98
99
108
108
108
111
114
Introduction
SHIRI-Extract permet d’extraire certains termes ou entités nommées d’une collection
de documents semi-structurés et SHIRI-Annot permet d’annoter sémantiquement certaines parties de ces documents. La granularité de l’annotation est le nœud de l’arbre
XML du document. Tout nœud de l’arbre XML du document contenant un terme ou une
entité nommée alignée avec un concept de l’ontologie est annoté soit avec un concept, soit
avec une métadonnée provenant de l’extension de l’ontologie. Ces métadonnées permettent
à notre approche d’annotation de s’adapter aux degrés de structuration des documents.
L’approche est expérimentée sur un corpus de documents HTML provenant du Web.
Ces documents décrivent des appels à participation à des conférences scientifiques en in87
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
formatique. Nous avons défini et utilisé une ontologie de domaine décrivant les principaux
concepts apparaissant dans ces appels.
L’objectif principal de ce chapitre est de présenter l’expérimentation sur ces documents
réels et d’évaluer les résultats des différentes phases de l’approche que sont l’extraction,
l’alignement et l’annotation. Notre objectif n’est pas d’évaluer les patterns d’extraction
mais de distinguer les erreurs dues à l’utilisation de ces patterns, de celles provenant de
notre méthode d’alignement.
En ce qui concerne les phases d’extraction et d’alignement, l’évaluation consiste à :
• évaluer les mesures classiques de rappel et de précision ;
• étudier l’impact du choix des termes qui vont enrichir l’ontologie et permettre
l’alignement en fonction des types de correspondance (subsomption, équivalence
et proximité sémantique) obtenus lors de l’alignement ;
• évaluer le nombre d’alignements obtenus grâce aux appels Web par rapport aux
alignements obtenus en utilisant uniquement la composante lexicale de l’ontologie.
Nous étudions l’évolution de ce nombre au fur et à mesure du traitement des documents et donc de l’enrichissement de la composante lexicale.
Pour la phase d’annotation :
• nous évaluons le nombre de nœuds de type SetOf Concept, P artOf Speech et Concept ;
• nous évaluons le nombre de fois où la relation neighborOf est instanciée en faisant
varier la distance maximale d entre nœuds de documents ;
• toujours, en faisant varier d, nous évaluons l’intérêt de la relation neighborOf en
calculant la proportion de relations sémantiques présentes entre les nœuds reliés par
cette relation neighborOf sur un échantillon.
Dans ce chapitre, nous présentons dans la section 5.1 l’ontologie du domaine des appels
à participation à des conférences en informatique ainsi que le corpus de documents HTML.
Dans la section 5.2 nous présentons les principes et mesures d’évaluation ainsi que les
résultats de l’extraction puis de l’alignement. Enfin, dans la section 5.3, nous présentons
les résultats de l’annotation.
5.1
5.1.1
Entrées des expérimentations
Ontologie du domaine
Pour expérimenter notre approche, nous avons défini une ontologie comportant les
principaux concepts du domaine des appels à participation à des conférences en informa88
5.1. Entrées des expérimentations
tique. L’ontologie comporte une composante lexicale que nous avons initialisée à l’aide de
WordNet.
Ontologie du domaine des appels à participation à des conférences
L’ontologie O du domaine des ”appels à participation à des conférences en informatique”, (”call for papers” en anglais, Figure 5.1), comporte des concepts, leurs propriétés
et des relations sémantiques entre ces concepts. Nous nous intéressons aux évènements
tels que les conférences, les workshops (concept Event), à leurs comités d’organisation
ou de programme (concept committee), aux membres de ces comités (concept P erson),
à leurs équipes, laboratoires et universités (concept Af f iliation), aux villes ou pays où
ont lieu les évènements (concept Location), aux dates (concept Date) et aux thèmes des
conférences (concept T opic).
Certains de ces concepts ont des instances qui peuvent être représentées par des entités
nommées. Il s’agit des événements, des personnes, de leurs affiliations, des lieux et des
dates.
Composante lexicale
L’ontologie comporte une composante lexicale faite de labels, de termes et d’entités
nommées. Chaque concept est décrit par un label préféré qui désigne le concept auprès
de l’utilisateur. Par exemple, ”person” est le label préféré du concept P erson et ”call for
paper” est celui du concept CallF orP aper. Tout concept de O dispose d’un ensemble
de labels alternatifs, de termes et d’entités nommées. Si un concept n’a pas d’entités
nommées, son ensemble hasT ermNe est vide.
Pour ces expérimentations, compte tenu du domaine choisi, nous avons pu jouer le rôle
d’expert et nous avons initialisé la composante lexicale de l’ontologie en nous appuyant
sur le thésaurus WordNet.
Pour initialiser les labels alternatifs d’un concept, nous avons sélectionné, dans WordNet, certains des synonymes ou des hyponymes du label préféré. Il s’agit de ceux qui sont
équivalents au label préféré quand on se place dans le domaine des appels à participation.
Nous les avons insérés dans l’ensemble des labels L et les avons reliés aux concepts par la
propriété altLabel.
Pour les termes, nous avons choisi des hyponymes ou des termes appartenant à la liste
des termes du domaine trouvés dans WordNet pour le concept. Ces termes sont insérés
dans T et reliés aux concepts par la propriété hasTerm.
Par exemple, pour le concept T opic nous avons sélectionné un ensemble d’environ 350
termes du domaine tels que ”Communications protocol”, ”data encryption”, ”information
processing system”, ”object-oriented programming language”, etc.
L’ensemble des labels et des termes sont présentés dans le tableau 5.1.
Nous avons choisi de ne pas utiliser de ressources lexicales pour initialiser les entités
nommées de la composante lexicale : ce choix permet de mieux montrer l’apport de notre
recherche utilisant le Web et de notre enrichissement. En effet, certaines entités nommées
ne vont être alignées qu’en utilisant uniquement les termes extraits du Web.
89
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
)+),20+8$"4+.
!"#5+0*+),-
!"#,"../%01"2+0
;/"##59%&5("&-0/0("-0%,=
/"##59%&5("()&
;H%&I4>%(=
/"##59%&54<?10440%,A
4B1(%40<1=
;/%110440%,=
(&%(%4"#=
4<?/%110--))5 20+8$"4+. !"#5+0/%,9)&),/)=
1))-0,3=
/%110--))
!"##$%&'"()&
".'$"4+.
4)10,"&=
20+8$"4+.
9%&<1A
!"#,%--(''++
;/%11<,0/"-0%,5(&%-%/%#=
0,9%&1"-0%,5(&%/)440,35
!%110--))
4B4-)1=5:"-"5),/&B(-0%,A !"#3+-4+0
(&%3&"15/%110--))
%&3",04"-0%,5 20+8$"4+.
/%110--))
;044<)=5!)#:=5"&)"
;%&3",0K"-0%,5
->)1)=4<?@)/-A
/%110--))A
20+8$"4+.
;4/0),-04-A
'&%3&"15
".'$"4+.
!%110--))
".'$"4+.
;1)1?)&=
-%(0/ 4()"I)&A
2&3",04"-0%,
".'$"4+.
!"#5+0!"#$%&"'(%)
#%/"-0%,
20+8$"4+.
.%/"-0%,
:"-)
20+8$"4+.
()&4%,
!"#5+020+8$"4+.
;&)30%,A
"9!#0"-0%,
!%110--))
!"#5+020+8$"4+.
20+8$"4+.
;:)":#0,)A
89!#0"-0%,
".'$"4+.
!"#*"'+
6"-)
55.C3),:)
7%(0/
!"#3+-4+0
')&4%,
!"#78!.("'(%)
!"#5%2(&6
!"#*"'+
554<?4%1(-0%,
5&)#"-0%,54C1",-0D<)5E#)5&",3)5)4-5#"5:)4-0,"-0%,5:)5#"5"F/>)G
5(&%(&0C-C5E:%1"0,)5E/#"44)G5+)&45/%J:%1"0,)G
Figure 5.1 – Ontologie O des appels à participation à des conférences en informatique
90
5.1. Entrées des expérimentations
Modèle d’annotation
Nous avons défini, dans le chapitre 2, le modèle d’annotation par un ensemble de
métadonnées spécifiques pour le processus d’annotation SHIRI-Annot. Ces métadonnées
expriment le degré plus ou moins fort d’agrégation des instances dans les nœuds de documents.
!"#,"../%01"2+0
(#=)>+?+>@A
*+),-
)+(9!4%0:8
&%)'"()=)#'")&+:8
!"#;".<+=)#'")&+
<)-"="="
!"##$%&'"()&
!%,/)(-
.0-)&"#
!"#B+'
!"#B+'
'"&-2:;())/>
;)-2:!%,/)(-
;)-2:*+),-
!"#,%--(''++
!%110--))
;)-2:!%110--))
!"#B+'
!"#3+-4+0
;)-2:.%/"-0%,
!"#B+'
;)-2:6"-)
;)-2:'&%3&"1
!%110--))
;)-2:2&3",08"0%,!%110--))
!"#B+'
!"#B+'
;)-2:')&8%,
!"#B+'
;)-2:9:!#0"-0%,
;)-2:7%(0/
!"#B+'
'&%3&"15
!%110--))
2&3",04"-0%,
!%110--))
!"#$%&"'(%)
!"#B+'
9:!#0"-0%,
!"#*"'+
7%(0/
6"-)
!!"#$%&'%!(
')&8%,
!"#B+'
.%/"-0%,
!"#78!.("'(%)
!"#5%2(&6
!"#*"'+
!!"#$"%&'()%*
!'+%'+),(,!-.%&/)*0!10+"!2%3.%&/)*04
!'+%'+),(,!-.%&/)*0!-25/""04!10+"!2%3.%&/)*0!-25/""044
!'+%'+),(,!-.%&/)*0!10+"!2%3.%&/)*0!-25/""044
Figure 5.2 – Modèle d’annotation généré à partir de O sans la composante lexicale
Le modèle d’annotation généré à partir de l’ontologie est présenté dans la figure 5.2.
Tous les concepts de l’ontologie sont des sous-concepts de Concept.
91
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Le modèle permet de représenter les résultats de l’extraction. Un nœud Nœud est lié
à un ou plusieurs littéraux par la propriété hasV alueInstance. Un nœud est relié à un
concept par la relation containInstanceOf lorsque ces littéraux représentent des instances
du concept.
Le modèle permet aussi de représenter les résultats de l’annotation. Les nouvelles
métadonnées PartOfSpeech, SetOfConcept, SetOfEvent, SetOfTopic, SetOfLocation, SetOfDate, SetOfAffiliation, SetOfPerson, SetOfCommittee, SetOfProgramCommittee et SetOfOrganizationCommittee sont générées. La définition et l’utilité de ces métadonnées
sont présentées dans le chapitre 2. Ces dernières et les sous-concepts de Concept héritent
de Metadata qui représente l’ensemble des concepts du modèle permettant d’annoter des
nœuds de documents.
5.1.2
Constitution du corpus
Le corpus est composé de documents HTML provenant du web, plus précisément de
sites relatifs à des conférences scientifiques en informatique.
La constitution du corpus s’est fait en deux étapes : (i) chargement du corpus portant
sur le domaine d’intérêt et (ii) pré-traitement du corpus.
Chargement
Le chargement a été réalisé en utilisant le moteur de recherche Google. Nous formons
un ensemble de mots clé appelés graines (seed en anglais) à partir des labels de concepts
et éventuellement des termes déjà associés aux concepts de l’ontologie. Ces mots sont
combinés aléatoirement pour former des n-uplets qui sont fournis au moteur de recherche
pour obtenir une liste d’URLs de documents à télécharger.
Le crawler que nous avons utilisé pour aspirer ces documents est l’outil web get 8 .
Ce dernier prend en entrée la liste d’URLs de documents obtenue avec le moteur de
recherche et les enregistre en local. L’outil nous permet de conserver la manière dont les
pages constituant une conférence sont organisées.
Prétraitement
Les documents chargés sont pré-traités pour obtenir un ensemble de documents XHTML
bien formés grâce à des outils comme JTidy et TidyHtml et des APIs comme SAX (Simple
API for XML et DOM (Document Object Model).
Chaque document est ensuite représenté par un ensemble de mots numérotés par ordre
d’occurrence dans le document. Les caractères de ponctuation sont bien entendu conservés
pour la tâche d’extraction, et les balises remplacées par des points.
Nous effectuons un étiquetage morphosyntaxique des documents du Corpus avec l’outil QTag [TM98].
Après pré-traitement, le corpus est constitué de :
8. wget : Gestionnaire de téléchargement libre issu du projet GNU qui permet le téléchargement avancé
de fichiers sur des réseaux et sur Internet, http ://jp.barralis.com/linux-man/man1/wget.1.php
92
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
• 412 fichiers non vides, contenant du texte, des images et d’autres types de contenus ;
• 202737 mots ;
• 1429616 octets.
Notre approche est basée sur l’hypothèse que les pages Web traitées sont du même
domaine mais ne comportent pas forcément de régularités structurelles puisqu’elles proviennent de sites différents, construits par des auteurs indépendants et n’obéissant pas à
des règles communes. Les documents du corpus que nous avons constitué sont effectivement structurés de manière hétérogène : nous retrouvons parfois des instances des mêmes
concepts dans des nœuds bien structurés et parfois non structurés. Par exemple le tableau
5.2 montre des nœuds du corpus où les instances du concept T opic apparaissent parfois
seules, parfois en liste, parfois dans un paragraphe avec d’autres instances. Dans le tableau, des exemples d’instances de T opic sont en bleu et des instances des autres concepts
sont en rouge.
5.2
5.2.1
Expérimentation et évaluation de l’extraction et de
l’alignement
Résultats de l’extraction
SHIRI-Extract permet d’extraire des termes et des entités nommées. Nous présentons
les principes et les mesures d’évaluation de cette étape avant de présenter les résultats
obtenus.
Principes et mesures d’évaluation
Certains termes ou entités nommées extraits sont corrects, d’autres comportent un mot
en plus ou en moins et d’autres ne sont pas porteurs de sens. En effet, compte tenu de la
nature générique des patterns utilisés et du degré d’automaticité de l’approche d’extraction, il n’est pas surprenant de rencontrer des termes ou entités nommées non porteurs de
sens dans l’ensemble des instances extraites. Le repérage de certaines instances nécessiterait la mise en œuvre de techniques plus sophistiquées de TALN (Traitement Automatique
de la Langue Naturelle). Nous sommes conscients de la difficulté consistant à décider si
une entité nommée ou un terme est complet, comporte un mot en plus, est incomplet
ou incorrect. Souvent ces choix ne peuvent être faits qu’après un examen du document
d’origine.
En tenant compte des difficultés pré-citées, nous classons les termes et entités nommées extraits dans les catégories suivantes :
Faux termes ou fausses entités nommées
93
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Concept
(prefLabel)
Person
Topic
Labels alternatifs (altLabel)
Termes (hasTerm)
scientist
issue, theme, subject, field, area
Event
∅
Committee
Affiliation
Date
Location
Call For Paper
Program
committee
Organisation
committee
commission, subcommittee
∅
deadline
∅
∅
∅
member, speaker
communication protocol, information
processing system, data encryption
(etc.)
workshop, symposium, proposal, conference, seminar, meeting, forum
∅
∅
∅
region
call for participation, call for submission
∅
organization committee
∅
Table 5.1 – Labels alternatifs et termes des concepts de O
Instances bien structurées
<ul>
<li> Data mining techniques : [clustering],
classification, [association rules], [decision
trees], etc.</li>
<li> [Semantic web intelligence]</li>
<li>[Analytics for social networks]</li>
</ul>
Instances non structurées
<p> [The 6th Annual European Semantic Web Conference (ESWC2009)] will
present the latest results in research and
[applications of Semantic Web technologies]. ESWC2009 will also feature a tutorial program, [system descriptions] and
demos, a poster track, a PhD Symposium and a number of collocated workshops. </p>
Table 5.2 – Exemples d’instances bien structurées et non structurées dans le corpus
94
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Définition : Nous nommons faux termes ou fausses entités nommées les termes
ou entités nommées que l’expert (donc nous) considère comme n’ayant pas de
signification.
Ce caractère de non sens dépend aussi bien de la langue mais aussi du document
contenant le terme ou l’entité nommée.
Exemples Les exemples de faux termes et entités nommées qui suivent proviennent
de l’évaluation de SHIRI-Extract.
• Termes
1. Name Email Institution ;
2. aspect and Locations for rooftop ;
3. results to scientists.
• Entités nommées
1. Yes ;
2. Photo Gallery.
Sur-extraction ou extraction partielle d’entités nommées
Définition : Certaines entités nommées sont incomplètes ou comportent un (des)
mot(s) en plus.
• L’entité nommée extraite tj = wj ...wm , k $ j $ m $ n est incomplète si
celle qu’il fallait extraire est tk = wk ...wn . Nous parlons alors d’extraction
partielle. Par exemple, le nom de la conférence est tk =International k conference k+1 on k+2 machine k+3 learning k+4 alors que l’entité nommée extraite
est tk+1 =conference k+1 on k+2 machine k+3 learning k+4.
• Lorsque l’entité nommée extraite tk = wk ...wn , k $ j $ m $ n comporte un (des) mot(s) de trop et que la bonne entité nommée est tj =
wj ...wm , nous parlons de sur-extraction. Par exemple, le nom de l’université
est tk+1 =Washington k+1 University k+2 alors que l’entité nommée extraite
est tk =About k Washington k+1 University k+2.
Exemples Les exemples d’extraction partielle qui suivent proviennent de l’évaluation de SHIRI-Extract.
1. University of South (partielle) ;
2. International Conference on Field (partielle) ;
Mesures d’évaluation
Les mesures du rappel et de la précision sont calculées conformément à la catégorisation précédente des termes et entités nommées. Ces mesures sont connues et
très utilisées dans des approches de traitement de l’information et de gestion de la
connaissance. Considérons les notations suivantes :
• Tc est l’ensemble des termes ou des entités nommées extraits qui sont corrects ;
95
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
• Tf représente le nombre de faux termes ou de fausses entités nommées ;
• Tsp représente le nombre d’entités nommées extraites partiellement, ou sur-extraites ;
• To représente le nombre de termes ou le nombre d’entités nommées non trouvés.
Puisque la granularité de l’annotation est le nœud de l’arbre XML du document,
nous présentons les résultats obtenus pour la précision en considérant : (a) que les
entités nommées de Tsp sont incorrectes (précisionssp) et (b) que les entités nommées
de Tsp sont correctes (précisionasp) puisque le plus souvent le nœud contient le terme
ou l’entité nommée en entier.
Précision
Définition : La précision est la proportion du nombre de termes ou entités
nommées correctement extraits par rapport au nombre total de termes ou
entités nommées extraits.
Pour les entités nommées :
précisionssp =
Tc
Tc + Tf + Tsp
(5.1)
précisionasp =
Tc + Tsp
Tc + Tf + Tsp
(5.2)
Pour les termes :
précision =
Tc
Tc + Tf
(5.3)
Rappel
Définition : Le rappel est la proportion du nombre de termes ou d’entités
nommées correctement extraits par rapport au nombre de termes ou entités
nommées qui auraient dû être extraits.
Son calcul nécessiterait de retrouver les entités nommées oubliées dans le texte
des documents par SHIRI-Extract. Comme notre objectif n’est pas d’évaluer les
patterns d’extraction mais de distinguer les erreurs provenant de ces patterns,
de celles provenant de notre méthode d’alignement, nous n’avons pas cherché
à calculer ce rappel.
Extraction des entités nommées et évaluation
L’ontologie du domaine comporte plusieurs concepts qui ont des instances de type
entité nommée. Ce sont les concepts date, personne, event, location et affiliation.
Les entités nommées sont obtenues en appliquant sur le corpus étiqueté morphosyntaxiquement des patterns utilisés dans SHIRI-Extract et présentés dans la section
3.1.2.
96
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Le tableau 5.3 présente le nombre d’entités nommées extraites suivant leur taille avec
ou sans répétitions. Il montre que dans un corpus de documents relatifs au même domaine,
les entités nommées se répètent plusieurs fois : en moyenne ici plus de 10 fois. De là
apparait bien l’intérêt de garder celles-ci dans l’ontologie lorsqu’elles sont alignées avec des
concepts ou dans un ensemble conservant les échecs sinon. Ceci nous permet de diminuer
le temps de traitement d’une entité nommée puisqu’une entité nommée n’est soumise
qu’une seule fois au Web.
Longueur
1
2
3
4
5
TOTAL
Nombre d’entités nommées Nombre d’entités nommées distinctes
23728
1860
11874
1420
4604
406
1053
129
217
20
41476
3835
Table 5.3 – Nombre d’entités nommées extraites
La validation des résultats de l’extraction sur 354 entités nommées, soit 114 entités
nommées distinctes extraites d’un échantillon de documents pris au hasard est présentée
dans le tableau 5.4. Ces entités nommées sont de longueur variable et 17% de celles-ci
ne sont pas extraites avec précision (sur-extraction ou extraction partielle). La précision
sans les entités nommées sur-extraites ou partielles précisionssp (74,56%) est beaucoup
plus faible que la précisionasp (91,23%).
Total entités
nommées
354
Sans
Répétition
114
Fausses
10
Sur-extraites
précisionssp
ou partielles
19
74,56%
précisionasp
91,23%
Table 5.4 – Evaluation de la précision de l’extraction d’entités nommées
Extraction des termes et évaluation
Le tableau 5.5 montre le nombre de termes extraits suivant leur taille avec ou sans répétitions. Ces termes sont obtenus après un étiquetage morpho-syntaxique des documents
du corpus et l’application des patterns définis dans [Arp95].
L’évaluation de la précision de l’extraction des termes a porté sur 2300 termes distincts
extraits de documents choisis au hasard. Nous avons 147 termes qui n’appartiennent pas
au domaine comme Fax or Regular Mail, audiovisual aids et Train hours. Ces termes ne
sont pas considérés dans l’évaluation. Donc la précision a été calculée sur 2153 termes.
Les résultats de l’extraction des termes sont présentés dans le tableau 5.6. La majorité des
termes extraits sont porteurs de sens mais les nombreux faux termes s’expliquent par la
présence d’erreurs typographiques comme l’absence d’un blanc. C’est le cas de nombreux
97
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Longueur
1
2
3
4
5
7
TOTAL
Nombre de termes Nombre de termes distincts
101430
14413
32712
15806
17912
10020
5704
3797
966
602
104
48
158828
44680
Table 5.5 – Nombre de termes extraits
exemples comme onsemistructured data in order et ofmachine learning. Dans d’autres cas,
le pattern syntaxique a extrait une suite de mots n’ayant pas de sens comme reviewers to
make et large populations of self.
Total termes
2153
Faux termes
968
Précision
55,04%
Table 5.6 – Evaluation de la précision de l’extraction des termes
5.2.2
Outil de Pierre Senellart
Nous avons utilisé un outil externe permettant d’extraire des noms de personnes et
des dates, développé par Pierre Senellart dans le cadre d’une approche qui permet de
découvrir et d’analyser les données d’un domaine d’intérêt accessibles via des formulaires
[P.07].
Les dates sont extraites avec des expressions régulières classiques. Les noms et les
prénoms des personnes sont extraits de DBLP 9 . Environ 210.000 noms de famille et 85.000
prénoms sont extraits. Ensuite, l’outil utilise des expressions régulières qui définissent les
combinaisons possibles de noms et de prénoms. Par exemple à partir du nom Smith et des
prénoms John et Jacques, les expressions régulières permettent d’obtenir les combinaisons
suivantes : Smith, Smith, John, John Smith, Smith John et Smith John Jack.
Les probabilités associées aux expressions régulières sont définies de manière ad hoc
bien que Pierre Senellart indique qu’elles pourraient provenir d’études statistiques sur de
larges corpus [PAD+ 08].
Nous avons extrait 4334 noms de personnes et 2190 dates. La validation des résultats
obtenus sur un échantillon de 100 documents pris au hasard (parmi les 691 documents
du corpus), soit 1201 entités nommées est présentée dans le tableau 5.7. Comme il s’agit
d’un outil qui extrait et aligne simultanément, le rappel et la précision dans le tableau
sont calculés par rapport au nombre de personnes et de dates bien alignées trouvées.
9. DBLP : Digital Bibliography and Library Project, http ://dblp.uni-trier.de/
98
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Personnes
Dates
Total
Trouvées
745
456
1201
Correctes
690
445
1135
Oubliées
97
144
241
rappel précision
87.67% 92.62%
75.55% 97.59%
82.49%
94.5%
Table 5.7 – Evaluation des résultats de l’outil de Pierre Senellart
5.2.3
Résultats de l’alignement
Après l’extraction des entités nommées et des termes, SHIRI-Extract permet de les
aligner avec des concepts de l’ontologie. Nous présentons les principes et les mesures
d’évaluation de cette étape d’alignement avant de présenter les résultats obtenus.
Principes et mesures d’évaluation
Nous tentons d’aligner les entités nommées et les termes résultant de la phase d’extraction avec des concepts de l’ontologie. Nous commençons par un alignement local basé
sur l’égalité pour les entités nommées et sur Taxomap [HZSR08] pour les termes. Si ce
dernier échoue nous cherchons des labels sur le Web pour le terme ou l’entité nommée et
tentons de l’aligner à nouveau.
Afin de distinguer les erreurs introduites par la phase d’extraction de celles introduites
par la phase d’alignement, nous avons ignoré les faux termes ou fausses entités nommées
dans lévaluation des résultats de l’alignement. Ainsi les alignements de results to scientists
et de Fair Student Tavel ne sont pas comptabilisés.
En tenant compte de la catégorisation des termes ou des entité nommées (corrects,
sur-extraits ou partiels), nous classons les résultats de l’alignement dans les catégories
suivantes.
Alignements corrects
Définition : Un alignement est correct si le terme ou l’entité nommée extrait est
correct, partiel ou sur-extrait et est associé au(x) bon(s) concept(s). Les alignements des faux termes ou des fausses entités nommées sont ignorés.
Exemples
1. University of South (alignement correct car l’entité nommée est partielle
mais annotée avec le bon concept Affiliation) ;
2. privacy and safety issues (alignement correct car le terme est correct et
annoté avec le bon concept Topic).
Faux alignements
Définition : Un alignement est faux si l’association d’un terme correct ou d’une
entité nommée correcte ou partielle ou sur-extraite avec un mauvais concept.
Exemples
1. Conferences themes (alignement faux car le terme est correct mais annoté
avec un mauvais concept Event) ;
99
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
2. meeting room (alignement faux car le terme est correct mais annoté avec
un mauvais concept Event) ;
3. Regions in spatial data (alignement faux car le terme est correct mais
annoté avec un mauvais concept Location).
Pour évaluer le rappel et la précision, nous utilisons les notations suivantes :
• Ac représente le nombre d’alignements corrects ; nous distinguons Asp inclus dans
Ac et qui représente le nombre d’entités nommées partielles ou sur-extraites alignées
correctement ;
• Af représente le nombre de faux alignements ;
• Ao représente le nombre de termes ou entités nommées extraits non alignés et qui
auraient dû être alignés avec des concepts de l’ontologie.
Précision
Définition : La précision est la proportion du nombre de termes ou d’entités nommées correctement alignés par rapport au nombre total de termes ou d’entités
nommées alignés.
Pour les entités nommées :
précisionssp =
Ac − Asp
Ac + Af
(5.4)
précisionasp =
Ac
Ac + Af
(5.5)
Pour les termes :
précision =
Ac
Ac + Af
(5.6)
Rappel
Définition : Le rappel est la proportion du nombre de termes ou du nombre d’entités nommées correctement alignés par rapport au nombre total de termes ou
des entités nommées qui auraient dû être alignés.
rappel =
Ac
Ac + Ao
(5.7)
Alignement des entités nommées
Nous alignons avec des concepts de O l’ensemble des entités nommées obtenues avec les
patterns syntaxiques définis dans 3.1.2. Pour rapprocher ces entités nommées des concepts
100
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
de l’ontologie, nous les comparons, pour ces expérimentations, en utilisant l’égalité (=)
stricte, avec les entités nommées présentes dans les ensembles hasTermNe des concepts
de O.
Si cette tentative d’alignement échoue, nous cherchons des labels de l’entité nommée
sur le Web et tentons de nouveau d’aligner les labels obtenus avec les labels et les termes
des concepts présents dans O et dont les instances sont des entités nommées.
Affiliation
Alignements Avec O
0
Trouvés
Avec Web
1317
Total
1317
Location Person
0
745
1097
362
1097
1107
Event
0
741
741
Date
456
0
456
Total
1201(25.46%)
3517(74.54%)
4718
Table 5.8 – Nombre d’alignements obtenu en local ou via le Web pour les entités nommées
Après l’alignement, nous obtenons les résultats présentés dans les tableaux 5.8 et
5.9. Ces résultats incluent des entités nommées obtenues en utilisant l’outil spécialisé
de Senellart [P.07]. Il s’agit des noms de personnes et les dates qui sont directement
alignés avec les concepts Person et Date de O, voir section 5.2.2. L’évaluation de la phase
d’alignement a porté sur 4718 entités nommées distinctes qui sont soit correctes, soit
partielles ou sur-extraites. Le tableau 5.8 montre le nombre d’entités nommées alignées
directement avec l’ontologie et le nombre de celles alignées en utilisant des labels provenant
du Web : 74.54% des entités nommées ont été alignées grâce à des labels provenant du
Web. Toutes les affiliations, les événements et les lieux ont été retrouvés grâce au Web.
En effet l’ensemble des entités nommées de l’ontologie est vide au départ. Les dates et les
personnes qui sont alignées directement avec l’ontologie le sont grâce à l’outil de Pierre
Senellart.
Le tableau 5.9 montre la précision de l’alignement des entités nommées.
Concepts
Affiliation
Location
Person
Event
Date
Total/Moyenne
Alignements trouvés
Ac -Asp Asp
Af
1109
25
183
1081
5
11
990
15
101
477
161 103
445
0
11
4096 207 409
Ao
Précisionssp
Précisionasp
Rappel
384
89
227
115
118
933
84.18%
98.53%
89.47%
64.35%
97.58%
86.93%
86.07%
99.02%
90.85%
86.13%
97.58%
91.32%
74.69%
92.40%
81.59%
84.72%
79.07%
82.18%
Table 5.9 – Précision de l’alignement des entités nommées
Le tableau 5.9 montre qu’en moyenne la précision est de 91.32%. Si nous n’avions pas
pris en compte les entités nommées partielles ou sur-extraites alignées correctement, la
précision n’aurait été que de 86.93%. En effet, les événements (concept Event) sont souvent
partiellement extraits en raison de leur longueur et de leur complexité. Par exemple,
l’entité nommée ”International Conference” est incomplète, mais l’unité structurelle la
101
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Concepts
Affiliation
Location
Person
Event
Topic
Total
Alignements
trouvés
165
143
206
80
276
870
Corrects
(Ac )
160
115
131
52
181
639
Faux Oubliés
(Af )
(Ao )
5
9
28
3
75
16
28
0
95
29
231
57
Précision
Rappel
96.97%
80.42%
63.59%
65.00%
65.58%
73.45%
94.67%
97.46%
89.12%
100.00%
86.19%
91.81%
Table 5.10 – Précision et rappel de l’alignement des termes
contenant contient le nom complet qui est ”International Conference on Web Services”.
Donc si ”International Conference” est alignée avec Event, nous considérons comme correct
cet alignement. Pour ce concept, la précisionasp est de 86.13% alors que la précisionssp n’est
que de 64.35%.
La précision de l’alignement des lieux (concept Location) n’a pas beaucoup varié quand
on prend en compte ceux partiellement extraites ou sur-extraites parce qu’ils sont décrits
par des entités nommées courtes et non complexes. Ils sont facilement alignés en utilisant
des labels du Web car ils sont fréquemment cités sur les pages Web : le rappel est de
92.4%.
Les dates (concept Date) sont obtenues avec des expressions régulières qui sont appropriées aux formes des dates qui apparaissent dans le corpus. C’est la raison pour laquelle
elles sont toutes complètes.
Certaines entités nommées, bien que souvent décrites avec des expressions complexes,
ont été également trouvées avec une bonne précision et un bon rappel. C’est le cas des
affiliations (concept Affiliation) et des personnes (concept Person) qui comportent souvent
des mots étrangers à la langue.
Alignement des termes
Après l’alignement, nous avons évalué les résultats sur 927 termes provenant de 30
documents que nous avons choisis au hasard. Parmi ces termes, 870 ont été alignés avec
des concepts de l’ontologie. La précision de l’alignement est de 73.45% et le rappel est de
91.81%. Le nombre de faux alignements est 231 et le nombre d’alignements oubliés est de
57. Les résultats sont présentés dans le tableau 5.10.
Globalement la précision de l’alignement des entités nommées (91.93%) est meilleure
que celle des termes (74.31%) car les termes varient plus syntaxiquement que les entités
nommées. Ces erreurs de l’alignement des termes s’expliquent par l’automaticité de la
méthode d’une part et d’autre part par les manquements des techniques d’alignement.
Ces techniques doivent tenir compte de la langue du document et plus précisément du
rôle des mots dans le groupe nominal. Par exemple ”Conferences themes” est aligné avec
le concept Event car il contient le mot conference qui est un terme de Event. De la même
manière, ”Regions in spatial data” est annoté avec le concept Location à cause de la présence de son terme region dans l’instance.
102
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Historisation des entités nommées et termes non alignés
Un terme ou une entité nommée qui n’a pas pu être aligné avec un concept de l’ontologie est stocké avec les labels candidats trouvés sur le Web. Ces échecs sont gardés dans
un fichier XML dont nous présentons un extrait ci-dessous. Le contenu de ce fichier est
chargé à chaque appel au programme dans le but de ne pas rechercher un label inutilement
sur le Web.
<term i d="S o f t w a r e Technology">
<l a b e l name="market l e a d e r "/>
<l a b e l name=" a r c h i v a l j o u r n a l "/>
</term>
<term i d="Dining S e r v i c e ">
<l a b e l name="f o o d s e r v i c e p r o v i d e r "/>
</term>
<term i d=" I n t e r n a t i o n a l Money Orders">
<l a b e l name=" a l t e r n a t i v e "/>
</term>
<term i d="P r o c e s s I n t e g r a t i o n ">
<l a b e l name=" p r o c e s s "/>
</term>
<term i d="Systems S o c i e t y ">
<l a b e l name=" a s s o c i a t i o n "/>
</term>
Le nombre d’échecs après annotation de 23300 termes provenant du corpus est de 8284.
Enrichissement de l’ontologie
Notre approche enrichit l’ensemble des termes et des entités nommées associés aux
concepts. Le nombre de nouveaux termes et de nouvelles entités nommées obtenus après
annotation de tout le corpus est montré dans la table 5.11. Par exemple le concept T opic
qui disposait de 352 termes au départ a été enrichi de 333 termes.
Courbes d’évolution d’alignements locaux et des appels Web
Le comportement incrémental de l’algorithme Extract-Align doit permettre que le
nombre de recours au Web diminue au fur et à mesure que le nombre de termes traités
augmente (i) plus l’ontologie est peuplée par de nouveaux termes, plus un candidat terme
est susceptible d’être aligné directement et (ii) tous les termes dont les tentatives d’alignement via le web échouent sont stockés avec les labels retournés par le Web et ne seront
plus soumis au Web, même si les prochaines tentatives d’alignement en local échouent.
Nous supposons que le Web n’a pas subi entre temps des modifications permettant de
retrouver d’autres labels.
103
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Concept
Topic
Event
Person
Date
Location
Affiliation
Committee
Program
Committee
Organisation
Committee
Call
For
Paper
Nombre de Termes
avant annotation après annotation
352
685
7
704
2
212
0
48
1
74
0
551
0
123
0
1
Nombre d’entités nommées
avant annotation après annotation
0
0
0
638
0
3419
0
445
0
1086
0
1134
0
0
0
0
0
0
0
0
2
2
0
0
Table 5.11 – Enrichissement de la composante lexicale de l’ontologie après un traitement
de 66 fichiers, soit 233000 termes
Figure 5.3 – Nombre d’alignements locaux et d’appels Web en fonction du nombre de
paquets traités
104
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Figure 5.4 – Nombre cumulé d’alignements locaux et d’appels Web en fonction du
nombre de paquets traités
Le recours au Web nécessite beaucoup de ressources machine, surtout en termes de
temps. Pour minimiser le coût des appels Web, l’ensemble des termes extraits est découpé
en paquets de 100 termes (paramètre TaillePaquet du tableau 3.3). Nous ne faisons appel
au Web qu’après avoir atteint la taille spécifiée dans ce paramètre.
Les courbes des figures 5.3 et 5.4 montrent : (i) l’évolution du nombre de termes alignés
en local par rapport au nombre de de termes traités et (ii) l’évolution du nombre d’appels
Web par rapport au nombre de termes traités. Ces résultats montrent que le nombre
d’invocations du Web diminue avec le nombre de termes traités. En effet, la courbe 5.4
montre que pour 5000 termes, le nombre d’appels Web est d’environ 3100 (62%), pour
10000 termes, ce nombre est d’environ 5200 (52%) et pour 200000 terme, il est d’environ
7700 (38.5%).
La courbe 5.3 montre que le pourcentage de termes et d’entités nommées alignés
localement reste assez régulier : environ 10%. Pour ces expérimentations la diminution
des appels Web est essentiellement due au stockage des échecs.
Le tableau 5.5 montre que beaucoup de termes se répètent plusieurs fois. Ceci est dû
au fait que les documents sont du même domaine. Cependant, comme l’algorithme (cf.
Tableau 3.3) traite les termes du plus long au plus court, la plupart d’entre eux ne sont
pas traités car ils sont inclus ou équivalents à des termes déjà traités.
Impact du choix de types de correspondances sur le processus d’alignement
Dans le processus d’alignement, lorsque nous tentons de rapprocher les instances extraites avec les labels et les termes des concepts de l’ontologie, nous utilisons l’outil d’alignement Taxomap [HZSR08]. Cet outil découvre trois types de correspondances entre
105
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
une instance donnée et les labels et/ou termes des concepts de l’ontologie. Ces correspondances, présentées dans la section 3.1.4 du chapitre 3 sont :
• l’équivalence (isEq ou =) ;
• la subsomption (isA) ;
• la proximité sémantique (isClose).
Notre algorithme étant incrémental, les alignements à l’itération k influent sur les
alignements aux itértions (k + i)i>0 suivantes parce que les instances alignées à l’itération
k enrichissent l’ontologie.
Tous les résultats présentés dans les sections précédentes sont obtenus en considérant
toutes les instances alignées à l’itération k dans l’enrichissement de l’ontologie quelque
soit le type de correspondances utilisé lors de l’alignement, mais seules celles obtenues
avec les relations isEq et isA sont utilisées dans les tentatives d’alignement suivantes.
Nous avons également expérimenté l’utilisation de toutes les instances alignées à l’itération k pour enrichir l’ontologie et pour rechercher des correspondances dans les itérations
(k +i)i>0 suivantes pour un échantillon donné de 3500 termes. Les résultats présentés dans
les figures 5.5 et 5.6 montrent que (i) la courbe des appels Web décroit alors rapidement
et que (ii) celle des alignements obtenus en local croît considérablement. Cependant la
précision est alors très faible, de l’ordre de 30%.
Figure 5.5 – Courbe des appels locaux et Web utilisant les relations isA, isEq et isClose
En résumé, nous notons que le nombre d’appels au Web décroît plus lentement quand
nous n’utilisons que les correspondances isA et isEq comme le montre les courbes de la
106
5.2. Expérimentation et évaluation de l’extraction et de l’alignement
Figure 5.6 – Courbe des appels locaux et Web cumulés utilisant les relations isA, isEq
et isClose
Figure 5.7 – Comparaison des courbes des appels locaux et Web
107
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
figure 5.7, mais les résultats de l’alignement ont alors une bien meilleure précision. Il s’agit
des résultats que nous avons présentés dans les tableaux 5.10 et 5.9.
5.3
Expérimentation et évaluation de l’annotation
Les systèmes d’interrogation basés sur les ontologies sont fréquemment utilisés dans
l’extraction d’information. Ils améliorent la recherche basée sur les mots clé en une recherche basée sur les ontologies. Plusieurs approches approximent sémantiquement la requête de l’utilisateur. CORESE [CDKFZG05] est un de ces outils qui proposent différentes
approximations utilisant soit la distance ontologique basée la relation de subsomption, soit
une proximité contextuelle, soit la longueur du chemin les séparant les concepts dans l’ontologie. CORESE propose un langage de règles permettant de faire des inférences sur les
connaissances. Pour générer les annotations finales, nous posons des règles définies dans
le langage de règle de CORESE sur les triplets de pré-annotation.
5.3.1
Résultats du typage des nœuds
Sur un échantillon formé de 30 documents du corpus, nous avons annoté 2225 nœuds :
1525 (68.54%) sont typés avec des concepts de l’ontologie, 165 (7.42%) sont typés par
des sous-concepts de SetOfConcept et 501 (24.04%) sont typés par PartOfSpeech, indexés
avec des concepts de l’ontologie (5.12).
Le grand nombre de nœuds annotés par des concepts s’explique par le fait que le
langage HTML dispose de balises (ul, pl, li) permettant une représentation structurée
des listes et que ces listes sont largement utilisées dans des documents tels que les appels
à participation à des conférences scientifiques. De plus, certains nœuds sont typés par
des concepts bien que contenant probablement d’autres instances de concepts que SHIRIExtract n’a pas détecté. Nous avons obtenu un nombre assez élevé de nœuds de type
P artOf Speech parce que ces documents comportent également des nœuds peu structurés
pour lesquels leurs concepteurs se soucient peu de la séparation des informations délivrées
selon les concepts décrivant le domaine. Le nombre faible de nœuds de type SetOf Concept
est inhérent à sa définition même. L’ontologie ne comporte pas beaucoup de concepts
comparables et il est plus rare de trouver des listes non structurées dans les documents.
Concepts
Nombre
1525
SetOfConcept
165
PartOfSpeech
535
Table 5.12 – Typage des nœuds
5.3.2
Évaluation de la relation neighborOf selon la distance
Le voisinage des nœuds dans un document peut être source de relation entre les instances de concepts localisées dans ces nœuds. Par exemple une personne et son affiliation
se trouveront probablement dans le même nœud (d = 0) ou dans des nœuds distincts mais
108
5.3. Expérimentation et évaluation de l’annotation
séparés par une distance d donnée inférieure à un seuil. Dans ce dernier cas, la relation
neighborOf est générée entre les nœuds.
Nous donnons ci-dessous un exemple de nœud comportant une personne et son affiliation. Les deux instances sont reliées avec la relation hasAf f iliation. Le nœud est annoté
avec la métadonnée PartOfSpeech (notée d = 0).
< span >
Communication Technology and Protocols
Duc A. Tran, University of Dayton, USA
< /span >
L’évaluation de cette phase consiste à vérifier si les instances représentées par les
termes ou entités nommées extraits du même noeud (partOf Speech) ou de nœuds voisins
sont liés sémantiquement. Le tableau 5.13 montre que la meilleure précison est obtenue
pour d = 1. Le nombre de relations trouvées croît rapidement avec la distance et plus la
distance est grande, moins la précision est bonne. Ces résultats vérifient bien avec notre
hypothèse de départ qui consiste à dire que les instances qui se trouvent soit dans le même
nœud, soit dans des nœuds voisins ont de bonnes chances d’être sémantiquement liées.
Distance
0
1
Nombre
368
178
Nombre Cumulés
368
546
Validés
100
200
Corrects
80
180
Précision
80.00% 90.00%
2
3
4
378
123
916
924
1047
1963
300
400
500
207
211
213
69.00% 52.75 42.60%
Table 5.13 – Évaluation du neighborOf suivant la distance
Bien sûr, nous n’avons pas essayé de calculer le rappel mais même si seulement une
partie des relations sémantiques est détectée par cette heuristique, les relations trouvées
en fixant une faible longueur de chemin sont souvent justes.
Conclusion
Nous avons expérimenté notre approche sur un corpus de 412 documents HTML provenant du Web. Ces documents décrivent des appels à participation à des conférences
scientifiques en informatique. L’ontologie comporte une composante lexicale où les labels
des concepts et les termes ont été sélectionnés manuellement à l’aide de WordNet.
Nous avons évalué séparément les résultats obtenus par les patterns d’extraction, de
ceux obtenus par notre méthode d’alignement lors de l’exécution de l’algorithme ExtractAlign. Cette séparation nous a permis de mieux évaluer les erreurs introduites par la
méthode d’alignement.
109
Chapitre 5. EXPÉRIMENTATIONS ET ÉVALUATION DES RÉSULTATS
Les patterns d’extraction ne délimitent pas parfaitement les termes et les entités nommées susceptibles de représenter des instances de concepts de notre ontologie. Cependant,
même s’ils sont extraits de manière partielle ou sont sur-extraits, le nœud du document
contient le plus souvent le terme ou l’entité nommée recherché. Les résultats de l’extraction montrent que la précision calculée au niveau du nœud est nettement meilleure que
celle calculée au niveau des termes et des entités nommées extraits.
L’alignement d’un terme exploite l’outil d’alignement de taxonomies Taxomap. Les
résultats que nous obtenons sont des correspondances d’ équivalence (isEq) ou de subsomption (isA) ou de proximité (isClose). Ces correspondances sont exploitées pour la
pré-annotation et pour l’enrichissement de la composante lexicale. Au moment de l’alignement, nous avons choisi de n’utiliser dans cette composante lexicale que les termes
déjà validés par l’expert, auxquels s’ajoutent, ceux obtenus uniquement par isEq ou de
subsomption isA . Nous avons montré que la précision de l’alignement est mauvaise si
nous utilisons également les termes obtenus par les correspondances isClose .
Nous avons pu montrer que l’utilisation du web permettait de découvrir des alignements qui n’auraient pas été possibles en utilisant un alignement direct avec les élements
de la composante lexicale pour les entités nommées (74,54 % sont trouvées via le Web).
Pour les termes, nous avons constaté que le web ne permet d’en aligner que très peu.
L’alignement via le web est une technique coûteuse mais, dans un tel corpus, les termes et
les entités nommées se répètent (en moyenne 10 fois pour une EN, 3 fois pour un terme).
Les résultats ont montré que l’enrichissement de l’ontologie avec les termes et les entités nommées allié à l’historisation des tentatives d’alignement qui ont conduit à un échec
permet de réduire l’utilisation du Web au fur et à mesure que des documents sont annotés.
Après application des règles d’annotation, nous obtenons différents types de nœuds
(Concept, SetOf Concept, partOf Speech). Les termes et entités nommées sémantiquement liés se trouvent souvent soit dans le même nœud, soit dans des nœuds voisins. Nous
avons pu montrer, qu’en l’absence de relations sémantiques annotées, il était intéressant de représenter la présence possible d’une relation sémantique en utilisant la relation
neighborOf car ces liens sont souvent justes lorsque la distance d paramétrée est faible.
110
CONCLUSIONS ET
PERSPECTIVES
L’annotation sémantique de documents permet d’associer à des éléments de document
des concepts, des instances de concepts, ou des instances de relations qui sont décrits
formellement dans une ontologie. L’objectif est de permettre de formuler des requêtes
basées sur le vocabulaire de cette ontologie, de raisonner sur les annotations sémantiques,
et de recueillir des réponses combinant des données provenant de différents documents.
Nous nous sommes intéressés à l’annotation sémantique de documents HTML relatifs
à un domaine d’intérêt. Ce domaine d’interêt est décrit dans une ontologie qui comporte
une composante lexicale. Cette composante lexicale associe à chaque concept un ensemble
de labels équivalents le représentant, ainsi qu’un ensemble de termes ou d’entités nommées
(EN). Les documents peuvent avoir été collectés manuellement ou par un robot d’indexation utilisant les labels ou les termes associés aux concepts de l’ontologie de domaine
comme mots clef. Ces documents étant créés par des personnes ou des applications différentes, leur structure HTML n’est pas régulière, contrairement, par exemple, aux pages
d’un site web qui seraient générées automatiquement en utilisant des patrons structurels
alimentés à partir d’une base de données. Lorsque le nombre de documents est grand,
l’annotation sémantique manuelle est trop coûteuse. Aussi, nous proposons une approche
complètement automatique dont l’objectif n’est pas de délimiter des instances de concepts
le plus parfaitement possible mais de repérer la présence possible d’une instance dans un
noeud de document et d’annoter ce noeud.
Nous présentons tout d’abord les apports de notre approche et ensuite, nous présentons
les perspectives que nous avons dégagées pour nos travaux.
1
Apports de notre approche
Nous avons défini une approche d’annotation sémantique qui combine l’usage d’une
terminologie présente dans l’ontologie lexicale et la capacité d’apprendre de nouveaux
termes en utilisant la base généraliste de documents qu’est le Web. L’approche que nous
avons proposée a été définie pour être indépendante du domaine et pour annoter des
documents de structure hétérogène. Notre approche permet également d’enrichir cette
terminologie du domaine et l’ensemble des entités nommées associées aux concepts de
l’ontologie.
111
CONCLUSIONS ET PERSPECTIVES
• Le premier apport de notre approche concerne les étapes d’extraction et d’alignement définies dans SHIRI-Extract. Une fois que les termes ou EN candidats sont
repérés dans les documents en utilisant des patterns d’extraction classiques et indépendants du domaine, ces termes sont rapprochés (alignés) en utilisant une méthode
locale ou, en cas d’échec, en exploitant les documents présents sur le Web.
Pour une EN, la méthode locale recherche une EN similaire parmi les EN décrites
par la relation hasT ermNe dans l’ontologie. Dans l’implémentation, la mesure de
similarité pour l’alignement d’une EN est pour l’instant très stricte puisqu’il s’agit
de l’égalité.
Pour un terme, les variantes syntaxiques sont plus nombreuses et plus complexes.
Notre méthode utilise des mesures de similarité qui tiennent compte de la catégorie
syntaxique des mots composant le terme, de l’importance des mots dans le terme.
Elles permettent également d’exploiter l’ensemble des labels et des termes associés
à un concept de l’ontologie et aussi ceux associés aux concepts frères ou pères de ce
concept dans l’ontologie. Notre approche utilise (et détourne) l’outil d’alignement
de taxonomies Taxomap. Cet outil permet de découvrir trois types de relations de
correspondance : l’équivalence, la subsumption et la proximité sémantique que l’on
a distinguées au moment de l’alignement.
Il est clair que ces méthodes locales sont insuffisantes pour aligner toutes les EN
et tous les termes. La composante lexicale ne sera jamais suffisamment riche pour
qu’une EN appartienne toujours à la composante lexicale ou qu’un terme candidat
corresponde toujours à une variation syntaxique des termes présents dans cette composante. La capacité d’un système d’annotation de découvrir de nouveaux termes
ou de nouvelles EN est une caractéristique importante d’un système d’annotation.
En effet, les ressources lexicales sont rarement complètes et leur mise à jour est une
tâche fastidieuse : il se crée par exemple de nouvelles conférences régulièrement.
Aussi, en cas d’échec des méthodes locales, nous utilisons le Web pour découvrir
des termes qui peuvent être des hypéronymes du terme candidat à aligner ou des
termes décrivant la catégorie de l’EN candidate. Ce sont ces termes que l’on va alors
tenter d’aligner avec l’ontologie, et qui permettront alors d’aligner l’EN ou le terme
candidat.
La méthode d’alignement via le Web suppose que l’EN ou le terme candidat soit
suffisamment redondant sur le Web et que le terme provenant du web puisse être
aligné en utilisant la méthode locale.
Nos expériences ont porté sur une collection de 412 documents HTML relatifs à
des conférences en informatique. Les labels et les termes de la composante lexicale
ont été sélectionnés en utilisant WordNet. En revanche, la composante lexicale ne
comporte aucune entité nommée.
Les résultats montrent que la méthode d’alignement via le Web a permis de rapprocher environ 75 % des entités nommées comme des événements, des personnes et des
lieux. La précision des résultats de l’alignement obtenus en utilisant les méthodes
locales ou via le Web sur un échantillon de termes et d’EN est d’environ 73 % pour
les termes et de 92 % pour les EN. Nous soulignons que le calcul de ces précisions ne
112
1.
Apports de notre approche
tient pas compte des erreurs dues à l’extraction (erreurs typographiques ou morphosyntaxiques).
• Le deuxième apport de notre approche concerne l’enrichissement de la composante
lexicale de l’ontologie au fur et à mesure de l’annotation des documents. Cet enrichissement concerne à la fois la liste des termes associés aux concepts et la liste des
EN : l’ontologie est en effet enrichie par les nouveaux termes ou nouvelles EN découverts dans les documents et par les termes découverts sur le web. Ces nouveaux
termes ou EN devront être validés par l’expert qui pourra modifier, supprimer ou
reclasser le terme ou l’EN, ou choisir d’en faire un nouveau label de concept. Il
pourra également choisir de faire évoluer l’ontologie conceptuellement en créant de
nouveaux concepts. Cet enrichissement permet à la fois de faire évoluer l’ontologie
mais aussi de limiter le besoin d’utilisation du web.
Nous avons également conservé pour chaque terme et ENs candidats qui n’ont pas
pu être alignés, les termes du web fournis par les réponses aux requêtes soumises
au moteur de recherche. Si ce terme apparaît une nouvelle fois, nous ne tentons
plus de le réaligner via le Web mais, l’ontologie étant enrichie, il est possible que
l’alignement aboutisse.
Nous avons pu montrer dans les expérimentations que plus le nombre de documents
(et donc de termes) traités augmentait, plus le nombre d’appels web par rapport au
nombre de termes traités baissait.
• Le troisième apport de notre approche est d’avoir défini un modèle d’annotation sémantique qui est géneré à partir de l’ontologie de domaine. Il permet de représenter
différents types d’annotations sémantiques de nœuds de document : (1) un nœud qui
ne contient qu’un terme ou qu’une EN alignée avec des concepts est considéré comme
étant une instance de chaque concept, (2) un nœud qui ne contient que des termes
ou EN alignées avec des concepts comparables sera considéré comme une instance
du concept de type ensemble (SetOfConcept) correspondant au concept le plus général repéré, (3) un nœud qui contient des termes ou EN alignées avec des concepts
non comparables sera considéré comme une instance d’une partie de discours (PartOfSpeech) qui sera indexée par les concepts repérés. Ainsi, si un document présente
la liste des noms de chercheurs d’un laboratoire, chaque élément HTML de la liste
sera considéré comme une instance de Chercheur tandis qu’un extrait textuel de
rapport d’activité parlant d’un chercheur, et de ses thèmes de recherche sera simplement indexé, entre autres, par le concept Chercheur. Une telle distinction permet de
formuler des requêtes qui vont atteindre certains types de noeuds selon les objectifs
de l’utilisateur ou de l’application utilisant les annotations. Par exemple, les mêmes
données sont parfois présentées de manière structurée et parfois mêlées à d’autres
informations dans des parties textuelles du document, et l’utilisateur peut préferer
obtenir, si elles existent, les annotations associées aux nœuds structurés. Le modèle
d’annotation permet également de représenter des noeuds voisins qui contiennent
des termes ou ENs de concepts susceptibles d’être liés par une relation sémantique.
Nous avons pu montrer que si la distance d utilisée pour définir le voisinage est
petite (d < 4), il existe bien des instances de relations sémantiques entre instances
113
CONCLUSIONS ET PERSPECTIVES
décrites dans les nœuds.
SHIRI-Annot définit un ensemble de règles d’annotations qui permettent de passer de la pré-annotation des nœuds de documents à leur annotation sémantique
conforme au modèle d’annotation. Elles sont déclaratives et peuvent facilement être
modifiées ou utilisées partiellement.
Pour interroger les annotations produites, l’utilisateur peut utiliser le module SHIRIQuerying qui permet à l’utilisateur de soumettre des requêtes exprimées dans le
vocabulaire de l’ontologie de domaine. SHIRI-Querying construit toutes les reformulations d’une requête utilisateur pour atteindre tous les types de nœuds réponses.
Ces reformulations sont construites et exécutées selon une fonction d’ordre qui tient
compte du niveau d’agrégation des termes et des EN dans les nœuds.
L’utilisation de ce module d’interrogation sur notre base d’annotations a permis de
montrer l’intérêt de notre modèle pour obtenir les réponses les plus précises d’abord.
2
Perspectives
Nous présentons un ensemble de perspectives dont certaines sont des améliorations
possibles de notre approche et d’autres sont plus prospectives.
• La première perspective à court terme de ce travail est d’expérimenter notre approche en exploitant une ontologie de taille plus importante, portant sur un autre
domaine. Il faudrait adapter les composants SHIRI-Extract et SHIRI-Annot pour
permettre l’intégration d’outils existants dans une même plateforme.
• L’extraction pourrait être améliorée : les patterns utilisés par SHIRI-Extract sont
très généraux et extraient de nombreux termes qui ne font pas partie du domaine
d’interêt défini dans l’ontologie ou des faux termes dus, en partie, à la présence
d’erreurs typographiques. L’approche pourrait utiliser des méthodes de filtrage statistiques afin de ne pas traiter l’ensemble des termes extraits par les patterns. Ceci
diminuerait le nombre de faux termes ou de fausses entités nommées et ainsi le
bruit introduit dans les annotations. De plus, notre approche pourrait apprendre
des patterns spécifiques plus précis en utilisant les EN et les termes validés de la
composante lexicale comme dans KnowItAll [ECD+ 05].
• La méthode d’alignement locale utilisée pour rapprocher un terme de l’ontologie
exploite les variations syntaxiques des termes mais ne permet pas de rapprocher un
terme d’un concept de l’ontologie s’il ne possède aucune ressemblance syntaxique
avec les termes associés au concept. L’alignement utilisant le web doit permettre
d’aligner des termes syntaxiquement très différents mais les expérimentations ont
montré que cette méthode est beaucoup moins performante pour les termes que pour
les EN. Aussi, pour améliorer le rappel de l’alignement, il nous faudrait intégrer à
la méthode locale l’utilisation d’une ressource lexicale permettant de retrouver des
liens de synonymie ou d’hyponymie telle que WordNet.
114
2.
Perspectives
• Les méthodes d’alignement utilisées associent des mesures de similarité au rapprochement fait entre un terme et un concept du domaine. Nous n’exploitons pas ces
mesures et conservons tous les rapprochements pour lesquels la valeur de similarité
est au dessus d’un seuil donné. Nous pourrions attribuer une mesure de confiance
à chaque annotation de nœud en exploitant (1) la valeur obtenue par la mesure de
similarité exploitée par la méthode d’alignement, (2) l’origine des termes utilisées
dans la composante lexicale pour effectuer le rapprochement : un label de concept,
un terme validé par l’expert, un terme non encore validé. Les mesures de confiance
associées aux annotations pourraient alors être représentées dans la base d’annotations et exploitées à l’interrogation pour classer les réponses.
• Il est fréquent qu’un élément dans une page doive être annoté par un concept parce
que d’autres éléments de cette même page sont annotés par d’autres concepts. Ainsi,
un nœud dont les nœud fils sont des instances de chercheurs est peut-être une instance de comité. Un nœud de document dans lequel apparaissent des dates et un
nom de conférence décrit peut-être un appel à participation.
• Notre approche permet d’enrichir la composante lexicale de l’ontologie. Pour compléter notre approche, il faudrait développer une interface permettant à l’expert
de valider ou de modifier les nouveaux éléments de cette composante lexicale et
éventuellement d’enrichir conceptuellement l’ontologie. Cela suppose également de
savoir gérer les conséquences de l’évolution de l’ontologie sur les annotations : une
annotation réalisée avant modification faite sur l’ontologie est susceptible d’être modifiée pour rester conforme au modèle d’annotation et donc à l’ontologie de domaine.
115
Table des figures
1.1 Piles du Web Sémantique (Tim Berners-Lee [BL98]) . . . . . . . . . . . . . 17
1.2 Exemple de graphe RDF, W3C [W3Cb] . . . . . . . . . . . . . . . . . . . . 18
1.3 Exemple de schéma RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Extrait du graphe RDF de l’ontologie d’appel à participation à des conférences
Exemples de labels et de termes du concept Topic . . . . . . . . . . . . . .
Modèle d’Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de génération des concepts SetOfc . . . . . . . . . . . . . . . . . .
Exemples de document DOM . . . . . . . . . . . . . . . . . . . . . . . . .
Exemples de concepts comparables et non comparables . . . . . . . . . . .
Principaux modules de notre système . . . . . . . . . . . . . . . . . . . . .
Exemples de documents à traiter . . . . . . . . . . . . . . . . . . . . . . .
Extraction et alignement des termes et entités nommées . . . . . . . . . . .
Annotation des nœuds de documents . . . . . . . . . . . . . . . . . . . . .
Interrogation des annotations . . . . . . . . . . . . . . . . . . . . . . . . .
28
29
30
31
32
33
35
37
38
39
40
3.1
3.2
3.3
3.4
3.5
Architecture de SHIRI-Extract . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple d’instanciation des relations hasValueInstance et containInstanceOf
Extrait de O utilisé dans l’illustration . . . . . . . . . . . . . . . . . . . . .
Ontologie après traitement des entités nommées . . . . . . . . . . . . . . .
Ontologie après traitement des termes . . . . . . . . . . . . . . . . . . . . .
45
47
65
68
71
4.1 Extraction des termes et entités nommées et leur alignement avec des
concepts de l’ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Annotation des nœuds de documents comportant des termes ou entités
nommées extraits et alignés avec des concepts de l’ontologie . . . . . . . .
4.3 Interface d’interrogation de SHIRI-Querying : reformulation des requêtes .
4.4 Interface d’interrogation de SHIRI-Querying : navigation dans les résultats
5.1 Ontologie O des appels à participation à des conférences en informatique .
5.2 Modèle d’annotation généré à partir de O sans la composante lexicale . . .
5.3 Nombre d’alignements locaux et d’appels Web en fonction du nombre de
paquets traités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Nombre cumulé d’alignements locaux et d’appels Web en fonction du nombre
de paquets traités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Courbe des appels locaux et Web utilisant les relations isA, isEq et isClose
116
78
79
85
86
90
91
104
105
106
5.6 Courbe des appels locaux et Web cumulés utilisant les relations isA, isEq
et isClose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.7 Comparaison des courbes des appels locaux et Web . . . . . . . . . . . . . 107
117
Liste des tableaux
1.1 Approches d’extraction et d’annotation . . . . . . . . . . . . . . . . . . . . 15
1.2 Sémantique des constructeurs RDFS en logique du premier ordre . . . . . 19
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
Signification des tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemples de termes candidats extraits . . . . . . . . . . . . . . . . . . .
Algorithme d’extraction et d’alignement d’entités nommées et de termes .
Fonction d’alignement local d’une entité nommée . . . . . . . . . . . . .
Fonction d’alignement local d’un terme . . . . . . . . . . . . . . . . . . .
Fonction WebAlign : alignement utilisant le Web . . . . . . . . . . . . . .
Les fonctions Aligner, Annoter et Misajour . . . . . . . . . . . . . . . . .
Fragment de document HTML . . . . . . . . . . . . . . . . . . . . . . . .
Résultat de l’extraction des entités nommées . . . . . . . . . . . . . . . .
Triplets de pré-annotation résultant du traitement des entités nommées .
Extraction des termes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Triplets de pré-annotation résultant du traitement des termes . . . . . .
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
.
.
.
.
.
.
.
.
.
.
.
.
48
51
57
59
61
63
64
64
66
68
68
71
Labels alternatifs et termes des concepts de O . . . . . . . . . . . . . . . . 94
Exemples d’instances bien structurées et non structurées dans le corpus . . 94
Nombre d’entités nommées extraites . . . . . . . . . . . . . . . . . . . . . . 97
Evaluation de la précision de l’extraction d’entités nommées . . . . . . . . 97
Nombre de termes extraits . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Evaluation de la précision de l’extraction des termes . . . . . . . . . . . . . 98
Evaluation des résultats de l’outil de Pierre Senellart . . . . . . . . . . . . 99
Nombre d’alignements obtenu en local ou via le Web pour les entités nommées101
Précision de l’alignement des entités nommées . . . . . . . . . . . . . . . . 101
Précision et rappel de l’alignement des termes . . . . . . . . . . . . . . . . 102
Enrichissement de la composante lexicale de l’ontologie après un traitement
de 66 fichiers, soit 233000 termes . . . . . . . . . . . . . . . . . . . . . . . 104
5.12 Typage des nœuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.13 Évaluation du neighborOf suivant la distance . . . . . . . . . . . . . . . . 109
118
Bibliographie
[ABK+ 07]
Sören Auer, Christian Bizer, Georgi Kobilarov, Jens Lehmann, Richard
Cyganiak, and Zachary G. Ives. Dbpedia : A nucleus for a web of open
data. In ISWC/ASWC, pages 722–735, 2007.
[AGM03]
Arvind Arasu and Hector Garcia-Molina. Extracting structured data from
web pages. In SIGMOD Conference, pages 337–348, 2003.
[AH06]
Sophie Aubin and Thierry Hamon. Improving term extraction with terminological resources. In FinTAL, pages 380–387, 2006.
[AKM+ 03]
Harith Alani, Sanghee Kim, David E. Millard, Mark J. Weal, Wendy Hall,
Paul H. Lewis, and Nigel Shadbolt. Automatic ontology-based knowledge
extraction from web documents. IEEE Intelligent Systems, 18(1) :14–21,
2003.
[Ama07]
Florence Amardeilh. Web Sémantique et Informatique Linguistique : propositions méthodologiques et réalisation d’une plateforme logicielle. PhD
thesis, Université de Nanterre - Paris X, France, Mai 2007.
[Arp95]
Antti Arppe. Term extraction from unrestricted text. In the Nordic Conference on Computational Linguistics (NoDaLiDa), 1995.
[BAGC04]
Didier Bourigault, Nathalie Aussenac-Gilles, and Jean Charlet. Construction de ressources terminologiques ou ontologiques à partir de textes un
cadre unificateur pour trois études de cas. Revue d’Intelligence Artificielle,
18(1) :87–110, 2004.
[BCS+ 07]
Michele Banko, Michael J. Cafarella, Stephen Soderland, Matthew
Broadhead, and Oren Etzioni. Open information extraction from the web.
In IJCAI, pages 2670–2676, 2007.
[BFG01a]
Robert Baumgartner, Sergio Flesca, and Georg Gottlob. The elog web
extraction language. In LPAR, pages 548–560, 2001.
[BFG01b]
Robert Baumgartner, Sergio Flesca, and Georg Gottlob. Visual web information extraction with lixto. In VLDB, pages 119–128, 2001.
[BL98]
Tim Berners-Lee. Semantic web road map. 1998.
[Bou]
Didier Bourigault. Conception et exploitation d’un logiciel d’extraction de
termes : problèmes théoriques et méthodologiques.
[Bou92]
Didier Bourigault. Surface grammatical analysis for the extraction of terminological noun phrases. In COLING, pages 977–981, 1992.
119
Bibliographie
[BS99]
Brigitte Biebow and Sylvie Szulman. Terminae : A linguistic-based tool for
the building of a domain ontology. pages 49–66, 1999.
[CCDW04]
Fabio Ciravegna, Sam Chapman, Alexiei Dingli, and Yorick Wilks. Learning to harvest information for the semantic web. In ESWS, pages 312–326,
2004.
[CDKFZ04]
Olivier Corby, Rose Dieng-Kuntz, and Catherine Faron-Zucker. Querying
the semantic web with corese search engine. In ECAI, pages 705–709, 2004.
[CDKFZG05] Olivier Corby, Rose Dieng-Kuntz, Catherine Faron-Zucker, and Fabien
Gandon. Ontology-based approximate query processing for searching the
semantic web with corese. In INRIA Report, july 2005.
[CDWP03]
Fabio Ciravegna, Alexiei Dingli, Yorick Wilks, and Daniela Petrelli. Using
adaptive information extraction for effective human-centred document annotation. In Text Mining, pages 153–164, 2003.
[CGW95]
H. Cunningham, R.G. Gaizauskas, and Y. Wilks. A General Architecture
for Text Engineering (GATE) – a new approach to Language Engineering
R&D. Technical Report CS – 95 – 21, Department of Computer Science,
University of Sheffield, 1995. http://xxx.lanl.gov/abs/cs.CL/9601009.
[Cir01]
Fabio Ciravegna. Adaptive information extraction from text by rule induction and generalisation. In IJCAI, pages 1251–1256, 2001.
[CLS05]
Philipp Cimiano, Günter Ladwig, and Steffen Staab. Gimme’ the context :
context-driven automatic semantic annotation with c-pankow. In WWW,
pages 332–341, 2005.
[DES05]
Doug Downey, Oren Etzioni, and Stephen Soderland. A probabilistic model
of redundancy in information extraction. In IJCAI, pages 1034–1041, 2005.
[DVN05]
Hasan Davulcu, Srinivas Vadrevu, and Saravanakumar Nagarajan. Ontominer : automated metadata and instance mining from news websites.
IJWGS, 1(2) :196–221, 2005.
[ECD+ 05]
Oren Etzioni, Michael J. Cafarella, Doug Downey, Ana-Maria Popescu, Tal
Shaked, Stephen Soderland, Daniel S. Weld, and Alexander Yates. Unsupervised named-entity extraction from the web : An experimental study.
volume 165, pages 91–134, 2005.
[Eva03]
Richard J. Evans. A framework for named entity recognition in the open
domain. In RANLP, pages 267–276, 2003.
[Gru93]
Tom R. Gruber. Towards principles for the design of ontologies used for
knowledges sharing. In Conference that does not exist, 1993.
[GS96]
Ralph Grishman and Beth Sundheim. Message understanding conference6 : A brief history. In COLING, pages 466–471, 1996.
[HBDBH07]
Gaëlle Hignette, Patrice Buche, Juliette Dibie-Barthélemy, and Ollivier
Haemmerlé. Semantic annotation of data tables using a domain ontology.
In Discovery Science, pages 253–258, 2007.
120
[Hea92]
Marti A. Hearst. Automatic acquisition of hyponyms from large text corpora. In COLING, pages 539–545, 1992.
[HSC02]
Siegfried Handschuh, Steffen Staab, and Fabio Ciravegna. S-cream - semiautomatic creation of metadata. In EKAW, pages 358–372, 2002.
[HZSR08]
Faycal Hamdi, Haifa Zargayouna, Brigitte Safar, and Chantal Reynaud.
Taxomap in the oaei 2008 alignment contest, ontology alignment evaluation
initiative (oaei) 2008 campaign. In Int. Workshop on Ontology Matching,
2008.
[Jac94]
Christian Jacquemin. Fastr : A unification-based front-end to automatic
indexing. In RIAO, pages 34–48, 1994.
[KK01]
José Kahan and Marja-Riitta Koivunen. Annotea : an open rdf infrastructure for shared web annotations. In WWW, pages 623–632, 2001.
[KT07]
Jun’ichi Kazama and Kentaro Torisawa. Exploiting wikipedia as external
knowledge for named entity recognition. In EMNLP-CoNLL, pages 698–
707, 2007.
[Lin98]
Dekang Lin. An information-theoretic definition of similarity. In ICML,
pages 296–304, 1998.
[LSF07]
Dimitrios P. Lyras, Kyriakos N. Sgarbas, and Nikolaos D. Fakotakis. Using
the levenshtein edit distance for automatic lemmatization : A case study
for modern greek and english. In ICTAI (2), pages 428–435, 2007.
[MBPT10a]
Yassine Mrabet, Nacéra Bennacer, Nathalie Pernelle, and Mouhamadou
Thiam. Supporting semantic search on heterogeneous semi-structured documents. In CAISE, Tunisie, 2010.
[MBPT10b]
Yassine Mrabet, Nacéra Bennacer, Nathalie Pernelle, and Mouhamadou
Thiam. Une approche pour la recherche sémantique de l’information dans
les documents semi-structurés hétérogènes. In CORIA, pages 195–210,
2010.
[McB01]
Brian McBride. Jena : Implementing the rdf model and syntax specification. In SemWeb, 2001.
[P.07]
Senellart P. Understanding the Hidden Web. PhD thesis, University of
Paris 11, France, December 2007.
[PAD+ 08]
Senellart P., Mittal A., Muschick D., Gilleron R., and Tommasi M. Automatic wrapper induction from hidden-web sources with domain knowledge.
In WIDM’08, ACM, 2008.
[PKK+ 04]
Borislav Popov, Atanas Kiryakov, Angel Kirilov, Dimitar Manov, Damyan
Ognyanoff, and Miroslav Goranov. Kim - semantic annotation platform.
pages 375–392, 2004.
[RTAG07]
Axel Reymonet, Jérôme Thomas, and Nathalie Aussenac-Gilles. Modélisation de ressources termino-ontologiques en owl. In Actes d’IC, pages
169–181, 2007.
121
Bibliographie
[SC04]
Sekine Satoshi and Nobata Chikashi. Definition, dictionaries and tagger
for extended named entity hierarchy. In Conference on Language Resources
and Evaluation, 2004.
[SM07]
Stephen Soderland and Bhushan Mandhani. Moving from textual relations
to ontologized relations. 2007.
[TBP07]
Mouhamadou Thiam, Nacéra Bennacer, and Nathalie Pernelle. Webdocenrich : enrichissement sémantique flexible de documents semi-structurés. In
EGC, pages 211–212, 2007.
[TBPL09]
Mouhamadou Thiam, Nacéra Bennacer, Nathalie Pernelle, and Moussa Lo.
Incremental ontology-based extraction and alignment in semi-structured
documents. In DEXA, pages 611–618, 2009.
[TM98]
Dan Tufis and Oliver Mason. Tagging romanian texts : a case study
for qtag, a language independent probabilistic tagger. In Proceedings of
the First International Conference on Language Resources and Evaluation
(LREC), pages 589–596, 1998.
[TPB08]
Mouhamadou Thiam, Nathalie Pernelle, and Nacéra Bennacer. Contextual
and metadata-based approach for the semantic annotation of heterogeneous
documents. In SeMMA, pages 18–30, 2008.
[TSK05]
Pang-Ning Tan, Michael Steinbach, and Vipin Kumar. Introduction to Data
Mining. Addison-Wesley, 2005.
[VGP01]
Crescenzi V., Mecca G., and Merialdo P. Roadrunner : Towards automatic
data extraction from large web sites. In Very Large Data Bases Conference
(VLDB), 2001.
[W3Ca]
W3C. http ://www.w3c.org.
[W3Cb]
W3C. http ://www.w3.org/tr/2004/rec-rdf-primer-20040210/.
[W3Cc]
W3C. http ://www.w3.org/tr/2004/rec-rdf-schema-20040210/.
122
Résumé
Le web sémantique est défini par un ensemble de méthodes et de technologies permettant à des agents logiciels de raisonner sur le contenu des ressources du Web. Cette vision
du Web dépend de la construction des ontologies et de l’utilisation de métadonnées pour représenter ces ressources. L’objectif de notre travail de thèse est d’annoter sémantiquement
des documents balisés et relatifs au mÃa me domaine. Ces documents peuvent comporter
des parties bien structurées et d’autres textuelles. Nous supposons disposer d’une ontologie de domaine définie par des concepts, des relations entre ces concepts et des propriétés.
Cette ontologie comporte une composante lexicale où chaque concept est accompagné de
labels, d’un ensemble d’entités nommées (EN) et de termes du domaine. Nous avons défini une approche automatique SHIRI-Extract qui permet d’extraire des termes et des
EN de manière indépendante du domaine et de les aligner aux concepts de l’ontologie.
L’alignement utilise la composante lexicale ou le Web pour découvrir de nouveaux termes.
Nous avons défini un modèle d’annotation représentant les résultats d’extraction et d’annotation. Les métadonnées de ce modèle distinguent les nœuds selon que les termes ou
les EN agrégés dans un même nœud sont alignés avec un ou plusieurs concepts différents.
Elles permettent également d’annoter la relation de voisinage entre les nœuds. Nous avons
défini SHIRI-Annot, un ensemble de règles déclaratives pour annoter les nœuds et leurs
relations. La base d’annotations RDF(S) construite peut être interrogée à l’aide de requêtes SPARQL. L’évaluation a porté sur une collection de documents portant sur des
appels à participation à des conférences.
Mots-clés: Web sémantique, RDF(S), SPARQL, Annotation sémantique, Extraction de
termes et d’entités nommées, Documents semi-structurés, Recherche d’information, Ontologies
Abstract
The semantic web is defined by a set of methods and technologies enabling software
agents to reason about the contents of Web resources. This vision of the Web depends on
the construction of ontologies and the use of metadata to represent these resources. The
objective of our thesis is to annotate semantically tagged documents related to a domain
of interest. These documents may contain well-structured nodes and textual ones. We
assume having a domain ontology defined by concepts, relations between these concepts
and their properties. This ontology includes a lexical component (labels, a set of named
entities (NE) and terms) for each concept. We have defined an automatic and domain
independent approach SHIRI-Extract that extracts terms and NE and aligns them with
the concepts of the ontology. The alignment uses the lexical component or the Web to
discover new terms. We have defined an annotation model which represents the results of
extraction and annotation. The metadata of this model distinguish nodes depending on
123
how the terms and NE are aligned and aggregated in a node. The model can also represent
the structural neighbor relations between nodes. We have defined SHIRI-Annot, a set of
declarative rules to annotate the nodes and their relations. The constructed RDF(S)
annotation base can be queried using SPARQL. We have implemented and evaluated our
approach on a collection of call for participation to computer science conferences.
Keywords: Semantic Web, Semantic Annotation, Ontologies, Semi-structured documents,
REF(S), SPARQL, Information retrieval, Terms and named entities extraction.
124
125