-
Notifications
You must be signed in to change notification settings - Fork 0
/
Representation.tex
201 lines (172 loc) · 9.33 KB
/
Representation.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
\section{La représentation en graphe}
\subsection{La première version du graphe}
Les fichiers XML sont facilement transférables en représentation en graphe,
puisqu'ils continennent une hiérarchie arborescente d'entrées.
En principe chaque niveau de la hiérarchie est représenté par un nœud différent
avec des arcs qui lient chaque nœud à ses fils dans la hiérarchie, comme dans
\hyperref[fig:XMLhierarchy]{Figure~\ref*{fig:XMLhierarchy}}. Cette
représentation a l'avantage de préserver la structure hiérarchique d'origine.
En plus des arêtes descendantes qui existent dans le schéma
\hyperref[fig:XMLhierarchy]{Figure~\ref*{fig:XMLhierarchy}}, nous établissons
des arêtes montantes, afin de retrouver facilement la relation entre un mot qui
apparaît dans une entrée et le lexème de l'entrée. Les poids sur ces arêtes ne
sont pas les mêmes que les arêtes descendantes afin de retrouver une différence
dans ces relations (Voir la pondération des relations pour plus de détails).
\subsubsection{Simplification de la structure}
En pratique, il est possible de surpasser d'un grand nombre de nœuds
intermédiaires dans la hiérarchie en attribuant une arête directe entre une
paire de mots dont le poids serait l'addition de toutes les valeurs des liens
qui constituent le chemin entre les deux mots. Le choix des sommets est un
compromis entre mettre le plus d'informations possibles dans le graphe et
veiller à la non-explosion de la taille du graphe. Ceci n'est possible que
parce que dans les tâches effectuées (détaillés dans la partie XXX), nous
n'aurons jamais besoin d'extraire ces nœuds intermédiaires, même si nous
souhaitons tenir compte de leur présence.
Ainsi, l'entrée dans \hyperref[fig:banane_full]{Figure~\ref*{fig:banane_full}}
est simplifiée en l'entrée dans
\hyperref[fig:banane_simple]{Figure~\ref*{fig:banane_simple}}:
\begin{figure}
\centering
\parbox{5cm}{
\def\svgscale{0.5}
\input{entry_banane_full.pdf_tex}
\caption{}
\label{fig:banane_full}}
\qquad
\begin{minipage}{5cm}
\def\svgscale{0.5}
\input{entry_banane_simple.pdf_tex}
\caption{}
\label{fig:banane_simple}
\end{minipage}
\end{figure}
Notons que nous préservons deux niveaux de hiérarchie pour le mot d'entrée : un
contenant le mot seul et l'autre contenant aussi sa catégorie syntaxique. Ceci
est un moyen d'assurer que le mot soit trouvable dans le réseau sans devoir
spécifier une catégorie syntaxique particulière, tout en permettant de faire la
distinction entre plusieurs catégories syntaxiques pour un mot donné. Chaque mot
taggé à l'intérieur d'une entrée est ainsi lié à une version non-taggée qui
représente le niveau 'entry' de ce mot, même s'il n'existe pas comme entrée dans
le dictionnaire de départ.
Le résultat est donc un graphe qui contient deux sortes de nœuds: des mots
non-taggés (correspondants au niveau entry') et des mots taggés (correspondant
au niveau 'pos'), avec des relations pondérées selon le lien établi entre les
deux mots dans le dictionnaire.
[IMAGE plein d'arêtes].
\subsection{Graphe minimaliste}
Pour trouver les distances à partir des mots non-taggés ou des ensembles
conceptuels, le premier graphe fonctionne bien. Par contre, pour
la désambiguisation, les noeuds de entry et pos ne sont pas convenables.
Tout d'abord, il faut au minimum, ajouter des noeuds correspondants aux sens
différents. Si on ignore la différence entre sens et sous-sens (En principe
cela devrait correspondre à celle de homonymie par rapport à polysemie,
mais malheureusement ce n'est pas une distinction constemment appliquée
dans les dictionnaires et alors difficile à incorporer), cela mène à un
graphe à trois niveaux : entrée, pos et définition.
Si on retient entrée le graphe va contenir une ambiguité inherente
entre les différents pos. Ce niveau n'aide pas à séparer les
sens parce que des liens vers les définitions doivent soit passer par
là (et alors avoir une ambiguité de plus), soit aller directement aux noeuds
pos et alors le niveau en haut est superflou. Vu que l'information
catégorielle est disponible avec une bonne précision avec MELT, nous nous
débarassons du niveau `entrée' et retient que les mot\_pos et les définitions.
Une autre manière d'y voir est de considerer que nous enlevons le lien direct
entre la phonétique et la sémantique. Par exemple, dans un tel graphe,
le lien entre ``bleu''
en tant que adjectif et ``bleu'' en tant que nom n'est pas automatique.
Pour la majorité de mots ce ne pose pas de problème parce que si les deux
formes sont liés semantiquement l'un va apparaitre dans la définition
de l'autre et vice-versa, en plus si on regarde un mot en forme flechi,
normalement, il
faut l'avoir déjà désambiguisé categoriellement pour avoir trouver la forme
dictionnaire (l'entrée) donc en pratique ce n'est pas un niveau utile.
le graphe qui resulte ignore la phonétique, mais retient la syntaxe et
l'ambiguité forte sémantiquement. L'ambiguité est forte parce que chaque
définiton dans le dictionnaire contient des mots qui sont eux-mêmes
ambigüs. Ce graphe est parfaitment bipartie.
et pour éviter la cross-contamination des liens sémantiques des
définitions, il est orienté.
La forme du graphe ressemble au graphe d'internet.
\begin{figure}
\centering
\parbox{5cm}{
\def\svgscale{0.5}
\input{Images/graph_shocker.pdf_tex}
\caption{}
\label{fig:graph_shocker}}
\end{figure}
Ce graphe contient un component très large et fortement connexe (SCC) (jaune),
une petite partie sortante (verte) qui contient des mots qui sont
utilisés dans les définitions mais qui ne possède pas une définition
eux-mêmes. La plupart d'eux sont des mots mal-taggés ou que MELT n'a
pas reconnu. La troisième partie (rouge) est la partie des mots qui
ont définitions mais qui ne sont jamais utilisés dans une définition
eux-même. Ils peuvent aussi avoir des mots non-définis dans leurs
définitions d'où les tendrils.
La partie sortant peut être reduit en regardant si le mot\_pos existe
dans le dictionnaire mais avec une autre catégorie. Ce procesus remplace
entre la moitié et un tiers de tels noeuds. (voir code merge\_rows XXXXX)
Il faut noter aussi, que la partie entrant est exactement comme une
phrase à l'extérieur du dictionnaire, c'est à dire que pour désambiguiser
le dictionnaire, on peut seulement se concentrer sur le componant
fortement connexe. Ce fait nous aide beaucoup parce que la taille du
graphe est si large.
\begin{tabular}{|l|c|c|c|}
\hline
& Composant Sortant & SCC & Composant Entrant \\
\hline
Graphe A & 5195 & 64180 & 77742 \\
\hline
Graphe B & 6248 & 63356 & 81181 \\
\hline
\end{tabular}
la table montre les tailles des composants pour un graphe sans ambiguité
(Graphe A), c'est le graphe avec seulement les prémieres définitions
choisies, et pour un graphe maximalement ambigue (Graphe B), c'est le graphe
où s'il y a un lien de noeud $i$ vers noeud $j$ et $j$ est une des
definitions possibles pour un mot $m$ alors le graphe contient aussi des
liens de $i$ vers toute autre définiton de $m$
\begin{tabular}{|l|c|c|c|c|c|c|c|}
\hline
Taille de sccs & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
\hline
Graphe A Composant Sortant & 5195 & - & - & - & - & - & - \\
Graphe A Composant Entrant & 76484 & 990 & 184 & 62 & 18 & 1 & 3 \\
\hline
Graphe B Composant Sortant & 6248 & - & - & - & - & - & - \\
Graphe B Composant Entrant & 79881 & 1009 & 200 & 64 & 22 & 2 & 3 \\
\hline
\end{tabular}
Pour utiliser ce graphe pour resoudre l'ambigüité sémantique, il
faut tout d'abbord resoudre l'ambigüité interne propre à la graphe.
Parce que le graphe est bipartite, on peut enlever un niveau et remplacer
les arrets sans perdre les distances entre le niveau restant.
Premierement nous avons essayé de prendre seulement le sens de la
première définition (le poid des liens vers des autres définitions
alors étant zéro pour chaque utilisation). L'idée derriere est que
les définitions sont écrites en
ordre d'importance et ca va alors souvent être la bonne choix. Un regarde
sur le dictionnaire a démontré que ce n'est pas en fait le cas et une
solution si facile ne nous aide pas.
En principe la partie fortement connexe de la matrice peut
se désambiguiser lui-même en regardant le flou de probabilité de
chaque noeud définition vers son noeud pos mère dans le graphe où tout les
probabilités entre un pos et ses définitions sont egaux, la définition la
plus prôche va avoir la plus grande probabilité de rentrer à sa mère dans
le graphe (figure XXXXXX).
\begin{figure}
\centering
\parbox{5cm}{
\def\svgscale{0.5}
\input{Images/graphloop.pdf_tex}
\caption{Un noeud pos $A$ a deux définitions: $B$ et $C$. La probabilité
la plus grande entre $p(B\rightarrow A)$ et $p(C\rightarrow A)$ détermine
le sens préféré.}
\label{fig:graphloop}}
\end{figure}
Il est même possible d'envisager un processus itérative par Expectation
Maximisation (EM) où la probabilité d'une transition se rédefinit à
chaque tour par (par exemple pour le graph dans figure XXXXX)
$$p_t(i\rightarrow j) = \frac{p(j\rightarrow i)}{\sum\limits_{k}p(k\rightarrow i)}$$
où la somme k est une élement des noeuds définitions pour le même pos que $j$.
Malheureusement le temps neccessaire pour cet algorithme était trop grand pour l'essayer avec nos ordinateurs actuels.