Tải bản đầy đủ (.pdf) (55 trang)

Vers une plate forme dannotations sémantiques automatiques à partir de documents multimédias

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1006.06 KB, 55 trang )

Vers une plate-forme d'annotations
sémantiques automatiques à partir
de documents multimédias
Mémoire de fin d'études
Master d'Informatique

Etudiant : Minh-Tuan NGUYEN
Superviseurs : Hacène Cherfi
Khaled Khelif
Rose-Dieng Kuntz

Sophia Antipolis, Septembre 2007


TABLES DES MATIÈRES
I. Introduction ...................................................................................................................................... 5
II. Intégration des outils linguistiques.................................................................................................. 6
1.Plate-forme de Gate .................................................................................................................... 6
2.Acabit............................................................................................................................................8
3.Fastr.............................................................................................................................................. 9
4.implantation................................................................................................................................ 11
III. Annotation sémantique automatique des textes........................................................................... 15
1.Introduction.................................................................................................................................15
2.Travaux similaires.......................................................................................................................17
a)Détection des concepts et reconnaissance des instances........................................................17
b)Détection des relations...........................................................................................................18
3.Détection des concepts................................................................................................................19
a)Objectif.................................................................................................................................. 19
b)Difficultés.............................................................................................................................. 19
c)Description de l'algorithme général....................................................................................... 21
4.Reconnaissance des instances..................................................................................................... 21


a)Objectif ................................................................................................................................. 21
b)Difficultés.............................................................................................................................. 22
5.Détection des relations................................................................................................................22
a)Objectif.................................................................................................................................. 22
b)Difficultés.............................................................................................................................. 22
c)Description de l'algorithme général....................................................................................... 23
6.Reconnaissance des triplets........................................................................................................ 23
a)Objectif ................................................................................................................................. 23
b)Algorithme général................................................................................................................ 24
c)Difficultés.............................................................................................................................. 24
7.Implantation................................................................................................................................ 25
a)Travaux à faire....................................................................................................................... 25
b)RASP Parseur........................................................................................................................ 26
c)Algorithme............................................................................................................................. 27
d)Conception............................................................................................................................. 28


e)Résultat ................................................................................................................................. 30
IV. Annotation sémantique automatique des textes associés à une image.........................................33
1.Introduction.................................................................................................................................33
2.Sémantique d'une image............................................................................................................. 34
3.Algorithme ................................................................................................................................. 37
a)Modèle général.......................................................................................................................37
b)Algorithme général................................................................................................................ 38
c)Le meilleur triplet.................................................................................................................. 38
d)Condition d'arrêt.................................................................................................................... 42
e)Exemple................................................................................................................................. 43
V. Conclusion et perspective.............................................................................................................. 46
VI. Référence......................................................................................................................................48
VII. Annexe........................................................................................................................................ 50



REMERCIEMENTS
C'est un grand plaisir pour moi de remercier tous les personnes qui ont permis à ce travail
d'être ce qu'il est.
Je remercie tout d'abord M. Hacène CHERFI de m'avoir bien dirigé avec une grande
chaleur de pas en pas toute la durée du stage, je ne peux rien accomplir sans vous.
Je remercie Mme. Rose DIENG-KUNTZ, Directrice de recherches INRIA pour m'avoir
choisir et surtout pour nos discussions enflammées qui me donne beaucoup de
connaissances intéressantes . Je n'oublie jamais votre sourire dans la première fois nous nous
rencontrons.
Je remercie M. Khaled KHELIF qui m'a aidé dans les premiers pas de mon stage ainsi
que dans les moments où je dois faire face des problèmes difficiles.
Je remercie tous les membres du groupe EdelWeisse : Priscile, Virginie, Noureddine,
Mohamed, Alain, Olivier ... de votre accueil ainsi que de m'avoir aidé lorsque j'ai besoin.
J'ai également apprécié la région Alpes Côte d'Azur où il y a beaucoup de paysages très
très beau que je n'ai jamais vu dans ma vie.


Mémoire de fin d'études

NGUYEN Minh-Tuan

