Projet SYBILIUM
1/8
Sybiliuuuuuuuuuuuuuuuuuuuuuuuuum !!!!!!!
Table des matières :
I. Présentation du projet ............................................................................. 2
I.1. Sybilium ........................................................................................... 2
I.2. Contraintes du projet ........................................................................ 3
I.2.a. Programmation ........................................................................... 3
I.2.b. Performances ............................................................................. 3
II. Moteur de prédiction .............................................................................. 4
I.3. Les différentes étapes ....................................................................... 4
I.3.a. Mots .......................................................................................... 4
I.3.b. N-Gram ...................................................................................... 4
III. Arbres .................................................................................................. 6
I.4. Définition .......................................................................................... 6
I.5. Arbre pondéré .................................................................................. 7
I.6. Application à Sybilium ....................................................................... 7
Projet SYBILIUM
2/8
I
I.
.
P
Pr
ré
és
se
en
nt
ta
at
ti
io
on
n
d
du
u
p
pr
ro
oj
je
et
t
I.1.
Sybilium
Nom du projet
Sybilium
Type d’application
Moteur de prédiction pour aide au handicap
Encadrement
Yannick Estève
Nombre d’étudiants
5
Etudiants
BOULIERE Julien
BRICHET Gaëtan
CERDAN Yohann
MOULIN Julien
VIALLEFONT Gregory
Le projet Sybilium est un projet axé principalement sur l’aide au handicap.
Le projet Sybilium consiste à développer un moteur de prédiction de mots et à
l’intégrer au logiciel Sybille : ce logiciel est un logiciel développé pour la saisie de
mots par des personnes qui ne peuvent utiliser un clavier classique en raison de leur
handicap. Ceci permet aux personnes fortement handicapées de pouvoir rédiger des
documents électroniques.
Le processus de saisie utilisé dans Sybille consiste à faire défiler un curseur
sur chaque lettre de l’alphabet, l’utilisateur envoyant une impulsion (par un
mouvement de paupière, d’un doigt, etc.) lorsque le curseur se superpose au
caractère qu’il souhaite afficher.
Sybille possède également un moteur de prédiction qui permet d’accélérer le
processus de saisie en intégrant un système de complétion qui propose à l’utilisateur
les mots les plus probables en fonction des lettres déjà saisies.
L’image suivante représente une capture d’écran du logiciel Sybille :
Projet SYBILIUM
3/8
En raison des compétences du LIUM dans le domaine de la reconnaissance de
la parole, il a été proposé au LIUM de participer à l’amélioration du moteur de
prédiction. En effet, ce type de problématique est très proche de certaines
problématiques rencontrées en reconnaissance de la parole.
Pour cela, le LIUM a besoin de son propre moteur de prédiction de mots. Ce
moteur doit s’intégrer aux outils du LIUM déjà existants, et devra pouvoir interagir
avec le logiciel Sybille : c’est l’objectif du projet Sybilium.
I.2.
Contraintes du projet
I
I.
.2
2.
.a
a.
.
P
Pr
ro
og
gr
ra
am
mm
ma
at
ti
io
on
n
Sybille est développé en .NET (Sybille n’est pas un logiciel libre). Le moteur de
prédiction devra fonctionner aussi bien sous linux/UNIX que sur une plateforme .NET
intégré au logiciel Sybille. Pour des raisons de performances, Sybilium sera
développé en langage C.
I
I.
.2
2.
.b
b.
.
P
Pe
er
rf
fo
or
rm
ma
an
nc
ce
es
s
Sybilium doit pouvoir proposer des mots à l’utilisateur en temps réel, le temps
de réponse après chaque requête de l’utilisateur doit être réduit au maximum. C’est
pour cette raison que le langage choisit fut langage C.
Projet SYBILIUM
4/8
I
II
I.
.
M
Mo
ot
te
eu
ur
r
d
de
e
p
pr
ré
éd
di
ic
ct
ti
io
on
n
I.3.
Les différentes étapes
I
I.
.3
3.
.a
a.
.
M
Mo
ot
ts
s
L’objectif principal de Sybilium est la prédiction de mots. Le principe est de
deviner le mot que l’utilisateur veut taper à partir des premières lettres, et ainsi
diminuer le nombre d’action de l’utilisateur.
A chaque lettre tapée par l’utilisateur, Sybilium va lui proposer un certain
nombre de mots possible en fonction des lettres déjà tapées.
Par exemple si l’utilisateur veut taper « allemand », il commence par taper
« a ». Le programme va lui proposer les premiers mots du dictionnaires commençant
par « a ». Plus l’utilisateur va taper de lettres, plus les mots proposés vont se
rapprocher de ce qu’il veut taper. Lorsqu’il sera arrivé à « all », Sybilium va lui
proposer « allemand ». On aura donc gagné plusieurs clicks.
Exemple :
Lettres tapées
Propositions
a
absent, absolu, absurde, abordable…
al
albanais, aliment, alimentaire…
all
allemagne, allemand, allemande…
Dans un premier temps, Sybilium proposeras des mots dans l’ordre
alphabétique du dictionnaire de manière équiprobable. Mais après un certain temps
d’utilisation, Sybilium proposeras des mots en fonction des habitudes de l’utilisateur.
I
I.
.3
3.
.b
b.
.
N
N-
-G
Gr
ra
am
m
Un
n
-gramme est une sous-séquence de
n
éléments construite à partir d'une
séquence donnée. L'idée semble provenir des travaux de Claude Shannon en théorie
de l'information. Son idée était que, à partir d'une séquence de lettres donnée (par
exemple "
par exemple
") il est possible d'obtenir la fonction de vraisemblance de
l'apparition de la lettre suivante. À partir d'un corpus d'apprentissage, il est facile de
construire une distribution de probabilité pour la prochaine lettre avec un historique
de taille
n
.
À partir du (court) corpus "par exemple", nous obtenons :
Projet SYBILIUM
5/8
- Pas d'historique (unigramme) :
p : 2 occurrences sur 10 lettres = 1/5
e : 3 occurrences sur 10 lettres = 3/10
x : 1 occurrence sur 10 lettres = 1/10
... La somme des probabilités étant nécessairement égale à 1.0.
- Historique de taille 1 (on considère la lettre et un successeur) :
p-a : 1 occurrence sur 9 couples = 1/9 ;
p-l : 1 occurrence sur 9 couples = 1/9 ;
p-e : 0 occurrence sur 9 couples = 0 ;
... La somme des probabilités étant toujours nécessairement égale à 1.0.
Nous obtenons des probabilités conditionnelles nous permettant de connaître,
à partir d'une sous-séquence, la probabilité de la sous-séquence suivante. Dans notre
exemple, P(a | p) = 1 / 9 est la probabilité d'apparition de l'élément a sachant que
l'élément p est apparu.
À titre d'exemple, le bi-gramme le plus fréquent de la langue française est
« de », comme dans l'article « de », mais aussi comme dans les mots « demain »,
« monde » ou « moderne ».
Ici, nous utiliserons le modèle de prédiction N-Gram Pour des mots et non pas
pour des lettres. Ainsi, nous allons prédire un mot à partir des n-1 mots précédents.
Théoriquement, c’est la probabilité contextuelle d’apparition d’un mot en fonction des
n-1 précédents.
Par exemple, dans le cas d’une prédiction Tri-Gram (3 mots), si l’utilisateur
tape « le poisson », Sybilium va proposer « rouge ».
Dans le cas d’une prédiction N-Gram, Sybilium va proposer à l’utilisateur un
mot a partir des n-1 mots précédents. Pour cela le moteur se servira de ce qu’il aura
appris des habitudes de l’utilisateur.
1 / 8 100%