Introduction
Le Web actuel ne dispose pas d'outils pour décrire et structurer ses ressources de manière satisfaisante afin de permettre un accès pertinent à l'information.
Tim Bernes-Lee a proposé d'étendre le web actuel vers un web ó l'information possédera un sens bien défini permettent ainsi aux applications d'exploiter directement la sémantique des ressources et de coopérer avec l'utilisateur afin de lui faciliter ses tâches (recherche, commerce électronique ).
Ce futur web baptisộ web sộmantique a ộtộ dộfini comme un ô web intelligent ằ ú les informations stockées dans les machines seraient en plus comprises par ses dernières afin de répondre efficacement aux requêtes lancées par les utilisateurs.
Pour exploiter directement la sémantique des ressources du web, il faut une représentation de la sémantique La représentation par graphe est maintenant focalisé dans le domaine de Web Sémantique C'est-à-dire, chaque document est représenté par un graphe, en suite, les manipulations et exploitations sont fait sur ces graphes.
Maintenant, le problème d'annotations sémantiques automatiques (transformation de document au sa représentation sémantique) est toujours comlexe Et les travaux du stage font partie des efforts pour une plate-forme d'annotations sémantiques automatiques, la plate forme SemAnnot Pour l'instance, les graphes générés ont besoin d'être vérifiés par des experts Ce n'est pas vraiment automatique.
Dans le cadre du stage, les travaux se composent de trois parties principales :
Intégration des outils linguistiques : dans cette partie, nous allons créer deux Wrappers pour deux outils existants, Acabit [Acabit-URL] et Fastr [Fastr-URL], suivant l'approche de Gate Ces deux Wrappers doivent être intégrés dans la plate-forme de Gate.
Annotations sémantiques automatiques des textes : dans la deuxième partie du stage, dans le projet SevenPro nous implémentons deux modules: reconnaissance des instances et reconnaissance des triplets suivant une approche syntaxique.
Annotation sémantique automatique des textes associés à une image : le travail de cette partie est de chercher une solution d'annotations sémantiques automatiques des textes associés à une image.
Intégration des outils linguistiques
Pour une plate-forme comme ô SemAnnot ằ, la rộutilisation des outils linguistiques est trốs importante Maintenant, il y a beaucoup d'outils linguistiques existants, et nous allons gagner beaucoup de temps si nous réutilisons ces outils Heureusement, Gate[Gate-URL] nous donne une approche qui nous permet d'intégrer des outils à un système en Java
Pour comprendre ces intégrations, nous avons besoin d'étudier ces outils ainsi que la plate- forme de Gate
Selon [Khaled-2006], Gate est une plate-forme d'ingénierie linguistique qui repose sur l'application successive de transducteurs aux textes Conformément aux termes employés par ses concepteurs, nous parlons ici des ressources de traitement (Processing Ressources : PR) Ces ressources de traitement utilisent le texte modifié par les ressources précédemment appliquées pour ajouter de la structure au texte Les ressources de traitement les plus courantes sont les segmenteurs (Tokenizers 1 ), les analyseurs morpho-syntaxique (POS Tagger 2 ), les transducteurs (JAPE transducers), et les patrons d'extractions (Templates) Ils sont appliqués au texte au sein d'une cascade (chaine de traitement ou pipeline).
A côté de ces ressources de traitement qui sont déjà intégrées dans la plate-forme de Gate, il est possible d'intégrer d'autres outils existantes aux pipelines même si ces outils ne sont pas en Java qui est le langage de programmation pour Gate Cette intégration se fait par Wrappers.
Pour l'intégration des outils qui utilisent des formats de sorties et d'entrées différents, Gate propose un format commun basé sur XML pour tout pipeline, les entrées et sorties de tous les modules qui font partie à un pipeline doivent être transformés au format XML C'est la structure pivot.
Nous présentons ci-après le schéma de la structure pivot utilisé par Gate, un exemple réel de la structure est présenté dans la partie Annexe du rapport.
1 A Tokenizer est un module de traitement de texte qui identifie chaque token d'un langage avec sa label correspondant [Magnini-2003].
2 A POS-Tagger est un module de traitement de texte qui donne un POS (Part of Speech) à chaque mots d'un
MimeType
text/plain
gate.SourceURL
file:/G:/tmp/example.txt
A TEENAGER yesterday accused his parents of cruelty by feeding him a daily diet of chips which sent his weight ballooning to 22st at the age of l2.
rule2
DateOnlyFinal
rule1
GazDateWords
kind
date
kind
internal
majorType
date_key
Exemple 1 Une exemple de structure pivot XML de Gate
En utilisant la structure pivot, Gate peut coordonner de faỗon automatique plusieurs outils existants qui sont écrits par des langages différents Dans cette partie, nous créons deux Wrapper
Acabit est un outil linguistique qui détecte des termes à partir d'un texte Son approche de la détection des termes est basée sur la découverte, la structuration et l'inférence les relations conceptuelles entre les termes [Daille-2003] Pour une SemAnnot, Acabit aide à proposer de nouveaux termes à partir de corpus.
Pour fonctionner correctement, Acabit pour l'anglais a besoin du POS Tagger Brill et d'un Lemmatiseur 3 De plus, ce lemmatiseur a besoin d'une base de données qui est générée depuis CELEX et la base de donnộes de Brill Le figure suivante montre la chaợne de traitement de Acabit, de l'entrée à la sortie.
Pour la sortie, Acabit retourne une liste des candidat-termes sous forme XML.
local nature
large amount
3 Lemmatiseur est un module de traitement de texte qui détecte le lemma pour retrouver le mot original à partir
Figure 1: Chaợne de traitement d'Acabit
Texte d'entrée Prétraitement POS Tagger Brill Lemmatiseur Acabit Sortie XML
Base de données de CELEX
Base de données de POS Tagger Brill
Base de données du Lemmatiseur combiner li re lir e
specific domain
Exemple 2 Une sortie sous structure XML de Acabit.
Des termes proposés sont claire dans la liste ci-dessus, il y a trois termes proposés : local nature, large amount et specific domain Nous introduisons ensuite le Fastr, l'outil deuxième.
Fastr [Fastr-URL] est aussi un outils linguistiques qui dộtecte des termes et reconnaợt leurs variantes Pour fonctionner, Fastr utilise TreeTagger [Schmid-1994] comme un POS Tagger et un Lemmatiseur La détection des termes et reconnaissance des variantes de terme a besoin deux base de données : CELEX [CELEX-URL] et WordNet 1.6 [WordNet-URL].
Fastr dispose de deux modes de travail :
controlled-indexing : l'entrée se compose d'un corpus et d'une liste des termes.
free-indexing : l'entrée est seulement un corpus, les termes seront proposés à partir de ce corpus C'est le mode que nous utilisons.
Voici ci-dessous, une résultat réel en sortie de Fastr :
Since large amounts of textual and terminological data must be , we a partial analysis of multi-domain documents to an in-depth understanding to a specific domain
000001 multi-domain document multi-domain documents 0
000001 in-depth understanding in-depth understanding 0
Because of their local nature ( they not entire sentences ) and because of their high information content , terms are privileged keys for information description and , therefore , term extraction is an unavoidable preliminary phase to document indexing
Exemple 3 : Une résultat réel en sortie de Fastr
Figure 2: Modèle de travail de Fastr
Texte d'entrée base de liens sémantiques base de lie ns morphologiques
Pour l'intégration d'un nouvel outil à la plateforme de Gate, il y a deux étapes principales :
Faire fonctionner l'outil : Java nous permet de démarrer un outil qui est dans autre langage.
Annoter ses résultats et ajouter ces annotations à la structure pivot : ceci dépend du format de sortie de l'outil.
Figure 3: Manière de fonctionner d'un Wrapper sous Gate
Entrée dans structure pivot déma rr er
Annoter ces résultats réels et rajouter ces annotations au structure pivot
Illustration 1: Résultat du Wrapper d'Acabit dans la plate-forme de Gate
Figure 4: Les classes du Wrapper de Acabit
Et une annotation en détail de AcabitTerm est la suivante :
Variant
unvoidable preliminary phase
Origin
unvoidable preliminary phase
Freq
1
LogLike
1010.019
Exemple 4 : Une annotation en détail de AcabitTerm
Figure 5: Les classes du Wrapper de Fastr
L'exemple suivante montre une annotation de FastrTerm sous forme XML suivant la structure pivot de Gate.
Variant
term extraction
NoSentence
2
Origin
term extraction
Variation
0
Exemple 5: une annotation en détail de FastTerm
Annotation sémantique automatique des textes
Une représentation de la sémantique est indispensable pour le Web Sémantique, la représentation utilisée est le graphe Un graphe est un ensemble des triplets, par exemple :
Illustration 2: Résultat du Wrapper de Fastr sous la plate-forme de Gate
Après avoir obtenu le graphe correspondant à la sémantique d'un document, nous pouvons effectuer des manipulations sémantiques sur ce document Donc, la transformation automatique d'un document vers son graphe est très importante Imaginez que vous devez annoter environ 10.000 documents, cela demande beaucoup de temps et n'est pas possible pour un système réel
Pas à pas, nous cherchons une solution au problème d'annotations sémantiques automatiques
Dans cette partie, nous présentons le modèle général du problème, ensuite les étapes principales et enfin, nous testons une approche de la reconnaissance des triplets basée sur les relations grammaticales.
En général, le problème d'annotations sémantiques automatiques se compose de 4 sous- problèmes :
– Détection des concepts : nous détectons la présence des concepts dans un texte, les concepts à détecter sont définis dans l'ontologie En général, cette étape retourne une liste des concepts trouvés depuis le texte.
– Reconnaissance des instances : pour chaque concept présenté dans le texte, nous vérifions si la présence est de concept ou d'une instance du concept Si c'est une instance du concept, cette étape retourne l'instance correspondante au concept
– Détection des relations : similairement à la détection des concepts, nous cherchons la présence des relations dans un texte, ces relations détectées sont définies dans l'ontologie En général, cette étape retourne une liste des concepts trouvés dans le texte.
– Reconnaissance des triplets : depuis les concepts et les relations trouvées, cette étape les combine pour générer les triplets correspondants à la sémantique du texte C'est-à-dire, pour chaque relation, cette étape grammaticale cherche son sujet et son objet correspondants.
Exemple 6: Le graphe correspond une phrase
The Ferrari team won the Grand Prix
"Grand Prix" ha sT yp e ha sT yp e domain range
Il y a beaucoup de recherches ainsi que de nombreux outils d'annotations sémantiques Mais, jusqu'à présent, il existe beaucoup de limitations Dans cette partie, nous allons revoir quelques recherches similaires suivant chaque étape d'annotation sémantique. a) Détection des concepts et reconnaissance des instances
D'un point de vue théorique, nous pouvons considérer la détection des concepts et la reconnaissance des instances comme deux étapes différentes puisque leurs difficultés, c'est la raison pour laquelle dans ce rapport nous les présentons comme deux étapes.
Mais, jusqu'à présent, la plupart des outils ne prennent pas en compte le traitement des anaphores ( 4 ), la reconnaissance des instances n'est pas difficile, et elle est considérée comme une partie de la détection des concepts Et de plus, maintenant presque tous les outils ne prennent pas en compte l'ambiguùtộ sộmantique( 5 ).
Le plus simple, nous détectons les concepts à partir les termes correspondants, chaque prộsence d'une chaợne d'un certain terme est comptộe comme une prộsence d'un concept correspondant C'est l'algorithme appliqué dans COSHE [Bechhofer-2001] Cet algorithme ne contient pas la reconnaissance des instances.
Une meilleure solution appliquée dans Melita [Ciravegna-2002] est l'utilisation d’expressions régulières Ici, la présence d'un concept est reconnue par une expression régulière Par exemple : Hotel + [Proper Noun] => le concept ô Hotel ằ et le [Proper Noun] est l'instance du concept
Grâce à ces expressions régulières, la détection des concepts permet également la reconnaissance des instances, mais cet algorithme ne peut pas résoudre le problème de remplacement par pronom Il doit accepter la perte de concept et d'instance dans ce cas-là De plus, Melita utilise l'apprentissage supervisé pour la collection des expressions régulières.
Illustration 3: Apprentissage supervisé dans Melita
Clairement, l'apprentissage supervisé demande beaucoup d'effort des utilisateurs À côté de l'apprentissage supervisé, l'apprentissage non supervisé peut être aussi appliqué pour la reconnaissance des instances, c'est le cas de Armadillo[Ciravegna-2004].
Pour reconnaợtre des noms d'entitộs, d'abord il collecte les noms d'entitộ par une mộthode de l'extraction de l'information (IE) en utilisant l'apprentissage non supervisé Les noms d'entité sont collectés à partir des noms des auteurs des articles dans Citeseer, ou à partir des informations supplémentaires qui indiquent les noms propres par exemple : noms de personnes, de lieux, d'entreprises,
Le point fort d'Armadillo est qu'il demande beaucoup moins d'intervention manuelle que Melita, c'est une bonne solution pour collecter les noms d'entités avec une bonne précision et rappel selon son test Cette solution est bonne pour collecter les noms des personnes, pays, villes mais pour collecter les noms de livres , par exemple : Romeo and Julliette est considéré comme un nom ou deux noms ? Dans les tests donnés par Armadillo, la précision de la reconnaissance de chaque type de noms n'est pas distinguée. b) Détection des relations
Maintenant, il y a pas beaucoup d'outils qui se focalisent sur la détection des relations [Uren-
Annotation sémantique automatique des textes associés à une image
Dans les documents multimédias, il existe des images avec leur sous-titre et leurs mots clés.
Sous-titre : Step 3 fitting self-locking nut DIN
Mot-clés : bolt, hole, nut.
Sous-titre : Step 4 Fixing self-locking set to the frame.
Leur sous-titre est sous forme textuellele et leurs mots-clés sont un ensemble de termes ou des syntagmes Clairement, nous pouvons appliquer les algorithmes d'annotations sémantiques automatiques des textes sur leur sous-titre Mais pour leurs mots-clés, il faut une nouvelle méthode pour rajouter des annotation sémantiques C'est le problème principal étudié dans cette partie.
Nous avons un sous-titre sous forme textuelle, et un ensemble des mots-clés qui correspond à une image, nous voulons générer un graphe qui représente la signification de l'image.
Entrée : un sous-titre et un ensemble des mots-clés
Sortie : un graphe qui représente la sémantique de l'image correspondante
Dans cette partie, nous proposons une solution basée sur des calculs statistiques afin de deviner des bons triplets sans besoin des informations syntaxiques et des informations de positions entre les mots.
Du point de vue théorique, cette approche est logique cependant il faut beaucoup du temps ainsi qu'une grande base d'images ayant des mots-clés pour l'évaluer par des tests réels.
Comme les langues naturelles, les images aussi sont utilisées pour exprimer des idées Donc, nous pouvons dire que la sémantique d'une image est ce que l'auteur veut exprimer quand il l'insère dans son document.
En fait, le contenu visuel d'une image contient beaucoup de sens différents, chacun a une interprétation différente Et à partir d'une enquête sur des site internet, pour la plupart de cas, ce que l'auteur veut exprimer depuis une image dans son document est contenu dans le sous-titre de l'image.
Illustration 4: Le sous-titre exprime ce que l'auteur veut dire, pas le contenu visuel de l'image.
Illustration 5: Le sous-titre exprime ce que l'auteur veut dire depuis l'image.
A partir du modèle, nous pouvons appliquer l'algorithme d'annotations sémantiques pour les 4 premières étapes, mais pour la dernière étape, il faut un nouvel algorithme Dans ce cas là, nous n'avons pas d'information à propos de la position entre les concepts et les relations, ni de la relation syntaxique entre les termes.
Donc, pour le problème, nous proposons une méthode basée sur l'inférence des triplets En réalité, dans plusieurs cas, les humains peuvent comprendre une phrase qui n'est pas complète
– Il y a une recherche que les anglais ne peuvent pas entendre tous les mots que les autres parlent, mais ils comprennent ce que les autres parlent.
Nous pouvons ordonner des mots désordonnés pour retrouver la bonne phrase.
Détection des concepts depuis le sous-titre et l'ensemble des mots clés
Détection des relations depuis le sous-titre et l'ensemble des mots clés
Génération des annotations RDF depuis le sous-titre
Analyser les ensembles C et R pour rajouter des triplets au graphe G
Reconnaissance des instances pour chaque concept de C
Ex : research / he / has to / write / can / he / the essay /before
Nous pouvons deviner la phrase correcte : ô he has to research before he can write the essay ằ ou ô before he can write the essay, he has to research ằ
Ces deux exemples montrent que dans plusieurs cas, nous pouvons deviner le sens des phrases incomplètes ou même si l'ordre de ses mots est changé, c'est-à-dire dans plusieurs cas le sens d'une phrase reste inchangé si nous supprimons des mots peu importants ou désordonnons ses mots Et l'algorithme proposé pour ce problème imite cette inférence humaine. b) Algorithme général
Algorithme 4: Algorithme général du problème
Clairement, à partir de l'algorithme, il y a deux sous problèmes à résoudre :
– Comment choisir le meilleur triplet ?
– La condition d'arrêt pour l'ajout d'un nouveau triplet au G ?
C'est stopCondition. c) Le meilleur triplet
Il existe peut-être plusieurs manières de trouver le meilleur triplet Dans cette partie, nous proposons une méthode basée sur la fonction statistique de co-occurrence
−C :set of found concepts which are returned by the step Detection of Concepts.
−R :set of found relations which are returned by the step Detection of Relations.
−G 0 :initial set of triplet which is generated from the caption. Output :
−G :set of triples expressing the semantic of the corresponding text.
T ={t|t=arb ; t∉G 0 ; a ,b∈C ; r∈R ; a∈domain of r ; b∈range of r};
}while ! stopCondition ;return G ; i Hypothèse initiale
Pour les documents dans un même domaine, leur contenu a tendance à être similaire Donc, la similarité entre un nouvel document dans un même domaine et les autres documents existants du domaine est le critère principal pour deviner si un triplet correspond au nouveeau document ou pas.
C'est-à-dire, le meilleur triplet d'un ensemble des triplets est le triplet tel que : si nous l'ajoutons au graphe du nouveau document, le contenu du document représenté par le graphe doit être le plus similaire au contenu commun du domaine. ii Fonction de co-occurrence
Dans un domaine correspondant à une ontologie, nous pouvons compter le nombre de co- occurrences de couples ALR ou RBR depuis les triplets réels dans ce domaine, dans lesquels, AL et BR sont deux concepts et R est une relation.
Par exemple : fo(ALR) = 10, c'est-à-dire dans les textes réels dans ce domaine, nous trouvons 10 triplets sous forme ALRX, dans lesquels X est un concept quelconque.
Similairement, fo(RBR) = 20, c'est à dire dans les textes réels du domaine, nous trouvons 20 triplets sous forme XRBR, dans lequel X est un concept quelconque.
La fonction fo est utilisée pour évaluer le meilleur triplet. iii Vecteur du domaine
Pour représenter le contenu commun du domaine, nous utilisons un vecteur créé depuis la fonction fo qui est comptée à partir des annotations existantes du domaine Il s'appelle le vecteur du domaine : VD.
Chaque dimension du vecteur correspond à un couple AR ou RB, dans lesquels R est une relation définie dans l'ontologie et A, B sont deux concepts définis dans l'ontologie, A appartient au domaine de R et B appartient au range de R.
Le valeur de chaque dimension du vecteur est calculée par la formule ci-dessous :
ValRB= foRB iv Vecteur du document
Dans notre approche, nous représentons un document par un graphe G, et maintenant, pour calculer la similarité entre son contenu et le contenu commun du domaine, nous transformons son graphe en vecteur, il s'appelle vecteur du document : VG
La création du vecteur du document est similaire à celle du vecteur du domaine Mais, fo est remplacée par la fonction fog La fonction fog est aussi une fonction de co-occurrence calculé sur le graphe G.
∑ i , j fogA i R j ∑ i , j fogR i B j et ValRB= fogRB
Par exemple : G est un graphe, G est évidemment un ensemble des triplets ARB Donc, soit G={AR1B, AR2C, CR1B}, et le vecteur VG dispose de 5 dimensions [AR1, AR2, CR1, R1B, R2C].
Dans ce simple graphe, fog(AR1)=1, fog(AR2)=1 , fog(CR1)=1, fog(R1B)=2, fog(R2C)=1
Selon ces deux formules, la valeur de chaque dimension est calculộe de la faỗon suivante :
6=ValAR 2 =ValCR 1 =ValR 2 C
6 Donc, le vecteur du G : V G =[ 1 6 , 1 6 , 1 6 , 2 6 , 1 6 ] v Choix du meilleur triplet
Comme notre hypothèse, lorsque nous ajoutons le meilleur triplet au graphe du document, le contenu du document qui est représenté par graphe est le plus similaire à celui commun du domaine Donc, l'algorithme du choix du meilleur triplet est :
Algorithme 5: Algorithme du choix du meilleur triplet.
La création de deux vecteurs VGtmp et VD est déjà abordée dans les deux sections ci-dessus
Conclusion et perspective
Dans le cadre du stage, nous avons intégré avec succès deux Wrappers de deux outils linguistiques à la plateforme de Gate sur laquelle notre plateforme base Ce sont deux outils complexes parce qu'ils appellent aussi d'autres outils existants (Brille, Lemmatiseur, TreeTagger) ainsi que d'autres bases de données différences (WordNet1.6, CELEX).
Pour le problème d'annotation sémantique automatique, nous avons testé avec le succès une solution suivant l'approche syntaxique en utilisant RASP dans SevenPro, dans lequel le stagiaire fait partie deux modules : reconnaissance des instances et vérification des triplets Et nous avons aussi généralisé la solution pour faciliter la recherche d'une amélioration.
Et dans la dernière partie, nous avons proposé une solution basée sur des calculs statistiques pour le problème d'annotation sémantique automatique des textes associés à une image
Maintenant, il faut des tests pour affirmer cette solution, mais il semble qu'elle soit une nouvelle approche pour le problème d'annotation sémantique automatique, et elle soit applicable à des phrases incomplètes. À l'avenir, nous allons résoudre le problème d'annotation sémantique automatique dans le cas général, c'est-à-dire, les sous-problèmes difficiles montrés seront résolu :
Annexe
gate.SourceURL
file:/home/minguyen/Projets/Java/AFWrapper/text-en.txt
docNewLineType
MimeType
text/plain
A statistical model is used to assign grammatical
categories.
string
grammatical
kind
word
length
11
orth
lowercase
kind
space
length
1
string
kind
space
length
1
string
kind
space
length
1
string
string
to
kind
word
length
2
orth
lowercase
kind
space
length
1
string
kind
punctuation
length
1
string
.
string
statistical
kind
word
length
11
orth
lowercase
string
is
kind
word
length
2
orth
lowercase
kind
space
length
1
string
kind
internal
string
categories
kind
word
length
10
orth
lowercase
kind
space
length
1
string
string
assign
kind
word
length
6
orth
lowercase
string
used
kind
word
4
orth
lowercase
kind
control
length
1
string
kind
space
length
1
string
string
A
kind
word
length
1
orth
upperInitial
Id="14" Type="SpaceToken" StartNode="37" EndNode="38">
kind
space
length
1