I. 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 où 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 » où 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.


-5-


Mémoire de fin d'études

NGUYEN Minh-Tuan

II. 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 plateforme de Gate.

1. 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 (Tokenizers1), les analyseurs morpho-syntaxique (POS Tagger2), 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.

<?xml version="1.0" encoding="UTF-8" ?>
<GateDocument>

<!-- The =document’s features-->

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
langue dans une phrase concrète.

-6-


Mémoire de fin d'études

NGUYEN Minh-Tuan

<GateDocumentFeatures>
<Feature>
<Name className="java.lang.String">MimeType</Name>
<Value className="java.lang.String">text/plain</Value>
</Feature>
<Feature>
<Name className="java.lang.String">gate.SourceURL</Name>
<Value className="java.lang.String">file:/G:/tmp/example.txt</Value>
</Feature>

</GateDocumentFeatures>

<!-- The document content area with serialized nodes -->
<TextWithNodes>
<Node id="0"/>A TEENAGER <Node id="11"/>yesterday<Node id="20"/> 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<Node id="146"/>.<Node id="147"/>
</TextWithNodes>
<!-- The default annotation set -->
<AnnotationSet>
<Annotation Type="Date" StartNode="11" EndNode="20">
<Feature>
<Name className="java.lang.String">rule2</Name>
<Value className="java.lang.String">DateOnlyFinal</Value>
</Feature>
<Feature>
<Name className="java.lang.String">rule1</Name>
<Value className="java.lang.String">GazDateWords</Value>
</Feature>
<Feature>
<Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">date</Value>
</Feature>
</Annotation>
<Annotation Type="Sentence" StartNode="0" EndNode="147"> </Annotation>
<Annotation Type="Split" StartNode="146" EndNode="147">
<Feature>
<Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">internal</Value>
</Feature>
</Annotation>

<Annotation Type="Lookup" StartNode="11" EndNode="20">
<Feature>
<Name className="java.lang.String">majorType</Name>
<Value className="java.lang.String">date_key</Value>
</Feature>
</Annotation>
</AnnotationSet>

<!-- Named annotation set -->
<AnnotationSet Name="Original markups" >
<Annotation Type="paragraph" StartNode="0" EndNode="147"> </Annotation>
</AnnotationSet>
</GateDocument>

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
pour deux outils existants (Acabit et Fastr). La mission principale est de transformer leur sortie
au structure pivot de Gate ci-dessus.
-7-


Mémoire de fin d'études

NGUYEN Minh-Tuan

2. Acabit
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
Lemmatiseur3. 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.
Prétraitement

POS Tagger Brill

Acabit

Lemmatiseur

Sortie XML

li r e

Texte d'entrée

li r
e

Base de données de
POS Tagger Brill

combiner

Base de données
du Lemmatiseur


Base de données de
CELEX

Figure 1: Chaîne de traitement d'Acabit
Pour la sortie, Acabit retourne une liste des candidat-termes sous forme XML.
<?xml version="1.0" encoding="UTF-8"?>
<LISTCAND>
<SETCAND new_ident="7" loglike="1011.405" freq="1">
<CAND old_ident="7">
<AN freq="1">
<BASE> <TERM>local nature </TERM>
</BASE>
</AN>
</CAND>
</SETCAND>
<SETCAND new_ident="0" loglike="1011.405" freq="1">
<CAND old_ident="0">
<AN freq="1">
<BASE> <TERM>large amount </TERM>
</BASE>
</AN>
</CAND>
</SETCAND>

3 Lemmatiseur est un module de traitement de texte qui détecte le lemma pour retrouver le mot original à partir
leurs variantes, ex : lemma de « suis » est « être ». [Magnini-2002].

-8-



Mémoire de fin d'études

NGUYEN Minh-Tuan

<SETCAND new_ident="6" loglike="1011.405" freq="1">
<CAND old_ident="6">
<AN freq="1">
<BASE> <TERM>specific domain </TERM>
</BASE>
</AN>
</CAND>
</SETCAND>
</LISTCAND>

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.

3. Fastr
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.

