• Aucun résultat trouvé

Contrairement au module de segmentation, l’analyse textuelle du module d’apprentissage se propose de r´ealiser un « traitement automatique du langage» simplifi´e au niveau de chaque phrase contenu dans le corps du message. Bien entendu, lorsque nous ´evoquons le traitement automatique du langage, nous faisons ´evidemment r´ef´erence `a tous les travaux d´evelopp´es actuellement en linguistique computationnelle et plus particuli`erement dans le domaine du TALN (voir paragraphe 2.2 pour plus de pr´ecisions sur ce sujet). Comme nous l’avons d’ailleurs vu au cours de la partie consacr´ee `a la linguistique, les outils cr´e´es pour analyser le contenu des phrases en langage naturel ne manquent pas, en particulier avec le d´eveloppement de la recherche documentaire sur Internet. Cependant, leurs potentialit´es restent encore bien trop souvent limit´ees `a cause de la difficult´e `a analyser le sens d’un terme dans un contexte particulier. De plus, apr`es avoir regard´e le fonctionnement de deux outils utilisant un TAL et plus ou moins adapt´es `a notre probl´ematique (voir paragraphe 2.2.3), nous en avons conclu que ceux-ci ´etaient beaucoup trop sp´ecifiques `a leur domaine d’application et qu’il leur fallait un champs d’expertise assez large pour pouvoir ˆetre utilis´es tel quel dans notre projet. Compte tenu de cela, nous avons d´ecid´e de construire notre propre outil de traitement du langage qui est charg´e de s´eparer chaque terme contenu dans une phrase et de le stocker ensuite dans une base de donn´ees. Nous avons donc regard´e quelques techniques utilis´ees en Text Mining et avons, `a partir de cela, ´elabor´e trois phases permettant d’extraire les donn´ees int´eressantes : une phase de d´ecoupage de la phrase, une phase de nettoyage et une phase de traitement.

La phase de d´ecoupage: elle consiste, d’une part, `a supprimer toute la ponctuation et d’autre part, `a rep´erer les espaces contenus dans une phrase pour permettre de s´eparer chaque terme les uns des autres. Il s’agit, par cons´equent, de d´ecouper chaque phrase en une succession de termes.

En ce qui concerne la suppression de la ponctuation, nous utilisons la table de ponctuation suivante (de fa¸con pratique, cette liste est stock´ee dans une table d’une base de donn´ees Access ou Oracle comme nous pourrons le voir dans la description technique du logiciel situ´ee dans la partie 4 de cette th`ese) :

. ; ( {

, : ) }

? ! [ ’ ... ” ]

-Il est bien entendu possible, `a tout moment, de rajouter de nouveaux signes de ponctua-tion `a cette table et mˆeme de l’adapter en fonction de la langue du texte (par exemple, s’il s’agit d’un discours en espagnol, nous pourrons rajouter le signe de ponctuation«¡»qui se place g´en´eralement en d´ebut de phrase exclamative).

D’un point de vue plus algorithmique, cette phase s’ex´ecute de la mani`ere suivante : 1. R´eception du contenu du message par le module de segmentation via un stimulus

sp´ecifique (voir paragraphe 4.3.2 pour plus de d´etails sur le fonctionnement des stimuli internes propres `a chaque agent)

2. Connection `a la table« ponctuation»de la base de donn´ees accessible par l’appre-nant grˆace `a l’envoi d’un stimulus

3. Comparaison entre la ponctuation contenue dans la table et celle du contenu du message

4. Suppression de cette ponctuation

5. D´econnexion temporaire de la base de donn´ees