-9-


Mémoire de fin d'études

NGUYEN Minh-Tuan

appel

TreeTagger

Fastr

Texte d'entrée

Sortie

e

li r

e

lir

base de l iens sémantiques


base de lie ns
morphologiques

générer

générer

Wordnet 1.6

CELEX

Figure 2: Modèle de travail de Fastr
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

large amount

000001

terminological datum

large amounts

0

000001

partial analysis


000001

multi-domain document

multi-domain documents

000001

in-depth understanding

in-depth understanding

000001

specific domain

terminological data

partial analysis

0

0

specific domain

0
0


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 .
000002

local nature

local nature

000002

entire sentence

000002

information description

000002

information content

000002

high information

000002

term extraction


000002

privileged key

000002

preliminary phase

000002

document indexing

0

entire sentences

0

information description
information content

high information
term extraction
privileged keys

0

0


0
0

0

preliminary phase
document indexing

0
0

Exemple 3 : Une résultat réel en sortie de Fastr

-10-


Mémoire de fin d'études

NGUYEN Minh-Tuan

4. Implantation
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.




Entrée dans
structure pivot

Résultats réels de
l'outil

Wrapper sous Gate

annoter

démarrer

Outil à
intégrer

Annoter ces résultats réels et
rajouter ces annotations au
structure pivot

Faire fonctionner l'outil

Figure 3: Manière de fonctionner d'un Wrapper sous Gate
Acabit Wrapper

-11-

Fin



Mémoire de fin d'études

NGUYEN Minh-Tuan

Figure 4: Les classes du Wrapper de Acabit

Illustration 1: Résultat du Wrapper d'Acabit dans la plate-forme de Gate

-12-


Mémoire de fin d'études

NGUYEN Minh-Tuan

Et une annotation en détail de AcabitTerm est la suivante :
<Annotation Id="158" Type="AcabitTerm" StartNode="408" EndNode="425">
<Feature>
<Name className="java.lang.String">Variant</Name>
<Value className="java.lang.String">unvoidable preliminary phase</Value>
</Feature>
<Feature>
<Name className="java.lang.String">Origin</Name>
<Value className="java.lang.String">unvoidable preliminary phase</Value>
</Feature>
<Feature>
<Name className="java.lang.String">Freq</Name>
<Value className="java.lang.Integer">1</Value>
</Feature>

<Feature>
<Name className="java.lang.String">LogLike</Name>
<Value className="java.lang.Double">1010.019</Value>
</Feature>
</Annotation>

Exemple 4 : Une annotation en détail de AcabitTerm

-13-


Mémoire de fin d'études

NGUYEN Minh-Tuan

Fastr Wrapper

Figure 5: Les classes du Wrapper de Fastr

-14-


Mémoire de fin d'études

NGUYEN Minh-Tuan

Illustration 2: Résultat du Wrapper de Fastr sous la plate-forme de Gate
L'exemple suivante montre une annotation de FastrTerm sous forme XML suivant la structure
pivot de Gate.
<Annotation Id="158" Type="FastrTerm" StartNode="374" EndNode="389">

<Feature>
<Name className="java.lang.String">Variant</Name>
<Value className="java.lang.String">term extraction</Value>
</Feature>
<Feature>
<Name className="java.lang.String">NoSentence</Name>
<Value className="java.lang.Integer">2</Value>
</Feature>
<Feature>
<Name className="java.lang.String">Origin</Name>
<Value className="java.lang.String">term extraction </Value>
</Feature>
<Feature>
<Name className="java.lang.String">Variation</Name>
<Value className="java.lang.String">0</Value>
</Feature>
</Annotation>

Exemple 5: une annotation en détail de FastTerm

III. Annotation sémantique automatique des textes
1. Introduction
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 :

-15-


Mémoire de fin d'études


NGUYEN Minh-Tuan
The Ferrari team won the Grand Prix.

Team

Competition
hasType

hasType
"Ferrari"

domain

win

range

"Grand Prix"

Exemple 6: Le graphe correspond une phrase
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 sousproblè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.

-16-


Mémoire de fin d'études

NGUYEN Minh-Tuan


2. Travaux similaires
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.

4 Voir la section Reconnaissance des instances.
5 Voir la section Détection des concepts

-17-



Mémoire de fin d'études

NGUYEN Minh-Tuan

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 [Uren2006, Cimiano-2003], la plupart de ces outils représentent un document comme un ensemble des
concepts. C'est-à-dire, ils ne détectent pas les relations entre les concepts. Dans cette partie, nous
présentons la manière de la détection des relations dans MeatAnnot [Khelif-2006].
Pour décrire les signes d'une relation, dans MeatAnnot utilise des expressions régulières qui
sont écrites par le langage JAPE, par exemple :

-18-



Mémoire de fin d'études

NGUYEN Minh-Tuan

{Token.lemme == “be”}
{SpaceToken}
{Tag.lemme == “a”}
{SpaceToken}
{Tag.lemme == “component”}
{SpaceToken}
{Tag.lemme == “of”}
Figure 6: Une expression régulière écrit dans JAPE
Pour détecter des relations avec les expressions comme ça, il faut un Lemmatiseur pour
reconnaître le lemma d'un mot conjugué. C'est-à-dire, dans MeatAnnot ils ont déjà résolu le
problème de Lemma (6), mais l'ambiguïté sémantique n'est pas encore pris en compte.
Actuellement, il n'y a pas beaucoup de recherches se focalisant sur la détection des relations,
et par conséquent la vérification des triplets (7), qui est le problème le plus important de la partie
de reconnaissance des triplets, n'est pas encore prise en compte. Dans MeatAnnot, les auteurs
détectent les triplets des phrases simples issues de textes en biologique : Sujet-Verbe-Objet.
Donc, la vérification des triplets est aisée. Cependant, pour les phrases plus difficiles, cette
vérification constitue réellement un problème.

3. Détection des concepts
a) Objectif
D'un point de vue sémantique, nous détectons la présence des concepts dans un texte, ces
concepts était déjà définis dans l'ontologie.
b) Difficultés
Il y a des difficultés aux quelles nous devons faire face lorsque nous détectons un concept.



Lemma : un mot a plusieurs variantes. Si nous ne prenons pas en compte ce phénomène,
nous allons perdre le concept.
Ex : « corpora » est le pluriel de « corpus ». Donc, les deux mots « corpora » et
« corpus » sont deux signes de la présence du concept « corpus ».



Ambiguïté sémantique : il est normal qu'un syntagme ait plusieurs sens. C'est-à-dire, il

6 Voir la section Difficultés de Détection des Relations.
7 Voir la section Reconnaissance des Triplets

-19-


Mémoire de fin d'études

NGUYEN Minh-Tuan

peut désigner plusieurs concepts. Dans la phrase, un syntagme est concept A, dans une
autre phrase il est peut-être concept B, voire une certaine relation.
Par exemple :





« display » désigné le concept « Exhibit », ex : « The museum had many displays of
oriental art ».




« display » désigné le concept « Screen », ex : « My computer need a new display. »



« display » désigné la relation « show », ex : « The program is displaying its
results. »

Reprise anaphorique : en langue naturelle, un mot est peut-être remplacé par un pronom.
Il n'est pas facile de savoir automatiquement quel mot est remplacé par le pronom par le
pronom.
Ex : The house of Mary is far from the center of city. But it is very confortable.



Signe caché : il existe un phénomène qui influence la détection des concepts dans la
langue naturelle, surtout la langue parlée : quelquefois, il cache des mots importants,
mais les lecteurs ou auditeurs peuvent toujours comprendre notre idée.
Ex : « Can you show me an example ? Oh, I can not. ».
La phrase « I can not » est équivalente à « I can not show an example ».

c) Description de l'algorithme général

-20-


Mémoire de fin d'études


NGUYEN Minh-Tuan
concept A

concept B
Détection
des concepts

Terme/syntagme

.
.
.

Relation A

Informations de l'extérieur
du terme/syntame

Relation B

.
.
.