6. Passage des termes du corps du message `a la phase de nettoyage

Prenons un exemple illustratif : Sur la phase : « Il fait beau! », la phase de d´ecoupage donne une succession de trois mots : il fait beau

La phase de nettoyage: Tous les documents textuels doivent ˆetre expurg´es le plus possible des informations inutiles qu’ils contiennent afin que les informations et connais-sances retir´ees soient les plus pertinentes possible. En effet, dans chaque phrase ´ecrite ou prononc´ee, de nombreux termes apparaissent apportant peu d’informations (voir aucune) sur le document concern´e. Ces termes, nomm´es « stops words », sont souvent tr`es fr´ e-quents dans un discours et leur ´elimination lors d’un pr´e-traitement permet par la suite de gagner beaucoup de temps lors de l’analyse linguistique `a proprement parl´ee.

Nous avons donc ´etabli deux listes de « stops words », l’une pour un discours en an-glais et l’autre pour un discours en fran¸cais, qui peuvent bien entendu ˆetre modifi´ees `a tout moment puisqu’il s’agit de listes totalement ind´ependantes du programme multi-agents (nous verrons cela plus en d´etails et de mani`ere plus technique dans la quatri`eme partie de cette th`ese). Ces listes de « stops words » ont ´et´e valid´ees par un linguiste mais il est ´egalement tr`es facile de les trouver sur Internet (par exemple, sur le site http://www.searchengineworld.com).

En ce qui concerne, la liste de «stops words »pour un discours en anglais, nous en avons r´epertori´e 377 et en voici un extrait :

about after all already according again almost also

across against alone always among an and ...

D´ecrire un comportement d’apprenant

Pour un discours en fran¸cais, nous avons enregistr´e 309 « stops words » tels que : a aucun avec celle

`

a aussi avant certain ainsi auquel ce cependant alors aux ceci comme apr`es au cela ...

Regardons un peu le d´eroulement algorithmique de cette phase :

1. R´eception des termes issus de la phase de d´ecoupage via un stimulus sp´ecifique 2. Connection `a la table« stops words »de la base de donn´ees accessible par

l’appre-nant grˆace `a l’envoi d’un stimulus (cette base est la mˆeme que celle contenant la table de ponctuation)

3. Comparaison entre les « stops words »contenus dans la table et tous les termes du message

4. Suppression des « stops words » du message 5. D´econnexion temporaire de la base de donn´ees 6. Passage des termes restants `a la phase de traitement

Si nous reprenons notre petit exemple, `a l’issue de cette phase, seuls les mots « fait »et

« beau» restent.

La phase de traitement: Cette phase, la derni`ere de notre analyse textuelle, place chaque terme, hormis les « stops words », dans une base de donn´ees (de type Access ou Oracle en fonction du volume de donn´ees trait´ees, comme nous le verrons dans la partie suivante. Il s’agit de la mˆeme base renfermant la table«ponctuation»et la table« stops words ») avec le nom de la personne qui l’a prononc´e (cette information sera utilis´ee dans la deuxi`eme phase du processus d’apprentissage). Dans un premier temps, tous les termes sont class´es par ordre d’apparition et de traitement. Cette base est exclusivement accessible par notre agent apprenant et est r´eguli`erement vid´ee lors de toute nouvelle discussion (et au fur et `a mesure de tout nouveau terme appris) entre participants afin de ne pas la surcharger inutilement. D’un point de vue algorithmique, cette derni`ere phase se traduit par :

1. R´eception des termes issus de la phase de nettoyage via un stimulus sp´ecifique 2. Connection `a la base de donn´ees et ouverture de la table« specific words »

3. Inclusion de tous les termes restants `a l’issu de la phase de nettoyage dans cette table

4. D´econnexion de la base de donn´ees

5. Envoi d’un stimulus `a l’analyse statistique

Pour illustrer le d´eroulement de cette premi`ere analyse, nous allons d´eployer, pas `a pas, l’exemple de notre dialogue entre deux professeurs de math´ematiques, plus particuli` ere-ment la premi`ere phrase de James. Rappelons simplement quelques phrases de ce discours :

James: Alors, David, tu as corrig´e l’exercice d’hier sur le calcul de circonf´erence d’une roulotte de cirque, trouves-tu bien le mˆeme r´esultat que moi au niveau du rayon?

David: Non, mais tu as enti`erement raison James. Si je prends quatre fois le rayon, j’obtiendrai bien 480. Par contre, je ne vois pas o`u est mon erreur dans ce probl`eme, peux-tu m’aider?

James: Et bien c’est tr`es simple. Tu multiplies Pi par 2. Puis, le r´esultat de cette multiplication, tu le multiplies par ton rayon. Ton rayon ´etant inconnu, tu le rem-places par x. C’est ce que tu as fait?

Nous obtenons alors l’enchaˆınement suivant :

1. R´eception du contenu (Alors, David, tu as corrig´e l’exercice d’hier sur le calcul de circonf´erence d’une roulotte de cirque, trouves-tu bien le mˆeme r´esultat que moi au niveau du rayon?) de la part du module de segmentation

2. Passage par la phase de d´ecoupage –>Alors David tu as corrig´e l exercice d hier sur le calcul de circonf´erence d une roulotte de cirque trouves tu bien le mˆeme r´esultat que moi au niveau du rayon

3. Passage par le phase de nettoyage –> David corrig´e exercice calcul circonf´erence roulotte cirque trouves r´esultat rayon

4. Passage par la phase de traitement –>

Termes prononc´es Nom de la personne ayant prononc´e le terme

David James

Corrig´e James

Exercice James

Calcul James

Circonf´erence James

Roulotte James

Cirque James

Trouves James

R´esultat James

Rayon James

Cette analyse textuelle se fait, ainsi, pour toutes les phrases prononc´ees lors d’un discours entre participants.

Si l’on poursuit le cheminement de la figure 5.1, l’´etape situ´ee juste apr`es l’analyse tex-tuelle est l’´etape de l’analyse statistique.