Algorithme 1: Modèle général de la détection des concepts

Chaque concept a des signes de présence. C'est-à-dire, pour savoir si un concept existe dans
une phrase ou pas, on cherche ses signes de présence. Clairement, une chaîne correspondante à
un concept est un de ses signes de présence. Par exemple : la présence de la chaîne « car » est un
signe de présence du concept « Car ». Mais, il existe l'ambiguïté sémantique, remplacement par

pronom ..., donc juste la présence de chaînes n'est pas suffisante, il faut des informations de
l'extérieur de terme/phrase.
Par exemple :
Soit deux phrases : « (1) My car is very expensive. (2) But it is not so big. »
Clairement, pour savoir que la chaîne « it » dans la deuxième phrase exprime la présence du
concept « Car », il faut obligatoirement la première phrase.

4. Reconnaissance des instances
a) Objectif
Pour chaque présence d'un chaîne proche d'un concept de l'ontologie, nous avons besoin de
savoir si c'est une instance du concept ou le concept. Ensuite, si c'est une instance du concept,
nous avons besoin encore de savoir si c'est une nouvelle instance ou une instance qui est déjà
apparue dans le texte.
-21-


Mémoire de fin d'études

NGUYEN Minh-Tuan

b) Difficultés
Distinction entre une instance ou un concept :



Ex : « I like rose. » : Le terme « rose » ici désigne le concept « Rose », pas une certaine
instance du concept « Rose ».
« I like this rose. » : Le terme « rose » ici désigne une instance du concept « Rose ».
Distinction entre une nouvelle instance ou une instance existante :




Ex : « The house of Mary is far from the center of city. But this house is very
comfortable ».
Dans cet exemple, nous devons savoir que « this house » et « house of Mary » désigne
une même instance du concept « House ».

5. Détection des relations
a) Objectif
Nous détectons la présence sémantique des relations, ces relations sont déjà définies dans
l'ontologie. Dans cette étape, nous pouvons vérifier également le sujet et l'objet de la relation,
mais en réalité, cette vérification est difficile à faire à cause de l'ambiguïté sémantique et la
richesse de la langue naturelle. De ce fait, la vérification du sujet et de l'objet est faite par
l'étape reconnaissance des triplets.
b) Difficultés
Similairement à la détection des concepts, il y a aussi des difficultés similaires aux quelles
nous devons faire face lorsque nous détectons une relation.


Lemma : un mot a plusieurs variantes, surtout en ce qui concerne le verbe; par exemple,
en anglais un verbe a normalement 5 variants.
Ex : ces syntagmes « be a component of », « is a component of », « was a component
of » ... dénotent une même relation.



Ambiguïté sémantique : il est normal qu'un syntagme ait plusieurs sens. C'est-à-dire, un
syntagme peut désigner plusieurs relations.
Ex :



« She open the car door », dans cette phrase le verbe « open » désigne la relation
« Open ».



« Tom opened the meeting with a long speech », dans cette phrase le verbe « open »
-22-


Mémoire de fin d'études

NGUYEN Minh-Tuan

désigne la relation « Begin ».

c) Description de l'algorithme général
D'un point de vue générale, il n'y a pas beaucoup de différences entre la détection des
concepts et la détection des relations. Parce que la détection d'une relation est le processus de la
recherche des signes de présence de la relation. Clairement, des chaînes correspondantes à la
relation sont considérées comme des signes de présence de la relation, mais ce n'est pas
suffisant, il faut des informations de l'extérieur du terme/syntagme.

concept A

concept B
Détection des
relations

Terme/syntagme


.
.
.

Relation A

Informations de l'extérieur
du terme/syntagme

Relation B

.
.
.

Algorithme 2: Détection des relations

6. Reconnaissance des triplets
a) Objectif
La fonction principale de cette étape est de générer les triplets qui expriment le « sens » de la
phrase correspondante. Le problème principal de cette étape est comment vérifier si un triplet
correspond la sens de la phrase correspondante ou pas.

-23-


Mémoire de fin d'études

NGUYEN Minh-Tuan


b) Algorithme général
Input :
− C : list of found concepts which are returned by the step Detection of Concepts.
− R : list of found relations which are returned by the step Detection of Relations .
Output :
− G : set of triples express the semantic of the corresponding text.
ALGORITHM
T = { t | t=arb ; a ,b ∈C ; r ∈ R ; a∈ domain of r ; b∈range of r } ;
G = G0 ;
for each t ∈T
{
if  isCorrespondingToMeaningOfText  t
G = G∪{t } ;
}
return G ;
Algorithme 3: Algorithm général de reconnaissance des triplets.
Clairement, la fonction isCorrespondingToMeaningOfText(t) est le problème principal de
cette étape. En fait cette fonction vérifie si un triplet exprime le sens du texte correspondant.
Comme nous l'avons précisé dans la partie de la détection des relations, cette vérification est
difficile. C'est donc la partie de la reconnaissance des triplets qui le fait. Par exemple :
The engineer who invents OX2 car works in the Honda company.
Wheel discs which cover wheel and hub nuts may project beyond the vertical projection of the
external surface.
Dans la première phrase, il y a deux triplets : [engineer – invent – OX2 car] et [engineer – work – Honda
company].

c) Difficultés
Les entrées de cette étape sont les sorties de trois premières étapes : détection des concepts,
reconnaissance des instances et détection des relations. Donc, les erreurs de ces étapes influent

beaucoup sur la vérification des triplets. Nous pouvons classifier les erreurs de ces trois étapes
en deux types :
Perte : il existe des concepts, relations et instances que nous ne reconnaissons pas dans le
texte.



Ex : « This car is very modern. But it is very expensive. »
Peut-être le module de la détection des concepts ne reconnaît pas la présence du concept
« Car » dans la deuxième phrase. Cela exprime ce que nous appelons une Perte.
-24-


Mémoire de fin d'études

NGUYEN Minh-Tuan

Incorrection : c'est causé par des reconnaissances incorrectes, nous se méprenons que un
concept, une relation sont présenté dans le texte, mais en faite c'est faux.



Par exemple : « Ferrari is a good team. » Peut-être que le module de la détection des
concepts considère Ferrari comme une instance du concept « Car », mais, il n'existe pas de
concept « Car » dans ce texte. C'est une Incorrection.
Normalement, le taux de Perte varie à raison l'inverse du taux d'Incorrection. Clairement, si
nous voulons moins de perte, nous devons accepter plus d'incorrection et vice-versa.
Si le taux de Perte est trop grand, le module de reconnaissance des triplets a besoin de deviner
des concepts ou des relations manquées. Si le taux de Faute est trop grand, la raison principale
est l'ambiguïté sémantique.

Pour la vérification des triplets, clairement nous avons besoin de plus d'information. Dans la
partie de l'implantation, nous suivons l'approche syntaxique dans laquelle les informations
supplémentaires pour la vérification des triplets sont les relations grammaticales entre les mots
du texte entré.

7. Implantation
a) Travaux à faire
Dans le cadre du projet SevenPro [SevenPro-Homepage], nous implantons deux parties du
problème d'annotations sémantiques automatiques : la reconnaissance des instances et la
reconnaissance des triplets. Pour la vérification des triplets, cette implantation suit une approche
syntaxique.
Ces deux parties sont implémentées dans un même module : génération des triplets. Les
travaux à faire sont les suivants :
1) Pour chaque concept qui est détecté par le module de la détection des concepts, nous
cherchons son instance, normalement une instance est une chaîne de caractères.
2) À partir des concepts et des relations, nous cherchons les triplets qui correspondent au
« sens » de la phrase.
3) À partir des triplets trouvés, nous générons l'annotation RDF.
Comme l'exemple ci-dessus, « Team » est un concept trouvé par le module de la détection de
concepts, ce concept est stocké sous forme de structure pivot XML de Gate.
<Annotation Id="68" Type="Concept" StartNode="63" EndNode="67">
<Feature>
<Name className="java.lang.String">term</Name>
<Value className="java.lang.String">team</Value>
</Feature>

-25-



×