44
S TAGE DE FIN DÉTUDE MASTER 2 APPRENTISSAGE ET T RAITEMENT AUTOMATIQUE DE LA L ANGUE Création d’un agent conversationnel pour orienter les clients de la MAIF Auteur : Adeline GRANET Encadrant : Emmanuel MORIN Responsable MAIF : Emmanuel S OREL Responsables Sopra Steria : Wilfrid PAPIN, Maximilien HOLLE 3 juillet 2015

Création d’un agent conversationnel pour orienter les ...pagesperso.lina.univ-nantes.fr/~cdlh/ATAL/Rapports_2015/Granet...qui mes pauses du midi auraient été bien longues)

Embed Size (px)

Citation preview

STAGE DE FIN D’ÉTUDE MASTER 2APPRENTISSAGE ET TRAITEMENT AUTOMATIQUE DE LA LANGUE

Création d’un agent conversationnel pour orienterles clients de la MAIF

Auteur :Adeline GRANET

Encadrant :Emmanuel MORIN

Responsable MAIF :Emmanuel SOREL

Responsables Sopra Steria :Wilfrid PAPIN,

Maximilien HOLLE

3 juillet 2015

Réalisation d’un agent conversationnel Stage fin d’étude

Résumé

La Stratégie client est devenue le maître mot des entreprises qui cherchent sans cesse à améliorer ethumaniser le relationnel client sur leur site internet. C’est pour cela que, depuis quelques années, desnouveaux agents proposant de l’aide aux clients connectés apparaissent sur les sites. En réalité, ce sontdes agents conversationnels autrement appelés Chatbot, le robot simule une conversation amicale avecle client tout en tentant d’apporter des réponses (pré-enregistrées) à ses questions. Ce système a déjàatteint ses limites et beaucoup d’agents conversationnels ont disparu. Lors de questions trop précisesles chatbots ont une tendance à être hors-sujet. L’atout majeur dans cette course reste l’innovationtechnologique. Il est donc nécessaire de perfectionner le fonctionnement du Chatbot en détectant si laquestion dépasse leur champ d’action et agir en conséquence. C’est ce que nous réalisons à travers ceprojet, construire un prototype d’agent conversationnel avec un rôle bien défini et montrer sa capacitéà distinguer plusieurs types de questions. Nous utilisons différentes méthodes bien connues dans letraitement automatique du langage que nous mettons au service d’un robot.

Abstract

For companies, the customers strategy is the guideline. They want to be more and more user-friendly and want to humanise the relationship between their website and their customers. For thisreason, in few years, new agents have appeared on web sites, offering assistance to online customers.In reality, they are chatbots which simulate a friendly conversation with a customer and try to give hima correct pre-registered answer. This system has already reached its limit and many chatbot have disap-peared. When questions are too specifics, the chatbots tend to be off-topic. In this race, the major assetremain the technology innovation. So, it’s necessary to improve operation by detecting if a questionis outside the scope of chatbot and react accordingly. In this project, we are achieving the creation ofa chatbot prototyp. This prototyp has a specific function and is able to differenciate several types ofquestions. Various well-known methods in Natural Language Processing are used for this chatbot.

Université de Nantes 1 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Remerciements

Je souhaite tout d’abord remercier Maximilien HOLLE et les dirigeants de SOPRA STERIA qui m’ont

acceptée en stage et m’ont permis de participer à l’écriture de mon sujet. Bien que mon profil ne corres-

ponde pas aux stages proposés, ils ont détourné le problème en suggérant de m’en créer un sur mesure.

À l’équipe MAIF-SOPRA STERIA qui m’a encadrée chaque jour, un grand merci, tout particulière-

ment, Wilfrid PAPIN pour sa bienveillance et son soutien permanent ; ainsi qu’Emmanuel SOREL pour

ses conseils. À leur coté, j’ai eu la chance de rencontrer des personnes provenant d’horizons différents

mais sensibles et passionnées par l’innovation notamment au cours du Digi’Tech.

Également, au responsable du CSM-I, Frédéric JENK qui m’a fait confiance en m’envoyant en tant

qu’observatrice sur un projet d’aide à la décision entre SOPRA STERIA et la MAIF. J’ai pu assister aux

ateliers dédiés à la construction des règles pour le modèle.

Sans oublier tout mes collègues du CSM-I qui m’ont accueillie chaleureusement, apporté leur exper-

tise quand j’en avais besoin, et fait part de leur expérience professionnelle ainsi que personnelle (et sans

qui mes pauses du midi auraient été bien longues).

Pour finir, je souhaite remercier tous les correcteurs qui ont dû prendre du temps pour relire mon travail.

Université de Nantes 2 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Table des matières

Remerciements 2

1 Introduction 4

2 L’environnement professionnel 5

2.1 Sopra Stéria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 MAIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Un agent conversationnel au service des clients 7

3.1 Répondre à la Stratégie client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Des contraintes environnementales fortes . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3 Des enjeux technologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 De la recherche à la commercialisation 10

4.1 Les intelligences artificielles au cœur de la recherche . . . . . . . . . . . . . . . . . . . 10

4.2 Les agents conversationnels au plus proche de nous . . . . . . . . . . . . . . . . . . . . 15

4.3 Ouverture sur d’autres domaines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5 Des modèles pour un agent 20

5.1 Le data workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.2 Une base de connaissances à construire . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.3 Solution suivant CleverScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.4 Solution suivant la classification des questions . . . . . . . . . . . . . . . . . . . . . . . 27

5.5 Solutions s’appuyant sur les liens sémantiques . . . . . . . . . . . . . . . . . . . . . . . 31

5.6 Réponses du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 Application finale 35

7 Conclusion et perspectives 38

A Corpus de retranscriptions téléphoniques 42

Université de Nantes 3 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

1 Introduction

DEPUIS 2005, nous voyons de plus en plus de personnages animés sur nos sites webs préférés qui nousaccompagnent durant nos visites. Ils viennent souvent nous proposer de l’aide sous forme d’une

fenêtre de conversation. En réalité, ce sont des agents virtuels qui sont présents pour aider l’internautedans son cyber-environnement. Ces agents donnent un coté plus amical et conviviale à un site internet, etdémocratise souvent l’outil de recherche.

Cette technologie innovante est devenue un élément indispensable d’un point de vue marketing. Eneffet, cet agent propose une assistance à tout moment à l’internaute, 7j/7 et 24h/24 sur le site. À traversun système de fenêtre de dialogue, le client peut avoir une discussion avec l’agent virtuel, dans laquellece dernier essaie d’apporter des réponses pertinentes.

Cette technique se fonde sur le traitement automatique du langage, soit par analyse de phrases ou pardétection de mots-clés, et retourne une réponse enregistrée dans sa base de connaissances en fonction del’analyse effectuée.

C’est dans ce contexte d’innovation technologique que j’ai réalisé mon projet.

Durant une période de six mois, j’ai réalisé mon stage pour l’entreprise SOPRA STERIA au sein deslocaux de la MAIF à Niort, qui est le client direct de ce projet. Ce dernier a eu pour but la conceptionet la réalisation d’un prototype d’un agent conversationnel conçu pour aider les internautes à trouverleurs documents ou informations personnelles sur le site de la MAIF. Le but du stage est de montrer lafaisabilité et l’apport de valeurs pour le client.

Dans un premier temps, le contexte dans lequel le stage s’est déroulé, sera présenté. Puis toutes lessolutions envisagées et testées seront détaillés ainsi que les résultats qu’elles ont fournis. Pour finir, lasolution finale sera présentée.

Université de Nantes 4 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

2 L’environnement professionnel

2.1 Sopra Stéria

Sopra Steria est une société de services, leader européen de la transformation numérique, qui proposel’un des portefeuilles d’offres les plus complets du marché : conseil, intégration de systèmes, édition desolutions métier, infrastructure management et business process services. Il apporte ainsi une réponseglobale aux enjeux de développement et de compétitivité des grandes entreprises et organisations.

Combinant valeur ajoutée, innovation et performance des services délivrés, Sopra Steria accompagneses clients dans leur transformation et les aide à faire le meilleur usage du numérique. Fort de 37 000collaborateurs dans plus de 20 pays, le groupe Sopra Steria affiche un chiffre d’affaires de 3,4 milliardsd’euros en 2014.

Grâce à une chaîne continue de valeur ajoutée, Sopra Steria apporte une réponse globale aux enjeuxmétier des clients et les accompagne tout au long de leur transformation : compréhension stratégique,cadrage des programmes de transformation, conception et construction des solutions avec leur mise enœuvre, leur évolution et leur maintien en conditions opérationnelles. Proche de ses clients, le Groupegarantit la pertinence continuelle de ses offres innovantes en adéquation aux vrais enjeux stratégiques.

Conseil L’activité conseil de Sopra Steria Consulting s’étend du conseil en management au conseil entechnologie. Les consultants interviennent sur le plan stratégique, puis conçoivent et mettent en œuvredes programmes de transformation, en France et en Europe, en tirant profit de la révolution digitale encours.

Intégration de systèmes Les experts adressent l’ensemble du cycle de vie du patrimoine applicatif àtravers des prestations d’intégration de systèmes et d’Application Management. Ils s’appuient sur une so-lide politique industrielle afin de construire, maintenir et moderniser le système d’information en réponseà de profondes transformations d’entreprise.

Édition de solutions métier Sopra Steria est un éditeur de solutions métier reconnu par les cabinets telsque Gartner et Forrester. Le Groupe offre des solutions leaders dans trois domaines : les services financiers(filiale Sopra Banking Software), les ressources humaines (filiale Sopra HR Software) et l’immobilier,fruits de plus de 40 ans de savoir-faire sur ces secteurs.

Infrastructure Management (IM) Sopra Steria accompagne la transformation des infrastructures etdes modes de consommation des services IT par l’intégration de technologies et l’opération de servicesautour du Cloud, du Datacenter et de l’environnement de travail utilisateur.

Business Process Services (BPS) Sopra Steria possède une expertise unique en BPS et services parta-gés qui lui permet de concevoir des solutions alliant performance et rentabilité. Les clients peuvent ainsi

Université de Nantes 5 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

lui confier l’externalisation des fonctions Finance, Comptabilité, Ressources Humaines et Achats.

Sopra Steria vise en permanence à offrir le meilleur des technologies et est organisé pour détecter lesinnovations qui apporteront de la valeur aux métiers et aux SI 1 de ses clients. Sopra Steria bénéficied’une expertise reconnue aussi bien dans le domaine des architectures IT que sur d’autres thèmes tels lebig data, le cloud, les réseaux collaboratifs, la mobilité ou encore la cybersécurité.

Parmi ses clients importants, nous avons de grands groupes français, couvrant un large spectre dedomaines, comme Airbus, La banque postale, SNCF, EDF, Crédit Agricole, etc. L’agence de Niort a pourprincipaux clients les assurances dont la MAIF chez qui mon stage se déroule.

2.2 MAIF

La MAIF (Mutuelle d’Assurance des Instituteurs de France) fondée en 1934 est une mutuelle com-posée de plus de 6 300 employés et dont le siège social se situe à Niort. Elle est le 1er assureur desassociations et des établissements publics en France actuellement.

La MAIF s’engage dans une rupture Digitale pour faire évoluer son parc technologique au gré des in-novations technologiques. Elle souhaite explorer et exploiter plus en profondeur le Big Data en collectantet analysant les données. Cette rupture est aussi faite pour suivre les nouveaux modes de consommationsévoluant chaque jour ce qui implique d’adapter les produits aux nouveaux besoins.

Pour entrer dans la stratégie Digitale avec force, le laboratoire d’incubations digitales a été créé avecpour mission d’impulser et de cultiver l’innovation au sein de la DSI, d’accompagner vers le DigitalReady et soutenir l’innovation, le digital et l’agilité à la MAIF.

Ce laboratoire se destine à rendre plus accessible l’innovation que se soit pour les employés, mais éga-lement pour les sociétaires et les partenaires, à l’aide de plus d’une trentaine d’expérimentations touchantdes domaines divers tels que le Big Data, la téléphonie, les réseaux sociaux, l’affichage, etc.

1. Système d’Information

Université de Nantes 6 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

3 Un agent conversationnel au service des clients

Dans cette partie, nous allons poser le contexte dans lequel le stage se déroule à travers différentspoints d’entrées comme la démarche de l’entreprise, l’environnement technique et technologique.

3.1 Répondre à la Stratégie client

La MAIF est dans une dynamique d’innovation dans les solutions techniques qu’elle propose. C’estdans la continuité de cette démarche, mais également pour satisfaire de réels besoins qui se font ressentirdu coté client mais aussi du coté MAIF, que ce projet a été mis en place.

Coté MAIF Le principal objectif est de désengorger les lignes téléphoniques des problèmes mineurs.En effet, à des périodes données comme début septembre et décembre, beaucoup d’appels téléphoniquessont reçus pour obtenir un document précis (ici, pour une attestation scolaire ou un avis d’échéances) quiest accessible depuis la session du client sur le site web.

L’idée serait donc de proposer une aide active sans pour autant monopoliser des conseillers. Cetteaide devrait être proposée au client au moment où il en a besoin et non quelques temps après.

Coté Client L’objectif principal est d’accompagner l’usager dans son environnement internet MAIF. Iln’est pas toujours facile de se retrouver sur les sites internet et encore moins lorsque l’on souhaite réaliserune opération précise et pour la première fois.

C’est pour cela qu’une solution est recherchée pour orienter en temps réel l’utilisateur selon sonbesoin, tout en lui facilitant l’accès à ses documents. Il est incontestable que si l’utilisateur reçoit del’aide au moment où il en a besoin, il va gagner du temps.

Des solutions technologiques vers une solution idéale Actuellement, la MAIF a déjà mis en place dessystèmes de chatBox où de réels conseillers répondent aux questions diverses des clients. L’inconvénientde cette technique est qu’une des conditions qui a été fixé plus haut n’est pas satisfaite. Il y a toujours desconseillers qui sont monopolisés pour une tâche qui ne mérite pas tant d’attention. Mais l’idée de guideren temps réel est, elle, bien respectée.

La création d’un agent conversationnel s’est imposée naturellement. En effet, l’agent conversationnelpeut orienter pas à pas l’utilisateur dans son espace pour trouver simplement et rapidement ses documents.Il peut mettre le client en relation avec un vrai agent si la question est trop précise ou qu’elle n’est pasdans ses compétences.

3.2 Des contraintes environnementales fortes

Matérielle L’agent conversationnel doit être sensible au vocabulaire de l’assurance car son objectif estd’assister les clients au cœur du site de la MAIF. Il faut donc un corpus suffisant, c’est-à-dire représentatif

Université de Nantes 7 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

de ce domaine en particulier. Un tel corpus déjà constitué et prêt à l’emploi n’existe pas au sein de l’or-ganisme. Ne pouvant pas utiliser un corpus généraliste (comme Wikipédia) car les notions de l’assurancey seraient noyées, il sera nécessaire d’en créer un.

Temporelle La réalisation de cet agent conversationnel doit se faire dans le temps qui m’est impartidans le cadre de mon stage autrement dit six mois pour faire la constitution du corpus, la conception, laréalisation et les tests.

Environnementale La base de connaissances de l’assistant doit prendre en compte la complexité dela syntaxe qui est proportionnelle au nombre de clients. En effet, pour une même question, certains pré-féreront une phrase interrogative, d’autres une phrase narrative ou encore juste les mots-clés. C’est unparamètre à ne pas négliger si l’on souhaite avoir un chatbot efficace.

3.3 Des enjeux technologiques

3.3.1 À la découverte des agents

Pour faciliter la conversation entre un utilisateur et la machine, une conversation homme-machine enlangage naturel est utilisée, c’est cela que l’on appelle communément ChatBot. En France, ils sont appelésagents conversationnels. Ils ont souvent l’apparence d’un personnage virtuel pour interagir avec les gens.Les différents systèmes existants utilisent des supports variés comme le langage naturel écrit, parlé, lagestuelle, les émotions faciales ou encore des actions sur l’interface. Chacun a un rôle social à remplir :

— Assistant : agent présent ponctuellement afin d’aider et guider l’utilisateur sur un site web ou dansun logiciel, comme Clippy l’assistant office de Microsoft ;

— Coach : agent présent dans des applications ou dans des jeux sportifs intégrant des programmespersonnalisés comme avec Wii Fit Plus ;

— Tuteur : agent partageant volontiers ses connaissances avec leurs interlocuteurs comme dans leslogiciels éducatifs Adi ou Tim7 ;

— Ami : robot créé pour amuser leur interlocuteur.

Ce qui rend ces agents utiles et intéressants c’est leur intelligence et comment elle se manifeste. Il estpossible de classer les agents conversationnels suivant trois types de représentations de la connaissance :

— Reformulation : certains agents n’ont aucune connaissances et se limite à reformuler les questionsque leur pose l’utilisateur ;

— Base de connaissances fixe : l’agent est capable de répondre uniquement aux questions dont laréponse est contenue dans sa base de données ;

— Base de connaissances évolutive : certains agents ont la capacité d’apprendre au fil des conversa-tions avec leur interlocuteur et de mémoriser les informations.

Ces différents types seront développés dans l’état de l’art à travers l’analyse de certains agents et leuralgorithme.

Université de Nantes 8 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Pour ces différents types d’agents, leur base de connaissances est créée à la main. Dans le cas d’unagent ayant la capacité d’apprendre, cette base de connaissances est enrichie avec les informations don-nées au cours des conversations avec les utilisateurs.

Les réponses du robot sont restreintes à la taille de ses connaissances. Quel que soit le rôle de l’agentet malgré ses connaissances limitées, il est important que la conversation reste fluide et que l’utilisateurpense parler à une personne réelle. Pour cela quelques artifices sont utilisés comme réaliser des temps depauses avant la réponse pour marquer un temps de réflexion ; réaliser des transitions entre deux phraseset garder une cohérence dans l’échange pour ne pas déstabiliser l’utilisateur.

Techniques Pour réaliser un agent intelligent, il est important de faire du traitement automatique dulangage pour donner cette fluidité tant recherchée. À travers le TAL 2, le système va être capable decomprendre, d’analyser et d’exploiter ce que l’utilisateur lui dit.

Test de Turing Le test de Turing est un test qui a été mis en place pour essayer de définir si uneintelligence artificielle est capable de se comporter comme un humain, c’est-à-dire qu’elle est capable defaire preuve de réflexions et de réactions face à un changement de situation.

Le test consiste à confronter un humain face à deux interlocuteurs, une intelligence artificielle et unhumain. S’il n’est pas capable d’identifier l’humain de la machine alors le test est validé pour le robot.

Par exemple, le CAPCHA repose sur ce test, il propose une image contenant chiffres et lettres où unordinateur n’est pas capable (pour l’instant) d’identifier les informations demandées.

3.3.2 Des exigences à respecter

Selon Stan Franklin dans son article de 1996[1], il est possible de lister les compétences que doit avoirun robot pour prétendre au titre de chatbot. Voici les plus importantes selon lui :

— Action/Réaction : l’agent doit répondre dans un court laps de temps, cependant certains déve-loppeurs ont ajouté quelques secondes avant de fournir la réponse pour simuler la rédaction dumessage ;

— Autonomie : l’agent doit contrôler ses actions, il ne doit pas attendre qu’une tierce personne luidonne l’autorisation de réagir ;

— Persistance : le processus doit tourner en continue ce qui le rend disponible en tout temps auprèsde l’utilisateur ;

— Proactivité : il ne doit pas seulement répondre à l’environnement, il doit pouvoir faire des propo-sitions également.

À ces critères, il faut ajouter l’acceptabilité, c’est-à-dire ne pas faire peur à l’utilisateur, la crédibilitédans l’accomplissement de sa tâche, et la courtoisie. Ils sont, dans le cadre d’une application commerciale,tout aussi importants que les premiers critères développés.

2. Traitement Automatique du Langage

Université de Nantes 9 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

4 De la recherche à la commercialisation

Le domaine des intelligences artificielles a toujours intéressé les chercheurs concernant la structu-ration et l’exploitation des données. Depuis un demi-siècle déjà, la recherche ne cesse d’explorer denouvelles branches pour améliorer les performances de dialogues des robots. En parallèle, bon nombred’industriels s’essayent à aider leurs clients par le biais d’agents virtuels. C’est donc ces deux aspects quivont être mis en avant dans cette partie.

4.1 Les intelligences artificielles au cœur de la recherche

L’étude suivante présente des chatbots qui diffèrent complètement de par leur implémentation maisqui ont été créés sans but social et donc qui ont de grandes connaissances générales. De plus, ces robotsont été choisis parmi d’autres car leur algorithme principal sont accessibles. Ils permettent ainsi de nousfaire une idée sur les solutions que nous pouvons élaborer.

4.1.1 ELIZA[2]

Le premier chatbot, ELIZA, a été créé en 1966 par Joseph Weizenbaum du MIT en se basant surle projet MAC 3. Cette intelligence artificielle tendait à imiter un psychothérapeute en reformulant lesquestions de son interlocuteur.

Son fonctionnement reste basique car elle utilise une simple méthode de reconnaissance et substitutiondes mots-clés dans les phrases données par l’utilisateur à partir de règles. Elle n’interprète pas ce qui luiest dit et elle n’intègre pas la notion d’apprentissage.

Étant une pionnière dans son domaine, il semble qu’elle ait troublé plus d’un utilisateur à son époque.Cependant, avec les versions en ligne d’ELIZA (la version de base de Weizenbaum n’étant pas dispo-nible), il est difficile de reproduire les tests qui ont été publiés à l’époque.

L’algorithme est assez simple mais complexe pour l’époque. Dans un premier temps, la phrase utilisa-teur est extraite et segmentée. Une recherche de mots-clés est effectuée, dès qu’il y en a un qui est détecté,il est traité suivant les règles prédéfinies dans le script. Le traitement correspond souvent à une substitu-tion du mot trouvé, par exemple lorsque les termes "me", "my", "I" sont détectés, ils sont remplacés par"you", "your" et "you". Dans le cas, où aucun mot n’est détecté, une précédente phrase est récupérée etretournée.

Un exemple simple de matching serait "I like XxX" où ELIZA répondra avec "Why do you likeXxX ?"

La détection de mots-clés donne un rang ou un ordre de priorité aux termes présents dans une sectionde phrases. Le rang donné a une grande importance, car si d’autres mots-clés de rang inférieur ont ététrouvés, dans la partie gauche de la phrase, ils sont supprimés. S’il n’y a aucun mot-clé détecté, toute la

3. un des premiers systèmes d’exploitation à temps partagé, http://fr.wikipedia.org/wiki/Compatible_Time_Sharing_System

Université de Nantes 10 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

section de phrases est supprimée (délimité par une virgule ou un point). Tout ce qui concerne les mots-clés et les règles qui leur sont dédiés, est stocké dans un fichier externe ce qui lui permet de ne pas êtreattaché à une unique langue.

Eliza se focalise sur certains problèmes techniques qu’elle doit résoudre comme identifier le mot-cléle plus important de la phrase ; les cooccurrents qui seront les plus sujets à des transformations ; choisirla règle de transformation la plus appropriée et l’appliquer ; être capable de répondre intelligemment dansle cas où il n’y a pas de mots-clés reconnus.

Les règles de transformations peuvent être très simples comme par exemple détecter les mots "I amXxX" et reformuler en "How long have you been XxX ?", dans ce cas-là, peu importe la signification deXxX, la reformulation est simple. Pour créer les règles, Joseph Weizenbaum s’est mis dans la peau d’unétranger avec peu de connaissances dans la langue mais qui a une bonne oreille. Il entend et comprendles termes simples comme "you", "me" ou "are".

Dans le script, sous forme de listes, chaque mot-clé est soumis à des règles de décompositions et derassemblements suivant sa position dans la phrase de l’utilisateur. Il faut retrouver une découpe du textequi accepte la position de chaque mot-clé trouvé.

Au regard, d’une version ELIZA en ligne (avec le code source disponible) le fonctionnement pourle choix des réponses est le suivant. Deux tableaux sont créés, l’un avec les mots-clés provenant del’utilisateur et l’autre avec les réponses possibles. Pour chaque mot-clé correspond un certain nombre deréponses donné par un intervalle. Par exemple si le mot-clé est "Can YOU", les réponses possibles sontdésignées dans l’intervalle 1 à 4 du tableau des réponses cela sous-entend que le tableau soit ordonné.

Suite à quelques tests sur une version en ligne en anglais, voici quelques petites observations :— dès que l’on met "you" dans la phrase, elle répond "We were discussing you, not me" ou une autre

phrase du même genre même si nous lui écrivons "I miss you" ;— quand il n’y a pas plusieurs mots-clés reconnus, par exemple si on lui dit "yes", elle répond en

boucle "are you sure" ;— quand plus aucune solutions lui vient, elle reprend la phrase "OK... what is XxX. Tell me more."

où XxX correspond à un morceau de phrases extrait de notre conversation.Au cours des tests, la conversation devient rapidement désagréable car il n’y a pas de logique la structu-rant.

Finalement, cette solution supervisée est fonctionnelle mais les conversations sont extrêmement li-mitées car ELIZA reformule uniquement ce que dit l’utilisateur. Elle n’apporte aucune plus-value àl’échange. Elle donne l’illusion qu’elle comprend.

4.1.2 A.L.I.C.E[3] ou Artificial Linguistic Internet Computer Entity

Le Dr Richard Wallace[4] a créé ALICE en 1995 en utilisant un langage basé sur la logique d’en-sembles qui est SETL 4. Par la suite d’autres versions ont été réalisées avec des langages plus utilisésdont C, C++, Java. Depuis sa création A.L.I.C.E ne cesse de prouver ses compétences. En effet, elle a,

4. http://fr.wikipedia.org/wiki/SETL

Université de Nantes 11 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

à plusieurs reprises, gagné le prix Loebner 5. Et depuis, il n’est pas rare de voir chaque année parmi lestrois premiers des descendants d’A.L.I.C.E.

Le programme utilise un langage XML qui lui est propre AIML(Artificial Intelligence Markup Lan-guage). C’est grâce à lui que les réponses sont structurées et cohérentes. AIML utilise principalement troiséléments :

— le motif est l’élément qui identifie le contenu de l’entrée utilisateur ;— le modèle est la réponse qui va être retournée à l’utilisateur suivant le motif identifié ;— la catégorie qui inclut au moins un modèle et un motifs.

La catégorie peut également contenir un contexte, qui permet de relier des motifs a un même modèle.

Avec ce langage, il est facile de sauvegarder des informations concernant l’utilisateur et de les incor-porer dans les réponses. Il est également possible d’utiliser des conditions sur les réponses à fournir àl’utilisateur.

Il est important de noter qu’il ne fallut pas moins de 10 ans pour construire manuellement la base deconnaissances[5] d’ALICE avec 24 000 catégories en entrée au total en 2001. Dans leur article Chatbots :Are they really useful ?[6], les auteurs ont cherché à automatiser le processus d’apprentissage et conversa-tion d’un corpus d’entraînement au format AIML. Pour cela, ils ont utilisé un corpus de dialogues annoté,dans lequel, le premier tour de paroles est attribué au motif et le second au modèle.

D’un point de vue algorithmique, l’entrée utilisateur est normalisée. Dans un premier temps, toutsigne de ponctuation est supprimé et l’entrée est segmentée en conséquence. Puis, l’ensemble est passéen majuscules (contrairement à beaucoup d’autres algorithmes qui préfèrent le passage en minuscule).Une fois cette étape de prétraitement terminée, l’entrée va chercher à correspondre avec le modèle le pluslong car il est a priori la meilleure solution.

Comme ELIZA, A.L.I.C.E n’a pas de mémoire, elle ne conserve pas d’historique de la conversation.De plus, elles ont toutes les deux des bases de connaissances fixes. Contrairement aux prochains chatbotsque nous allons présenter qui sont capables d’apprendre au fil des conversations.

4.1.3 CleverBot

Ce chatbot a été créé en 1988, mais il n’a été dévoilé au public qu’en 1997 par Rollo Carpenter[7].Ce qui démarque ce chatbot de ses prédécesseurs, c’est son utilisation de l’apprentissage et du traitementautomatique du langage. Durant la période entre sa création et sa publication, Carpenter et ses collabo-rateurs ont enrichi sa base de connaissances avec des conversations, des phrases fréquemment utilisées,et des paroles de chansons. Cette base de connaissances était estimée à plus de 120 millions de lignes aumoment où le bot a passé avec succès le test de Turing.

Cet agent est un des meilleurs actuellement car il apprend constamment. En effet, il enregistre àchaque fois toutes les conversations avec les utilisateurs, toutes les questions que CleverBot pose et toutesles réponses fournies par les utilisateurs. Lorsqu’un utilisateur lui pose une question, il va chercher si lui-

5. Le prix récompense le meilleur agent conversationnel en se basant sur le test de Turing. Le test consiste à confronter unhumain face à deux interlocuteurs, une IÀ et un humain. S’il n’est pas capable d’identifier l’humain de la machine alors le test estvalidé pour l’Intelligence Artificielle

Université de Nantes 12 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

même a déjà posé cette question et retourne une des réponses trouvées. De plus, il est doté d’une mémoireà court terme ce qui lui permet de détecter le contexte de la conversation. Il peut ainsi sélectionner laréponse la plus adaptée. Il fait partie des agents qui font de l’apprentissage par imitation.

Ce qui parfois peut amener à des incompréhensions car beaucoup de fautes de frappe changent lesens des phrases. Et le chatbot se basant uniquement sur les conversations passées si une phrase n’estpas trouvée, la conversation va perdre tout son sens. Finalement, son côté imprévisible dans ses réponses(mais logiques malgré tout) a séduit des millions d’utilisateurs.

Pour pouvoir mettre à disposition une partie du savoir de CleverBot, Carpenter et son équipe ont crééun système de conversations scriptées[8].

CleverScript C’est un système de tableur qui sert de base de connaissances. L’idée est très intéressantecar elle mélange la notion de grammaires lexicalisées, avec la distance de Levenshtein pour mesurer laressemblance des termes et la mémorisation d’information voir même l’interprétation. Toutes les infor-mations nécessaires au bon déroulement de la conversation sont incluses dans cette table.

Le tableur contient principalement 7 colonnes :

1. Type : pour identifier s’il s’agit d’une entrée utilisateur, une sortie Bot ou un concept ;

2. Label : cette étiquette s’apparente aux symboles non-terminaux dans une grammaire formelle, elleva nous permettre de construire les phrases de réponses ;

3. Description : un texte court qui permet d’expliquer/introduire la colonne suivante ;

4. Text : la phrase qui est reconnue en entrée ou qui sera donnée en sortie à l’utilisateur ;

5. If : la condition définit qui permet de sélectionner une réponse parmi celles proposées en utilisantpar exemple les variables d’apprentissages (voir colonne suivante) ;

6. Learn : des informations utiles peuvent être sauvegardées afin d’orienter la conversation suivantles réponses données par l’utilisateur, par exemple s’il est plus ou moins amical ; ou bien réutiliserdirectement les variables de cette colonne pour composer la réponse ;

7. Goto : sur une ligne de type input, renvoie à une étiquette pour une ligne output, elle permet dedonner une réponse logique à la phrase de l’utilisateur ;

8. Accuracy : c’est la précision limite de la prédiction mesurée avec la distance de Levenshtein ;

9. Mode : dans le cas où il y a plusieurs réponses possibles de la part de l’automate, il est possiblede lui indiquer la façon dont il doit choisir, aléatoirement, donner les réponses dans l’ordre et/ouboucler sur la dernière, etc.

Lorsque la colonne Goto n’est pas renseignée, c’est l’entrée (ligne) suivante qui est activée par défaut,cela permet de restreindre le nombre de conditions et de variables d’apprentissages. 6

L’avantage de cette méthode est qu’elle ne se base pas uniquement sur les mots-clés mais elle consi-dère toute la phrase de l’utilisateur. Dans les suggestions faites concernant l’utilisation de cette méthode,il est mentionné que cette technique peut être utilisée pour conseiller et guider dans les FAQ sur les sites

6. C’est le même principe qu’en assembleur.

Université de Nantes 13 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

web. Malheureusement, ce système n’est parfaitement fonctionnel qu’en anglais et en russe c’est-à-direque les bases de connaissances ont été créées et testées.

4.1.4 MegaHAL

Jason Hutchens a rendu publique megaHAL[9] au cours du concours Loebner Prize Contest en 1998(après avoir déjà remporté le premier prix avec HeX en 1996, une variante d’ELIZA). Ce qui est intéres-sant avec ce nouveau chatbot, c’est la mise en oeuvre de chaines de Markov pour répondre à l’utilisateur.

Le modèle tente, dans un premier temps, de séparer l’entrée utilisateur en deux catégories : les mots(qui sont des séquences de caractères alphanumériques) et les non-mots (qui représentent tous les autrescaractères). Cette première étape permet d’ores et déjà, d’apprendre de nouveaux mots ainsi que lesséparateurs qui les délimitent.

Le modèle est constitué de deux chaînes de Markov d’ordre 4. L’une pour prédire le symbole suivantet l’autre pour le symbole précédent une suite de quatre symboles (suite de mots et non-mots). Si lesauteurs ont choisi les 4-grams, c’est pour s’assurer de produire une phrase cohérente en langage naturel.De plus, le message d’entrée de l’utilisateur est utilisé pour mettre à jour ces chaînes de Markov. Donc,nous sommes en présence d’un agent capable d’apprendre.

Pour générer une réponse, MegaHal sélectionne des mots-clés parmi ceux de l’entrée de l’utilisateur(mais qui ne sont pas des mots fréquents et vides) et génère des réponses autour grâce aux deux chaînesde Markov. Le cas échéant certains termes sont transformés, par exemple tout ce qui fait référence à lapremière personne du singulier est transposé vers la seconde personne du singulier.

Beaucoup de réponses sont produites contenant chacune au moins un mot-clé. Pour pouvoir sélec-tionner les meilleures, le calcul suivant est utilisé sur chaque mot-clé afin de calculer l’Information (oude son autre nom : surprise) :

I(W |S) = −log2(W |S)

Autrement dit, l’Information calcule la probabilité de voir le mot W après la séquence S. Finalement, lavaleur la plus grande, donc la plus surprenante est gardée afin de conserver un brin d’originalité dans laréponse.

Si les auteurs ont attendu avant de présenter leur nouvel agent c’est qu’ils n’avaient pas encore de basede connaissances. Il a été entraîné sur un ensemble de données assez conséquent (encyclopédie, sous-titrede films et émissions de télévision, phrases du concours Loebner, citations célèbres. . . ) pour être capablede répondre et que les phrases soient cohérentes. Il a même été mis en ligne avant la présentation auconcours Loebner pour acquérir encore plus de vocabulaires sur de plus larges sujets.

MegaHal est un chatbot plein de ressources qui gagne à être connu pour sa conception. En ce quiconcerne ses réponses, voici un exemple de conversations improbables que l’on peut avoir avec lui :

Université de Nantes 14 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

MegaHAL DO YOU SPEAK ENGLISH PROPERLYUser yesMegaHAL NO YES YES YES YES YES YES YES........

La notion d’apprentissage pour un chatbot est très intéressante mais il existe un risque de passer ensur-apprentissage qui peut conduire à ce genre de réponses. Ce qui montre qu’un contrôle sur la base deconnaissances est important aussi minimal soit-il.

Au vu du sujet, et avec les observations qui ont été faites sur les différents chatbots étudiés, il semblequ’un agent conversationnel capable d’apprendre au fil des conversations avec les utilisateurs ne soit pasapproprié. De plus, une des contraintes que nous avons évoquée précédemment3.2 concernant le corpus,permet également d’écarter complètement une solution utilisant des chaînes de markov.

De plus, notre but est d’aider les utilisateurs en leur apportant des solutions, se contenter de reformulerleurs questions comme le fait ELIZÀ pourrait agacer les utilisateurs. Donc cette solution est écartéeégalement.

4.2 Les agents conversationnels au plus proche de nous

Nous faisons à présent un point sur les agents conversationnels qui sont dédiés à une tâche précise etplus particulièrement les assistants. Ces agents étant commerciaux, il nous est difficile de comparer leuralgorithme.

En France depuis 2005, nous voyons des agents virtuels qui apparaissent pour nous conseiller dansl’achat d’un produit, ou pour nous aider dans nos démarches. Nous pouvons citer : Léa de la SNCF, Laurade EDF Bleu Ciel ou encore Anna d’IKEA.

Des tests sur ces agents ont été effectués afin d’observer leurs comportements face à des questionspersonnelles, des fautes de frappe, ainsi que leur capacité à suivre une conversation et à réorienter l’utili-sateur dans le cas où il s’égare.

La table 1 montre toutes les réponses fournies par les robots. Nous constatons rapidement que Léa negère pas toutes les fautes d’orthographe ou de frappe et interprète un mot inconnu comme étant le nomd’une ville. Lorsqu’il y a plus de 2 inversions dans la phrase, elle décroche de la conversation. Dans lecas contraire, elle a une mémoire et nous rappelle que la question a déjà été posée.

Il semble qu’Amélie ait du mal à interpréter les fautes d’orthographes. Mais elle demande directementune reformulation plutôt que de faire une mauvaise interprétation.

Pour finir, nous noterons qu’Anna a un certain sens de l’humour car elle propose un minuteur pourmesurer la température de la page. Un coté qui la rend plus sympathique que les autres, tout particulière-ment par rapport à Laura qui a des réponses fixes relativement longues à chaque fois.

Beaucoup de groupes commerciaux ont proposé un agent virtuel pour aider leurs clients à partir de2007. Mais aujourd’hui, peu sont encore actifs ou seulement par période ce qui les rend difficile à trouver.

Université de Nantes 15 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

TABLE 1 – Tests des réponses sur les agents conversationnels commerciaux

Léa Anna Amélie Laura

comment tu t’appelles ? Je m’appelle Léa. Appelez-moi Anna,mon nom de familleimporte peu. Dans lamaison, on s’appelletous par notre prénom,alors n’hésitez pas !

Je m’appelle Amélie.Et vous, quel est votreprénom ?

Je suis Laura, votreconseillère virtuelleEDF. Je peux vousrenseigner sur lesservices proposés auxparticuliers par EDF.Je suis basée sur latechnologie Do YouDream Up.

C’est joli je vous en prie ! Je suis heureuse del’entendre. Chez IKEA,on est comme ça.

D’accord Jolie.Quelle informationrecherchez-vous ?

Mais je vous en prie,c’est avec plaisir !N’hésitez pas à revenirme poser vos questionssur . . .

Joli Merci. Merci ! ça fait toujoursplaisir de recevoir desréactions positives.IKEÀ vise l’excellenceet moi aussi !

Oh, alors merci... jecrois que je rougiraissi je pouvais.... Avantque je ne sois plus trou-blée, revenons à notreconversation... En quoipuis-je vous aider ?

Merci pour ce compli-ment.Je suis ici pour ré-pondre à vos questionsconcernant EDF.

Merci Je vous en prie ! De rien. Je suis là pourvous aider.

Je vous en prie, je suislà pour cela.

Mais je vous en prie,c’est avec plaisir !N’hésitez pas à revenirme poser vos questionssur . . .

erci Cette ville ne dis-pose pas de gare.Vous pouvez . . .

De rien. je suis là pourvous aider.

Je suis désolée, visi-blement, je suis un peuperdue. Pourriez-vousessayer de me réexpli-quer votre problème ?

Mais je vous en prie,c’est avec plaisir !N’hésitez pas à revenirme poser vos questionssur . . .

Il fait beau aujourd’hui Je ne suis pas enmesure de vousdonner des in-formations surla météo.Et sinous en revenionsplutôt à vos ques-tions concernantVoyages-sncf ?

Vous ne vous attendeztout de même pas àce que je fasse la mé-téo ? Tout ce que jepeux faire pour vousdans ce domaine, c’estvous proposer notre mi-nuteur ! Prenez donc latempérature sur la pageque voici. . .

C’est vrai, il fait untemps idéal pour se pro-mener. Que puis-je fairepour vous aider ?

Je ne suis pas en me-sure de vous donner desinformations sur la mé-téo.Je suis ici pour ré-pondre à vos questionsconcernant EDF.

Es-tu un robot ? Je ne suis pas tout àfait un robot, maisplutôt un smart as-sistant qui répond àvos questions.Et sinous en revenionsplutôt à vos ques-tions concernantVoyages-sncf ?

Une assistante inter-active ou BOT est unprogramme informa-tique qui est capablede comprendre et derépondre en langageécrit, quasiment de lamême manière qu’unêtre humain.

Je suis virtuelle, jen’existe pas dans votremonde mais j’ai étéprogrammée pourdiscuter avec vous !

Je suis ici pour ré-pondre à vos questionsconcernant EDF.

Université de Nantes 16 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

De plus, ce sont des agents dédiés à un domaine particulier donc ils ont peu de vocabulaire, celui-ci estfixe et bien spécifique. Pour finir, ils sont chargés d’orienter seulement les clients en leur suggérant desliens pour essayer de répondre à leurs questions. Leur rôle est donc très limité.

4.3 Ouverture sur d’autres domaines

Pour finir, notre agent doit être capable de faire la différence entre deux documents donc une solutionse basant sur l’identification de mots-clés semble judicieuse. Une question se pose alors : comment lierles mots-clés aux documents et aux réponses ? La partie exploratoire suivante tente d’apporter des idéesvoir des solutions à cette question.

4.3.1 Classifications des documents

Le problème que l’on souhaite résoudre avec cette application, c’est de créer un modèle qui est ca-pable de déterminer à quel document fait référence une question de l’utilisateur. Cette problématiques’apparente beaucoup à de la classification. En effet, nous souhaitons créer un modèle qui classe unequestion dans le groupe représentant le document référencé.

Pour réaliser la classification, il est possible d’utiliser un index dans lequel nous associons à chaqueterme et pour chaque document un poids en fonction de sa fréquence. Cela permet de montrer son im-portance dans le document en question. Pour réaliser cela, le modèle classique du tf(d, t)∗idf(t) est touttrouvé.

— tf(d, t) représente la fréquence du terme t dans un document d ;— idf(t) = log10(

Ndf ) est la fréquence inverse de document qui note le nombre de documents df dans

lesquels apparaît le terme dans une collection de N documents.Ce score permet de mettre en évidence les termes représentatifs d’un document, c’est-à-dire qui sont peuprésents dans un document donné et absents des autres de la collection. Il existe un certain nombre devariantes de ce modèle ce qui laisse beaucoup de possibilités à tester. Ce modèle a fait ses preuves par lepassé et semble correspondre à notre problématique.

Un autre méthode en recherche d’informations souvent utilisée et comparée à la méthode standardqu’est tf*idf, est la méthode de pondération Okapi (ou BM25). Cette méthode probabiliste utilise égale-ment la fréquence des termes présents dans les documents et leur taille accompagnée de quelques para-mètres. Dans cet article[10], l’auteur, Singhal nous présente différents modèles utilisés dans le domainede la recherche d’informations, comme les espaces vectoriels ou les modèles probabilistes. Plus intéres-sant encore, il explique que l’une des étapes les plus compliquée dans ces différents domaines n’est autreque l’attribution d’un poids à chaque terme ; et cela représente une grande partie du travail que d’estimerles paramètres utilisés. Il présente les deux équations suivantes : Okapi-BM25 (1) et pondération pivotnormalisée basée sur le score du document (2). La seconde équation est souvent utilisée pour pallier lesvaleurs négatives des pondérations [11].

Les nombreux travaux, travaillant autour de ces deux équations, présentent souvent des résultats su-

Université de Nantes 17 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

périeurs à tf*idf bien que les conclusions sont souvent erronées toujours d’après Singhal.

∑tεQ,D

lnN − df + 0.5

df + 0.5∗ (k1 + 1) ∗ tf(k1(1− b) + b dl

moy + tf∗ (k3 + 1)qtf

k3 + qtf(1)

avec k1ε[1, 2], b = 0.75, k3ε[0, 1000].

∑tεQ,D

lnN + 1

df∗ (1 + ln(1 + ln(tf))

((1− s) + s dlmoy + tf

∗ qtfavecs = 0.2 (2)

Au vu de ces critiques, il semble intéressant de tester également ces deux équations. Avec toutefoisune réserve car dans l’article [12], Lv montre les limites de la méthode Okapi pour les documents trèslongs et les pondérations nulles ou négatives.

4.3.2 Segmentation par thématique

Une façon d’envisager le problème est de penser les documents comme étant chacun le représentantd’un thème. Ce qui nous amène à une solution proposée par Olivier FERRET[13] en 2002. Dans laquelle,il utilise le contexte direct et le réseau de collocations pour faire de la segmentation par thématique ainsique de la détection de liens. Notre analyse se focalise sur la première partie uniquement.

La réalisation de la segmentation repose sur une principale tâche : la définition d’un contexte théma-tique. Cela consiste à associer deux vecteurs de mots (associés chacun à un poids) : un vecteur textuel etun vecteur de collocations. Ce qui les différencie l’un de l’autre c’est la méthode de calcul du poids.

Dans le cas du vecteur textuel, le poids est calculé suivant la fenêtre d’observation fixée.

wghttxt(m) = occNb(m) ∗ −log2(fm/Sc)−log2(1/Sc)

où occNb(m) est le nombre d’occurrences de m dans la fenêtre d’observation, fm est le nombre d’oc-currences de m dans le corpus et Sc est la taille du corpus. Cette équation permet de prendre en comptel’importance du terme dans la fenêtre sélectionnée par rapport à tout le corpus.

Quant au vecteur de collocations, il se base sur un réseau de collocations comme son nom l’indique.Ce réseau a été construit à partir du même corpus (anglais et français) qui est utilisé pour réaliser lesexpériences. Dans le réseau, seules les occurrences supérieures à 10 ont été conservées. Ce vecteur vise àévaluer la cohésion lexicale du texte en ne sélectionnant que les termes se trouvant dans la même fenêtreet dans le réseau. Le poids de chaque mot est calculé comme suit :

wghtcoll(m) =∑√

wgthtxt(m) ∗ coh(m,mi)

où coh(m,mi) est la mesure de cohésion donnée par le réseau de collocations entre les deux mots.

Pour finir, la similarité entre un segment et une fenêtre sélectionnée est évaluée grâce à la mesure ducosinus. Elle permet de définir si il y a cohésion dans la thématique entre les deux.

Université de Nantes 18 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

4.3.3 Détection de liens

Notre phase d’exploration, nous a conduit jusqu’à la détection de liens entre la question de l’utilisateuret le corpus. La méthode était à l’origine proposée par Wang[14] afin de détecter des messages liés dansun même fil de discussion dans un forum en comparant les chaînes lexicales qui les composent.

Dans la méthode originale, l’auteur construit les chaînes lexicales des messages en se basant surdes vecteurs contextuels selon le modèle WORDSPACE de (Schutze, 1998) qui consiste à observer lesmots cooccurrents les plus fréquents. Plusieurs algorithmes sont testés utilisant, soit un thesaurus commeressource pour exploiter les caractéristiques grammaticales, soit le contexte direct de chaque terme.

Pour finir, la similarité entre les chaînes de chaque message est calculée avec l’équation suivante, unlien est établi pour la similarité la plus grande entre deux messages.

Score(c1, c2) =∑

m1i εc1,m

2jεc2

1

l1 ∗ l2sim(mi,mj)

Nous avons bien conscience que les contextes sont complètement différents de par la langue, lesdonnées et le domaine d’application. Cette méthode pourrait permettre de distinguer des chaînes lexicalescaractéristiques de certaines questions. Il sera bien évidemment nécessaire d’adapter certaines méthodescar les ressources et les besoins ne sont pas les mêmes.

Finalement, les trois idées détaillées, ici, sont chacune pertinente à leur manière. Elles permettentd’envisager la création de cet agent sous un autre angle tout en tenant compte des contraintes qui ontété définies clairement. Nous pouvons d’ores et déjà noter que les deux premières solutions sont deuxapproches différentes mais avec une démarche similaire qui est de donner un poids aux termes en prenantcompte de leur environnement.

Université de Nantes 19 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

5 Des modèles pour un agent

Le projet consiste donc à créer un prototype d’agent conversationnel qui soit capable de reconnaîtreà quel document l’assuré fait référence dans sa question. Une première partie sera dédiée aux flux dedonnées. Une seconde se penchera sur la construction du corpus suffisant. Et pour finir, les différentessolutions implémentées qui vont être évoquées dans cette partie porteront sur le cœur de l’agent.

5.1 Le data workflow

FIGURE 1 – Fonctionnement de l’application ChatBot

La figure 1 présente le fonctionnement global de l’agent conversationnel que nous créons. Nous fai-sons le postula suivant, le client MAIF est connecté à sa session et une fenêtre de chatbot s’ouvre.

Il pose alors sa question à l’assistant à travers la chatBox. Lorsqu’il crée une action via la toucheEntrée ou le bouton Envoyer dans la fenêtre, sa question est alors convertie sous forme de requête langa-gière. Elle est ensuite transmise au modèle qui va réaliser différents traitements successivement (selon lessolutions ces traitements seront différents) comme la suppression des mots-outils, une segmentation puisune lemmatisation des termes restants.

À la suite de ces traitements, la requête obtenue est analysée voire comparée avec la base de connais-sances pour obtenir la meilleure réponse. Une fois qu’une réponse est sélectionnée, quelle qu’elle soit,elle est envoyée à la vue pour être retournée à l’utilisateur.

Université de Nantes 20 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Ce schéma se répète au moins deux fois si un document a été ciblé. En effet, dans un premier temps,si le système détecte à quel document fait référence l’utilisateur (entre l’attestation scolaire et l’avisd’échéances), sa réponse sera une demande de confirmation sur le document voulu. Puis la réponse àcette question sera analysée et retournera les instructions en fonction :

— Oui : les instructions appropriées seront envoyées ;— Non : une demande de reformulation de la requête sera faite.

Si aucun document n’est ciblé, nous serons dans un des cas suivant :— l’utilisateur aura posé une question hors-sujet, c’est-à-dire en dehors de la tâche qui lui incombe ;— la question est ambiguë, et il est impossible de privilégier un document par rapport à l’autre.

Il est important de rappeler que ce que nous présentons est un fonctionnement global et que pour chaquesolution, certains points vont différer afin de s’adapter au mieux aux besoins de l’utilisateur.

5.2 Une base de connaissances à construire

Le prototype de l’agent conversationnel a pour but d’aider les clients, sur le site de la MAIF, à trou-ver leurs documents "Attestation scolaire" et "Avis d’échéances". Il faut donc que la partie modèle soitcapable de détecter le vocabulaire de ces documents et celui qui est utilisé pour y faire référence.

Or le contexte dans lequel le projet évolue est particulier. En effet, ce projet se déroule au sein d’uneentreprise et non d’un laboratoire de recherche, ce qui est un premier obstacle dans la réalisation duprojet. Les outils utilisés habituellement, ne sont pas utilisables dans ce contexte précis car les licencesd’exploitation les protègent. Ce qui signifie que certains traitements comme la lemmatisation avec nltkdevront être fait par nos propres moyens.

Une seconde difficulté est la politique de confidentialité de l’établissement qui ne permet pas l’accès àtoutes les ressources nécessaires. Par exemple, une idée était d’utiliser les emails reçus pour des demandesd’obtention de ces documents mais la politique ne le permet pas. Une autre idée était de récupérer desretranscriptions de conversations téléphoniques au cours desquelles les clients faisaient des demandesconcernant ces deux documents.

C’est en tenant compte de ces difficultés que la base de connaissances a été créée. Elle comporte uncorpus suffisant, un dictionnaire et des listes de vocabulaire.

5.2.1 Le corpus suffisant

Pour pouvoir construire le modèle utilisé par le robot, il est nécessaire d’avoir un corpus d’entraîne-ment et de test. Suivant les solutions, le corpus d’entraînement différera contrairement au corpus de testqui restera le même ce qui permettra de faire de vraies comparaisons entre les différentes solutions.

Université de Nantes 21 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

TABLE 2 – Extraction des termes des documentsAttestation scolaire Avis d’échéances

Nb page(s) 1 3Nb occurrences 99 1892Nb formes 69 664Nb formes actives 7 49 387Nb hapax (formes) 75.36% (52) 53.92% (323)Nb formes communes 27 22 hapax 5 hapaxSimilarité (cosinus) 30%

Les documents visés Un premier ensemble de données se base sur l’extraction du vocabulaire contenudans les deux documents que l’on souhaite détecter : l’attestation scolaire et l’avis d’échéances. La table2 est un comparatif du vocabulaire contenu dans lesdits documents.

Pour réaliser cette extraction, les documents ont été préalablement anonymisés. Une première re-marque est que la quantité de vocabulaire n’est pas équitable puisque l’attestation scolaire a dix foismoins de formes que l’avis d’échéances. Malgré tout, nous pouvons observer qu’un peu plus de 70% deses hapax ne sont pas communs aux deux documents, ce qui assure d’avoir une bonne précision lors destests pour détecter le bon document.

À titre indicatif, la similarité entre les deux documents (basée sur les formes actives) a été calculéeavec la formule (3), elle est de 30% ce qui laisse penser que le vocabulaire contenu dans chacun desdocuments est discriminant.

Cosinusd2d1 =

∑im

1i ∗m2

i√∑i(m

1i )

2√∑

i(m2i )

2(3)

Ces ensembles de vocabulaires constituent un premier corpus d’entraînement. Mais cela ne suffit pas,c’est pour cela que ce corpus est complété par le biais de formulaires participatifs.

Les formulaires participatifs Nous avons déjà exposé les problèmes auxquels nous sommes confron-tés concernant les données. Il faut donc les créer. Dans un premier temps, les formulaires participatifs ontété conçus pour le corpus de test. Cependant après réflexion, ils ont permis d’acquérir plus de vocabulairedésignant les documents. En effet, les clients n’utilisent pas forcément les noms exacts mais des syno-nymes pour faire leur demande ; voire pire dans les cas où ils cherchent des informations mais ne saventpas dans quel document elles se trouvent. C’est pour cette raison qu’une partie de ce corpus est destiné àl’apprentissage et l’autre pour les phases de tests.

Le formulaire a été créé via google form tout en gardant à l’esprit la politique de confidentialitéde l’établissement. C’est pour cela, qu’aucune information relative à la MAIF ou aux clients n’a étédemandée. Les formulaires sont anonymes et ne nécessitent pas la connexion à un compte Gmail pourêtre remplis.

7. Les formes de bases sans les mots outils.

Université de Nantes 22 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Le formulaire se compose de huit scénarios sous forme de questions, dans lesquelles, il a été de-mandé aux volontaires de se mettre dans la peau de clients qui demandent à obtenir les documents ou desinformations qui se trouvent dans les documents.

— une pour exprimer la demande de l’avis d’échéances ;— trois pour obtenir des informations relatives au contenu de l’avis d’échéances ;— une pour exprimer la demande de l’attestation scolaire ;— deux pour demander des informations comprises dans l’attestation scolaire ;— une question ouverte.

La dernière question permet d’élargir le type de question qui peut être posée vis-à-vis des documentsmais également d’avoir connaissance du type de question hors sujet qui peut être posée.

La décomposition de ce corpus se fait comme suit, dans le tableau 3. Un préclassement manuel aété fait pour toutes les réponses de la question 8) : toutes celles faisant référence à un document ont étéattribuées au bon document ; toutes celles étant du hors-sujet ont été mises de coté. Ces corpus contiennentégalement des fautes orthographes, fautes de frappe, etc. . . .

Le corpus se découpe en quatre types de demandes qui sont : demande du document attestationscolaire, demande du document avis d’échéances, demande d’informations sur l’attestation scolaire etdemande d’informations sur l’avis d’échéances. Un premier constat montre qu’il y a peu de lemmesprésents par catégories. Nous avons donc poussé l’étude un peu plus en détail pour observer combien delemmes sont communs à toutes les classes et deux à deux. Les résultats sont énoncés dans la figure 2.

TABLE 3 – Constitution des corpus d’apprentissage et de test

Catégorie Nb questions Nb mots Nb lemmes

Apprentissage

Document Scolaire

463

67

5697

685

906

140Information Scolaire 132 1732 260Document Échéance 66 1031 144Information Échéance 198 2249 362

Test

Document Scolaire

119

14

550

278

400

187Information Scolaire 29 524 289Document Échéance 17 262 155Information Échéance 45 701 407

Il apparaît que pour trois classes, il n’y a aucun lemmes discriminants positifs. Ce qui, cumulé avec lefait que l’on trouve 88 lemmes communs, sous-entend que nous ne pourrons pas nous baser uniquementsur la présence ou non d’un lemme.

Grâce à ces formulaires, nous pouvons pallier l’absence de réelles données. Et donc, nous sommesdans la capacité de créer et tester nos différentes solutions.

Université de Nantes 23 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

FIGURE 2 – Termes communs aux 4 classes

5.2.2 Le dictionnaire

Comme nous l’avons dit précédemment, un des traitements que nous souhaitons mettre en place etimplémenter est une lemmatisation. Pour cela, nous utilisons un fichier que l’on appellera dictionnaire.Sur chaque ligne, il y a une forme fléchie associée à son lemme, sa classe grammaticale, son genre et sonnombre. Certains termes propres au domaine de l’assurance ont été ajoutés à la main au fur et à mesuredes tests.

5.2.3 Les listes de vocabulaires spécifiques

Après une analyse des réponses aux formulaires, nous avons constaté un phénomène langagier impor-tant. En effet, lorsqu’une personne parle de son véhicule, il le mentionne en utilisant sa marque et/ou sonmodèle, par exemple "ma 206 a été fracturée" ou bien "Pour mon C4 j’ai quoi comme garanties ?".

Or ce type de vocabulaire ne se trouve pas dans le dictionnaire que nous avons. Pour pallier cela, nousavons constitué une liste avec un maximum de marques et de modèles de voitures. Nous nous sommesbasés sur des classements des voitures les plus vendues sur le marché français durant plusieurs années.

5.3 Solution suivant CleverScript

La première solution qui a été implémentée est une adaptation directe d’une solution présentée à lasection 4.1.3. Cette solution a fait ses preuves dans d’autres langages (anglais et russe), c’est pour celaque nous avons débuté par celle-ci. Elle permet de mettre en œuvre des notions intéressantes comme lesgrammaires contextuelles et la distance de Levenshtein.

Algorithme Le fonctionnement repose complètement sur le fichier csv de la base de connaissances. Larecherche d’une règle de la grammaire satisfaisant l’entrée utilisateur est effectuée. Une fois que cette

Université de Nantes 24 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

règle est trouvée, la réponse associée est retournée à l’utilisateur directement.

La distance de Levenshtein permet de remédier aux problèmes de fautes d’orthographe (ou de fautesde frappe). Pour chaque règle de la grammaire est associée un seuil de similarité à respecter qui dépenddirectement des termes. La règle satisfaisante doit respecter ce seuil pour être validée. Ce seuil a étéattribué et adapté à chaque règle de façon arbitraire. Par exemple, si l’utilisateur fait un simple inversementde deux lettres dans un mot de trois lettres ou dans un mot de sept lettres, l’impact avec la distance deLevenshtein (normalisée) ne sera pas le même.

Toujours dans un souci de minimiser l’impact des fautes orthographes, l’entrée utilisateur est tokeni-sée, mise en minuscule, les accents et la ponctuation sont supprimés.

Dans le cas où la phrase utilisateur n’a pas trouvé son pendant dans la grammaire, il y a une règlequi est à un seuil de similarité maximum pour accepter toutes les phrases. Cela permet de retourner àl’utilisateur une réponse malgré tout, même si cette réponse vise à demander à l’utilisateur de reformulersa question car elle n’a pas été comprise.

La base de connaissances Nous avons donc fait une adaptation en modifiant quelque peu le fichiercsv et fixé des conventions pour l’écriture des règles dans le fichier. Les colonnes appliquées sont lessuivantes :

1. Type : si la ligne est une entrée (In), une sortie (Out) ou un terminal(T) ;

2. Étiquette : le terme est en majuscule pour symboliser les non-terminaux dans la grammaire ;

3. Phrase : les termes sont en minuscules sauf les non-terminaux ;

4. Condition : la phrase est utilisable sous certaines conditions définies dans cette colonne, TRUEpar défaut ;

5. Mémorisation : il est possible d’affecter des valeurs à des variables définies qui peuvent êtreutilisées dans la formulation des conditions ;

6. Suivant : non-terminaux qui indique la ligne à laquelle se déplacer si celle-ci a été reconnue ;

7. Similarité : le seuil limite d’acceptation pour la ressemblance entre la phrase de l’utilisateur etcelle dans la colonne Phrase, avec la mesure de Levenshtein 8.

Pour comprendre plus facilement la construction, un exemple simple à partir d’une grammaire contex-tuelle est présenté dans la table 4. Elle permet de reconnaître la phrase "Bonjour comment vas-tu ?" parexemple.

TABLE 4 – Exemple d’une grammaire pour saluer quelqu’unDEB_CLIENT → BJR comment BV ?BJR → bonjour | salut | salutationBV → allez-vous | vas-tu | vont-ils

8. Elle donne le taux d’erreur autorisé

Université de Nantes 25 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Cette même grammaire est mise sous la forme cleverscript selon les choix que nous avons définispréalablement.

TABLE 5 – Exemple de fichier .csv avec intégration d’une grammaire

Type Étiquette Phrase Condition Variable Suivant Similarité

1 Out DEB bonjour !2 In DEB_CLIENT BJR comment BV ? MERCI_BOT 303 In RIEN rien RIEN_BOT 10004 T BJR bonjour / salut / salutation 105 T BV allez-vous / vas-tu / vont-ils / ça va 106 Out MERCI_BOT bien, merci.7 Out RIEN_BOT je suis désolé, je n’ai pas compris.

Dans cet extrait de fichier, présenté dans la table 5, le robot tente de détecter si l’utilisateur prend deses nouvelles. La première ligne est pour le cas où l’on souhaite que le robot entame la conversation. Puis,dès que l’utilisateur répond au chatbot, il va tenter de trouver la règle qui satisfait au mieux cette phrase.Il va donc commencer par la première ligne taggée comme "In" donc comme une entrée utilisateur ; ici,la ligne 2. À chaque fois, qu’il rencontre un non-terminal, il va chercher sur la ligne référencée (ici leslignes 4 puis 5) si un des termes correspond à l’entrée utilisateur ; dès qu’il échoue, il passe à la règle "In"suivante.

Dans le cas où l’utilisateur lui dit "bonjour comment ça va bien ?", la similarité est de 17% 9 donc leprogramme va se positionner sur la ligne 6 pour répondre car le seuil de similarité n’a pas été dépassé (<30%).

Dans le cas où l’utilisateur dit "bonjour ça va ?", la phrase a une similarité de 58% avec la règle (carle terme "comment" est manquant) et est donc rejetée. Le programme passe donc à la ligne 3 qui est cellepar défaut car elle accepte tout. La réponse associée à la ligne 7 est donc renvoyée.

Implémentation Au moment de l’implémentation de l’algorithme et des premiers tests, une subtilité aété mise en évidence : dans le cas, où une phrase utilisateur coïncide avec plusieurs règles "In" (cela estprovoqué par le seuil de la similarité), il faut être capable de choisir la meilleure des solutions pour restercohérent dans le fil de conversation. Sans oublier, que toutes les phrases correspondent au moins à unerègle qui est la règle par défaut.

La solution d’accepter la première règle comme étant la meilleure est rejetée d’office. Ne sachant pascomment s’effectue la lecture de la base de connaissances, si nous faisions cela, nous laisserions une partde hasard dans le traitement. Ce qui n’est pas acceptable.

La seconde solution que nous avons mise en place est le calcul d’un coefficient qui se base sur plu-sieurs critères concernant la phrase candidate, la phrase utilisateur et la règle "In" utilisée. Chaque fois

9. 4 (insertions) /23 (taille de la chaîne de référence)

Université de Nantes 26 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

qu’une nouvelle règle est acceptée, si ce coefficient est inférieur à celui retenu précédemment alors c’estla nouvelle règle qui devient la meilleure des solutions.

Soit les termes suivants :— #c : nombre de mots de la phrase candidate ;— #u : nombre de mots de la phrase utilisateur ;— r : nombre de terminaux et non-terminaux dans la règle "In" ;— Simu

c : similarité calculée entre la phrase utilisateur et la phrase candidate par normalisation de ladistance de Levenshtein.

Coeff =|r −#c|

#u∗ Simu

c (4)

L’équation 4 permet de prendre en compte des phrases utilisateurs qui sont grammaticalement com-plexes et dont une partie de la phrase n’est pas utile et s’apparente à du bruit. Elle permet de prendre encompte la similarité entre les deux phrases mais également le fait que la phrase candidate est fidèle à larègle "In".

Premiers constats Après l’implémentation de l’algorithme et des tests sur une petite base de connais-sances (constituée d’une trentaine de lignes dont 7 pour les règles d’entrée utilisateur), la solution paraîtquelque peu complexe. En effet, la similarité est une variable sensible qui est déterminante dans la com-préhension du robot. Malheureusement, le seuil d’acceptation étant fixé par nos soins, cela reste incons-tant. En effet, si nous prenons l’hypothèse de fixer le seuil à une permutation de lettres par mot, dans lecas d’ "est" ou d’"attestation", l’impact ne sera pas du tout le même. Par contre, une fois qu’une hypothèseacceptable a été trouvée, la solution est robuste sans aucun doute.

Au moment de la construction de la réelle base de connaissances à partir des réponses aux formulaires,nous nous sommes rendus compte de la complexité de la tâche. En effet, après quelques recherchesinfructueuses pour trouver un outil capable de générer des règles automatiquement pour notre grammaire,nous avons entrepris de les créer à la main. Très rapidement, nous avons évalué cette opération commeétant trop coûteuse en temps.

De plus, à la lecture des premières réponses, un constat non négligeable est que les utilisateurs nefont pas forcément une unique phrase même s’ils sont face à une chatbox. Certains vont expliquer touteleur situation pour obtenir les informations qu’ils souhaitent. Ce qui avec la solution expérimentée paraîtingérable. Puisque cela signifierait que l’on a une suite de réponses sans cohérence de la part du robot.

5.4 Solution suivant la classification des questions

Les deux solutions suivantes sont basées sur le système de classification présenté à la section 4.3.1mais elles n’utilisent pas la même ressource pour la création de l’index.

Université de Nantes 27 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

5.4.1 Méthodologie

Le corpus d’apprentissage est, dans un premier temps, segmenté en mot en utilisant les espaces et lesapostrophes. C’est un choix qui a été fait pour pouvoir supprimer facilement tous les pronoms personnels,les articles, etc. . . . Puis chaque terme est lemmatisé et les mots vides sont supprimés, c’est une manièrede simplifier le problème en se concentrant sur l’essentiel. En effet, les mots très fréquents tels que lesmots vides ne nous apportent pas d’informations sur un document plus particulièrement qu’un autre. Pourfinir, le sac de mots que nous avons obtenu à la suite de ces étapes est transformé en un index inversé viale modèle tf*idf présenté précédemment.

Durant la phase de tests, nous avons réalisé des simulations avec la formule de base de tf*idf maiségalement avec ses dérivées.

Le fonctionnement global est commun aux deux solutions annoncées. Ce qui diffère entre ces deuxsolutions c’est le corpus d’apprentissage ainsi que la formation de l’index inversé qui sont présentés dansles parties suivantes.

Solution à 2 catégories (2Cat) L’extraction des mots-clés contenus dans les documents devrait suffireà créer une base de connaissances fiable. En effet, si l’on part du postula que dans chaque question duclient, il y a au minimum un mot-clé relatif à un document, le vocabulaire du document en question estsuffisant.

Les premières données obtenues étaient l’extraction du vocabulaire dans les deux documents ciblésqui sont l’attestation scolaire et l’avis d’échéances. La première solution s’est naturellement basée sur cesdonnées comme corpus d’apprentissage.

L’index inversé qui est construit affecte un poids à chaque terme en fonction de sa présence dansl’attestation scolaire et dans l’avis d’échéance. D’une façon générale, l’index construit ressemble à :

terme→ {Scolaire : tf(d, t)∗idf(t) ; Échéance : tf(d, t)∗idf(t)}

La classification reste rudimentaire avec cette solution. Nous pouvons la considérer comme la base-line.

Solution à 4 catégories (4Cat) L’avancée du projet montre que les réponses attendues ne sont pasles mêmes lorsque l’on demande un document ou que l’on demande des informations contenues dansces documents. Il est donc intéressant de faire la distinction entre les deux pour apporter une réponsepertinente. C’est l’objectif de cette méthode.

Le corpus d’apprentissage de cette solution est constitué des réponses aux formulaires participatifs.Les différentes réponses sont classées selon les catégories suivantes :

— demande du document avis d’échéances (question 1— demande d’informations sur l’avis d’échéances (question 2 à 4) ;— demande du document attestation scolaire (question 5) ;— demande d’information sur l’attestation scolaire (question 6 et 7).

Université de Nantes 28 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Les réponses de la dernière question (ouverte) ont été classées manuellement. La construction de l’indexinversé reste le même que précédemment sauf qu’au lieu d’avoir une "collection" de 2 documents, il y ena 4.

5.4.2 Test et résultats

Corpus Pour constituer le corpus de test, nous avons utilisé quinze réponses des formulaires prisesau hasard. Cela comprend 119 questions au total qui ont été annotées manuellement en adaptant le tagsuivant la solution. Un exemple tiré du corpus de test est présenté à la table 6.

TABLE 6 – Exemple d’annotations dans les corpus de tests

solution 2Cat Quel est l’intérêt de la responsabilité civile ? ; Scolaireou

solution 4Cat Quel est l’intérêt de la responsabilité civile ? ; InfSco

Méthodologie Le corpus de test est segmenté et lemmatisé. Dans le cas où le lemme n’a pas été trouvédans le lexique, une mesure de similarité (Distance de Levenshtein) est effectuée pour éventuellementpallier les fautes d’orthographe. Puis un score est calculé entre chaque groupe et la question utilisateurpour définir auquel l’attribuer. Le score correspond à

∑i poids(ti, d) pour chaque document (groupe) d.

Tests Nous avons réalisé les mêmes tests sur les deux solutions proposées afin de pouvoir établir unpoint comparatif. La table 7 présente les résultats liés à la solution qui classifie uniquement la questionselon le document mentionné. La table 8 contient les résultats classifiant les questions plus précisément.Différentes variations du calcul de base de tf*idf ont été réalisées :

— probabiliste : idf(t) = log10(N−dfdf ) ;

— lissé : idf(t) = 1 + log10(Ndf ) ;

— normalisé : tf ∗ idf/√∑

k(tf)2 ∗ idf2.

La normalisation paraît plus que nécessaire dans notre étude car les documents ne sont pas du toutéquivalents en termes de taille. Comme nous l’avons mis en évidence à la section 5.2.1, l’avis d’échéancescontient 8 fois plus de vocabulaire que l’attestation scolaire. Les proportions sur la collecte de données viales formulaires participatifs sont du même ordre comme le montre la table 3 (bien que cela soit beaucoupmoins flagrant).

Le schéma Okapi-BM25 utilisé dans les tests est une variation de la formule présentée à la section4.3.1 car les pondérations idf étaient négatives ce qui faussait la catégorisation. Claveau[15] mentionneau sujet de l’idf de départ que cela nécessite des données d’apprentissage conséquentes. Finalement,l’alternative suivante a été utilisée idf = ln(N+1

df ).

Il est important de spécifier que ce que nous cherchons c’est à optimiser la précision et le rappel pourchaque document. En effet, le but est que lorsque le robot détecte la référence à un document, il soit sûrde lui et ce pour le plus grand nombre de références. Donc, nous cherchons à maximiser ces deux valeurs.

Université de Nantes 29 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

TABLE 7 – Résultats obtenus sur la solution 2Cat avec deux groupes de classification

Scolaire Échéance

tf*idf Précision Rappel Précision Rappel

Normal 65% 51% 67% 79%Probabiliste 67% 55% 68% 79%Lissé 88% 28% 63% 97%Probabiliste et Lissé 89% 30% 63% 97%Normalisé 85% 83% 87% 88%

TABLE 8 – Résultats obtenus sur la solution 4Cat avec quatre groupes de classification

Scolaire Échéance

Document Information Document Information

tf*idf Précision Rappel Précision Rappel Précision Rappel Précision Rappel

Normal 85% 86% 82% 97% 92% 65% 86% 84%Probabiliste 0% 0% 49% 76% 8% 6% 82% 20%Lissé 93% 93% 100% 59% 91% 59% 70% 98%Probabiliste et Lissé 100% 79% 100% 62% 91% 59% 68% 98%Normalisé 88% 100% 85% 97% 93% 76% 90% 82%

Okapi 56% 36% 70% 97% 90% 53% 91% 87%Pivot 70% 86% 82% 97% 91% 59% 90% 82%

Nous savons que le choix du calcul employé dépend directement du type de données que l’on utilisepour l’apprentissage. Dans notre cas, les tables 7 et 8, montre clairement que la méthode du tf*idf norma-lisé fournie de meilleurs résultats, comme nous l’avions supposé plus haut à cause du déséquilibre dansla répartition des termes au sein des classes.

Observons plus en détail les résultats de la solution 2Cat, en dehors de la normalisation, avec lesautres méthodes de calcul du poids, l’algorithme a une forte tendance à classer toutes les questions pourlesquelles il a un doute comme portant sur l’avis d’échéances. Ce qui donne une précision en moyennede 65% pour l’avis d’échéances et 41% de rappel pour l’attestation scolaire. La répartition du vocabu-laire montre ici toute son importance. Car avec la normalisation, qui permet de prendre en compte cettedifférence, les résultats sont homogènes autour de 85,5% (toujours pour le rappel). Pour finir, nous avonsdéjà mis en évidence que les documents ont une similarité de 30%, donc avoir une précision de 86% enmoyenne est déjà un très bon résultat au vue des données, sans parler de l’utilisation de synonymes pourle nom de chaque document.

Pour ce qui est de la solution 4Cat, les résultats de la méthode probabiliste sont beaucoup trop faibleset irréguliers pour pouvoir être exploités. Les précisions sont majoritairement plus élevées avec la mé-thode combinant le lissage et la probabilité mais le rappel est assez bas. Avec cette méthode, la précisionmoyenne est de 89,75% contre 89% pour la méthode normalisée. Pourtant nous avons dit précédemmentque les deux tables montraient de meilleurs résultats avec les méthodes normalisées. En effet, cette der-

Université de Nantes 30 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

nière présente des résultats plus constants sur la précision avec un écart-type beaucoup plus faible et unemoyenne de 88,75 pour le rappel ce qui est le meilleur résultat que l’on ait obtenu pour l’instant.

En comparant la meilleure méthode de tf*idf, et les méthodes Okapi et Pivot, finalement, c’est la mé-thode standard qui donne de meilleurs résultats, même si la méthode Pivot reste très proche. Nous avonstrouvé ici une nouvelle limite à la méthode BM25 lorsque les documents sont trop proches sémantique-ment, il est difficile d’obtenir des résultats supérieurs à la méthode standard.

Il reste évident que la solution choisie dépend directement du rôle que l’on souhaite donner à l’agent.Mais même si l’on souhaite faire la différence entre les deux documents, la seconde méthode apparaîtcomme meilleure.

Premiers constats Contrairement à la solution basée sur Cleverscript, l’algorithme est plus simple etrapide à implémenter. Il est facilement exploitable avec différents types de données, la preuve en est, nousavons créé deux solutions avec un unique algorithme. Il est donc facile de l’étendre.

Son souci majeur est qu’il dépend directement des données utilisées. En effet, dans la solution 2Cat,le modèle est finalement capable de détecter uniquement de quel document il est question et uniquementceci, car nous nous sommes exclusivement basés sur le vocabulaire contenu dans les documents.

Quant à la solution 4Cat, elle demande l’acquisition de beaucoup de données. La collecte des donnéess’étant étalée sur plusieurs mois, nous avons fait des tests avec moitié moins de données. Les résultatsétaient entre 10 et 15% inférieurs à ceux que nous obtenons avec le corpus complet.

5.5 Solutions s’appuyant sur les liens sémantiques

5.5.1 Méthodologie

Pour ces deux méthodes c’est une fois de plus le corpus d’apprentissage contenant les réponses auxformulaires séparées en quatre classes qui a été utilisé. La même baseline a été appliquée aux deuxméthodes également. C’est-à-dire que le corpus a été segmenté sur les espaces uniquement. La secondeapplication des méthodes appelées Complète met en œuvre la distance de Levenshtein pour compléter lalemmatisation, la suppression des Stopwords et l’utilisation de la liste de véhicules.

Détection de liens Comme nous l’avons expliquée à la section 4.3.3, la détection de liens se base surla comparaison des chaînes lexicales constituant les classes. Pour former ces chaînes, l’auteur a utilisé unensemble de vecteurs contextuels. Nos ressources étant plus limitées nous avons pris la liberté d’adaptercette méthode en utilisant un réseau de collocations.

Le réseau se base sur les mots cooccurrents les plus fréquents avec comme limite contextuelle, laphrase. À cette étape, l’intégralité du corpus a été utilisée sans distinction de document. Une fois saconstruction achevée, l’algorithme ChainerSv de l’auteur est mis en œuvre pour composer les chaînes.

Pour finir, nous utilisons l’équation de similarité qui permet de comparer deux chaînes lexicales pourattribuer une phrase de test à un document.

Université de Nantes 31 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

TABLE 9 – Résultats obtenus pour les méthodes de détections de liens et segmentation par thématique

Scolaire Echéance

Document Information Document Information

Méthodes Précision Rappel Précision Rappel Précision Rappel Précision Rappel

Détection liensBaseline 0% 0% 0% 0% 0% 0% 44% 100%Complète 10 60% 43% 50% 3% 100% 0% 46% 100%

Segmentation par thématiqueBaseline 79% 79% 66% 100% 83% 29% 80% 73%Complète 92% 86% 82% 97% 92% 65% 85% 87%

Segmentation par thématique La segmentation par thématique nécessite la définition d’un contextethématique (voir la section 4.3.2). Dans ce but, le vecteur contextuel pour chaque classe est calculé enutilisant la fréquence de chaque terme dans le document mais également dans l’ensemble du corpusd’apprentissage. Finalement, c’est un vecteur contextuel par document qui est obtenu à la fin de cetteétape.

Pour chaque question du corpus de test, nous calculons également le vecteur contextuel pour ensuitemesurer la similarité entre ce dernier et celui de chaque document. Les résultats obtenus sont présentésdans la partie suivante.

5.5.2 Tests et résultats

Corpus Pour ces méthodes, nous avons utilisé une fois de plus les 119 questions annotées manuelle-ment. Grâce à cela, nous gardons une bonne base de comparaison des méthodes.

Méthodologie Le corpus de test a suivi les mêmes traitements que le corpus d’apprentissage. Dans unpremier temps, il a été segmenté (pour la baseline), puis lemmatisé avec l’utilisation de la distance deLevenshtein et des différentes listes à disposition. Les traitements et la mise en forme des données sontdépendants de la méthode utilisée suivant la détection de liens avec la création de chaînes lexicales ; oubien la segmentation par thématique avec la création de vecteur contextuel.

Tests La table 9 présente les résultats que nous avons obtenus pour les deux méthodes présentées quiclassifient les questions utilisateurs suivant les quatre possibilités.

Une première remarque frappante est que la détection de liens attribue toutes les phrases à la mêmeclasse. Cela peut s’explique facilement en effet, nous avons déjà montré que le vocabulaire est le mêmedans toutes les classes. Sachant, que la classe concernant les informations sur l’avis d’échéances est laplus grande en terme de lemme. Il est naturel que toutes les questions y soient classées.

Concernant la méthode de segmentation par thématique, les résultats sont relativement satisfaisantscar avec la méthode Complète, ils sont similaires à ceux obtenus avec la méthode de tf*idf. Les résultats

10. Complète : les traitements qui sont effectués sont Segmentation, Lemmatisation, Distance de Levenshtein et suppression desStopwords, avec l’utilisation de la liste de véhicules.

Université de Nantes 32 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

présentés ont été réalisés à l’aide de la mesure cosinus, mais des tests ont également été réalisés avecJaccard et Dice, mais à +/- 1%, nous obtenons les mêmes classements.

De plus, les calculs employés pour affecter un poids à chaque mot prennent en compte la taille desclasses. Nous pouvons donc affirmer que ce paramètre joue un rôle fondamental quand le vocabulaire esttrès proche (voire confondu) entre les groupes. Et le fait d’avoir autant de vocabulaire commun fait, apriori, plafonner nos résultats.

5.6 Réponses du robot

Dans la section précédente, nous avons défini un modèle capable à hauteur de 90% de détecter àquoi fait référence la question de l’utilisateur. À présent, nous allons voir comment l’agent répond àl’utilisateur.

FIGURE 3 – Réponses possibles à l’utilisateur

La figure 3 montre le processus utilisé pour répondre à l’utilisateur. Lorsque ce dernier pose unequestion, le modèle tente de détecter la classe d’appartenance de la question parmi les 4 classes que nous

Université de Nantes 33 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

avons déjà vues, ou si c’est une question hors-sujet (le paragraphe 5.6 est dédié à cette classe), ou bien sielle n’appartient à aucune de ces classes.

Dans le cas où la question fait référence à un document (que se soit pour une information s’y trouvantou pour le document lui même), il est demandé à l’utilisateur si le document détecté est bien celui dontil faisait mention. S’il répond oui, les instructions associées à sa demande, lui sont envoyées. Dans le cascontraire, et dans le cas où aucune classe n’est détectée, il est demandé à l’utilisateur de reformuler sademande plus clairement.

Quand une réponse est refusée par l’utilisateur, elle est mémorisée. Ainsi, lors de la reformulation,si la même réponse est détectée à nouveau, elle est mise de coté et c’est la suivante qui est envoyée àl’utilisateur.

Dans le cas d’un hors-sujet, la réponse associée à la question sera retournée à l’utilisateur.

Formats des réponses fournies par l’agent Pour stocker l’ensemble des réponses possibles suivant laclasse des questions, c’est un modèle similaire à cleverscript qui a été créé.

Un fichier de type csv contient 3 colonnes : une clé d’identification, des mots-clés et la réponse àretourner à l’utilisateur ; et une ligne par classe de documents (pour les 4 classes vues précédemment),ainsi qu’une ligne par type de hors-sujet.

Pour les classes "document attestation scolaire" et "document avis d’échéances", la colonne de ré-ponses contient toutes les instructions pour trouver ledit document à partir du moment où l’utilisateurest identifié sur son espace personnel. Pour les classes "demande d’informations" sur l’un ou l’autre desdocuments, la réponse retournée sera une proposition de mise en ligne avec un réel conseiller à traversune chatbox.

Dans ces 4 cas, la colonne des mots-clés est vide.

Gestion des questions hors-sujet Dans les formulaires que nous avons envoyés, la dernière questionétait une question ouverte. Cela était volontaire afin de couvrir un large éventail de comportements queles utilisateurs peuvent avoir face à un robot.

D’après les réponses obtenues, les utilisateurs aiment à demander des choses personnelles au robotcomme "Quel est ton nom ?", "Quel âge as-tu ?" ou encore "Est-ce que tu sais que tu es un robot ?".Finalement les thèmes couverts sont les suivants : le nom du robot, son âge, son fonctionnement, la date,le remerciement, la mise en contact avec un vrai conseiller et la salutation.

Pour pouvoir détecter ce genre de questions, chacune d’entre elles est associée à un ensemble demots-clés qui est stocké dans la seconde colonne du fichier réponse. Pour être sûr que nous avons bienaffaire à une question hors sujet, nous conservons les mots vides mais la lemmatisation est effectuée pourtenter de faire correspondre l’intégralité de la phrase utilisateur.

La réponse associée aux mots-clés qui couvrent au maximum la phrase utilisateur est renvoyée.

Université de Nantes 34 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

6 Application finale

La finalité de ce projet était de construire un prototype de Chatbot. Nous avons créé plusieurs modèleset défini les réponses possibles à l’utilisateur. Nous allons nous pencher à présent l’intégration web denotre modèle.

Nous avons choisi le modèle qui présentait l’implémentation la plus simple mais aussi, et surtout,les meilleurs résultats. Il s’agit donc de la version du tf*idf normalisé suivant les quatre classes. Il estdéveloppé en Python.

Le site internet de la MAIF utilise les technologies JavaScript, HTML, et Apache Tomcat commeserveur Web. Notre modèle quant à lui est développé en Python. Le but est donc de réaliser une applicationfonctionnelle avec toutes ces technologies.

Le serveur Web Une application Web est composée de deux entités principales : le serveur et le client.Dans notre cas, le développement du client ne peut être qu’en JavaScript, HTML et CSS puisque ce sontles technologies employées par la MAIF.

En ce qui concerne le serveur Web, la MAIF emploie Apache. Tomcat est dédié à la partie Java desapplications.

Le framework web Nous devons donc établir la communication entre ces deux parties. Il existe unenorme permettant d’appliquer une application Python sur un serveur web compatible qui s’appelle WSGI(Web Server Gateway Interface). Cette norme est donc une interface faisant la liaison entre le programmepython et le serveur web, pour nous Apache, assurant le passage de paramètres et de variables d’environ-nement, etc. La figure 4 montre comment sont transmises les informations d’une structure à une autre. Leserveur Web est l’élément central qui transmet une requête HTTP provenant du client Web à l’application.Puis la partie python écrit la réponse HTTP qui est retournée au client via le serveur.

Une application en Python doit répondre à une certaine conception pour pouvoir être compatibleavec WSGI. Généralement, il est assez complexe d’écrire une application de toute pièce, en particulierpour gérer les sessions des utilisateurs. Nous avons donc décider d’utiliser un framework pour faciliter etaccélérer l’intégration web. Pour cela, nous avons testé plusieurs solutions comme appier, bottle, webpy,pour finalement porter notre choix sur CherryPy.

CherryPy contrairement à d’autres, est simple d’utilisation, a une documentation bien fournie et estcompatible avec Apache. Ce framework est une application directe de WSGI ce qui facilite grandementl’adaptation de la partie Python pour le serveur Apache.

L’interface graphique Présentement, un projet de la MAIF consiste à passer le principal site internetau format Responsive. Pour garder une certaine cohérence, l’interface utilisateur du robot a été créée àpartir du fichier CSS construit dans le cadre de ce projet et à partir des maquettes déjà réalisées. Le résultatest présenté à la figure 5. Le chatBot a été intégré à la maquette "services au quotidien" en se fondantsur la zone de prise de contact de la page. Pour engager la conversation, l’utilisateur n’a qu’à cliquer

Université de Nantes 35 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

FIGURE 4 – Fonctionnement global de l’intégration Web

sur l’icône "MAIFBot" ; de même pour clôturer la conversation. La fenêtre de conversation qui s’ouvren’est pas bloquante, l’utilisateur peut continuer à faire défiler la page principale. Il peut donc appliquerdirectement les indications prodiguées par le robot.

Université de Nantes 36 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

FIGURE 5 – Interface graphique Responsive de l’agent conversationnel

Université de Nantes 37 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

7 Conclusion et perspectives

Le chatbot qui a été créé montre la faisabilité d’une solution relativement simple. En effet, le choix defaire une solution se basant sur la détection de mots-clés reste basique mais efficace (90% de précision)dans le contexte proposé. Les différentes solutions qui ont été implémentées, ont permis de mettre enlumière les méthodes état-de-l’art sensibles aux données. En effet, notre contexte fournissait des classesde questions très similaires et peu de données, seules les méthodes tf*idf et segmentation par thématiquesont réussi à fournir des résultats acceptables.

L’étape suivante est la constitution d’un corpus conséquent avec la mise en place d’un protocoleadapté au cas d’usage. Par exemple, il serait pertinent de diviser en deux la récolte de données : l’uneen septembre pour les questions relatives aux attestations scolaires et l’autre en décembre pour ce qui estde l’avis d’échéances. Une fois la collecte finie, il faudrait demander à des conseillers MAIF de classerchaque phrase dans une catégorie en clôturant par un accord inter-annotateur.

À travers différentes présentations orales, un certain nombre de personnes a pu être sensibilisé à cettetechnologie et convaincu par l’utilité qu’elle peut avoir.

D’un point de vue technique, ce stage m’a permis de mettre en œuvre toutes les connaissances quej’ai pu acquérir au cours de ces deux années de master ATAL, que se soit le traitement du langage, larecherche d’informations ou encore l’apprentissage supervisé. La conception et la réalisation de cet agentconversationnel ont comblé ma curiosité dans le domaine des chatbot. J’ai également été confrontée à ladifficulté de constituer un corpus suffisant.

La partie intégration web m’a également aidé à parfaire mes connaissances en Apache et frameworkweb car j’ai du faire un certain nombre de tests avant d’en trouver un compatible avec ma solution et monenvironnement. Les contraintes techniques ont été un véritable challenge dans cette solution mais ellesm’ont imposé d’approfondir chaque idée et solution que je trouvais.

Finalement, c’est un projet complet de la création à la réalisation en passant par la conception que j’aipu mener avec une grande liberté.

Université de Nantes 38 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Liste des tableaux

1 Tests des réponses sur les agents conversationnels commerciaux . . . . . . . . . . . . . 16

2 Extraction des termes des documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Constitution des corpus d’apprentissage et de test . . . . . . . . . . . . . . . . . . . . . 23

4 Exemple d’une grammaire pour saluer quelqu’un . . . . . . . . . . . . . . . . . . . . . 25

5 Exemple de fichier .csv avec intégration d’une grammaire . . . . . . . . . . . . . . . . . 26

6 Exemple d’annotations dans les corpus de tests . . . . . . . . . . . . . . . . . . . . . . 29

7 Résultats obtenus sur la solution 2Cat avec deux groupes de classification . . . . . . . . 30

8 Résultats obtenus sur la solution 4Cat avec quatre groupes de classification . . . . . . . 30

9 Résultats obtenus pour les méthodes de détections de liens et segmentation par thématique 32

10 Constitution du corpus de retranscription . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11 Résultats obtenus avec le corpus de retranscription . . . . . . . . . . . . . . . . . . . . 43

Table des figures

1 Fonctionnement de l’application ChatBot . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Termes communs aux 4 classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Réponses possibles à l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4 Fonctionnement global de l’intégration Web . . . . . . . . . . . . . . . . . . . . . . . . 36

5 Interface graphique Responsive de l’agent conversationnel . . . . . . . . . . . . . . . . 37

Université de Nantes 39 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Références

[1] Stan Franklin and Art Graesser. Is it an agent, or just a program ? : A taxonomy for autonomousagents. In Proceedings of the Workshop on Intelligent Agents III, Agent Theories, Architectures, andLanguages, ECAI ’96, pages 21–35, London, UK, UK, 1997. Springer-Verlag.

[2] Joseph Weizenbaum. ELIZA - a computer program for the study of natural language communicationbetween man and machine. Commun. ACM, 9(1) :36–45, 1966.

[3] Richard Wallace. alicebot, 2003.

[4] Richard Wallace. The Elements of AIML Style. ALICE A.I.Foundation,Inc., 2003.

[5] Calkin A. S. Montero and Kenji Araki. Evaluation of trivial dialogue phrase databases through prac-tical application to user-computer conversation - case study : English - spanish. In Bruno Apolloni,Robert J. Howlett, and Lakhmi C. Jain, editors, KES (2), volume 4693 of Lecture Notes in ComputerScience, pages 361–368. Springer, 2007.

[6] Eric Atwell Bayan Abu Shawar. Chatbots : Are they really useful ?, 2007.

[7] Rollo Carpenter. Cleverbot, 2006.

[8] Rollo Carpenter. Cleverscript, 2006.

[9] Jason L. Hutchens and Michael D. Alder. Introducing megahal. In Proceedings of the Joint Confe-rence on New Methods in Language Processing and Computational Natural Language Learning,NeMLaP/CoNLL 1998, Macquarie University, Sydney, NSW, Australia, January 11-17, 1998, pages271–274, 1998.

[10] Amit Singhal. Modern information retrieval : a brief overview. BULLETIN OF THE IEEE COM-PUTER SOCIETY TECHNICAL COMMITTEE ON DATA ENGINEERING, 24 :2001, 2001.

[11] Nhu Van Nguyen, Jean marc Ogier, Salvatore Tabbone, and Alain Boucher. Text retrieval relevancefeedback techniques for bag of words model in cbir, 2009.

[12] Yuanhua Lv and ChengXiang Zhai. When documents are very long, bm25 fails ! In Proceedingsof the 34th International ACM SIGIR Conference on Research and Development in InformationRetrieval, SIGIR ’11, pages 1103–1104, New York, NY, USA, 2011. ACM.

[13] Olivier Ferret. Using collocations for topic segmentation and link detection. In COLING, 2002.

[14] Li Wang, Diana Mccarthy, and Timothy Baldwin. Predicting thread linking structure by lexicalchaining. In Proceedings of the Australasian Language Technology Association Workshop 2011,pages 76–85, 2011.

[15] Vincent Claveau. Vectorisation, okapi et calcul de similarité pour le tal : pour oublier enfin le tf-idf.In Traitement Automatique des Langues Naturelles, TALN’12, Grenoble, France, June 2012.

[16] F. Dernoncourt. Designing an intelligent dialogue system for serious games. RJC EIAH’2012,page 33, 2012.

[17] Attila Szalo Annamaria Csordas Arpad Kiss Gabor Tatai, Laszlo Laufer. The chatbot who lovedme. AAMAS2003 Conference, page 33, 2003.

Université de Nantes 40 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

[18] Antoine Bordes, Jason Weston, and Nicolas Usunier. Open question answering with weakly super-vised embedding models. CoRR, abs/1404.4326, 2014.

[19] Karen Spärck Jones. A statistical interpretation of term specificity and its application in retrieval.Journal of Documentation, 28 :11–21, 1972.

[20] S. E. Robertson, S. Walker, and M. Beaulieu. Experimentation as a way of life : Okapi at trec. InInformation Processing & Management, pages 95–108, 2000.

Université de Nantes 41 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

Appendix A : Corpus de retranscriptions téléphoniques

Après quelques temps, un corpus de phrases construit pour le serveur vocal interactif a été fourni. Cecorpus est constitué d’associations entre des phrases (des demandes utilisateurs) et un concept.

L’élaboration du corpus s’est faite en plusieurs étapes. Dans un premier temps, une liste d’une cen-taine de concepts possiblement évoqués par les utilisateurs a été créée. Puis en 2011, un enregistrementd’environ 25000 phrases a été réalisé dans la zone Labo (région Rhones Alpes qui était en test d’un ser-veur vocal interactif (SVI) pour l’accueil téléphonique). C’est l’entreprise Prodosie qui gère le SVI etqui a également réalisé la collecte de phrases. Puis, l’entreprise a proposé un concept associé à chaquephrase, que la MAIF a validé ou corrigé manuellement.

En 2011 toujours, avant la mise en place et généralisation du SVI, un enrichissement du corpus a étéréalisé grâce à des phrases "inventées" par la MAIF avec le concept associé afin de faire apparaître dansle corpus des concepts que la MAIF souhaite reconnaître et qui ne sont pas ressortis dans les premiersenregistrements.

Un enregistrement d’un autre lot d’environ 25000 phrases en 2013 sur toute la France a été réaliséavec le même protocole où Prosodie propose un concept que la MAIF valide ou non.

Les associations Phrases / Concept ont été mises à jour en 2013, 2014 et 2015, au fil des évolutionsd’organisation MAIF ce qui a entraîné l’apparition de nouveaux concepts, une homogénéisation des as-sociations, des changement d’associations. . .

Analyse des données Les phrases étant des retranscriptions, des marqueurs de l’oral sont présents.Par exemple, l’onomatopée "euh" est récurrente au sein des phrases, ou encore le bégaiement avec larépétition d’un terme plusieurs fois. Nous trouvons également des incohérences syntaxiques comme "FiatMaif" ou "je veux assurer scolaire", ces erreurs sont introduites au moment de la retranscription.

De plus, certaines phrases sont composées d’un ou deux mots clés uniquement, comme "cotisation"ce qui est très ambigu et ne permet pas d’indiquer quel est le réel besoin de l’utilisateur. Nous avons doncréalisé un tri, les statistiques du nouveau corpus sont présentées dans la table 10. Finalement, c’est uncorpus moins fourni que nous obtenons par rapport à celui que nous avons constitué.

TABLE 10 – Constitution du corpus de retranscription

Nb questions Nb mots Nb lemmes

Document Scolaire 69 463 65Information Scolaire 16 151 53Document Échéance 166 952 160Information Échéance 134 1166 177

Utilisation des données Nous nous retrouvons donc avec un corpus succinct et qui n’a pas été construitpour faire de l’analyse écrite, nous l’avons testé sur certaines des solutions implémentées. Les résultats

Université de Nantes 42 M2 ATAL

Réalisation d’un agent conversationnel Stage fin d’étude

TABLE 11 – Résultats obtenus avec le corpus de retranscription

Scolaire Echéance

Document Information Document Information

Méthodes Précision Rappel Précision Rappel Précision Rappel Précision Rappel

Baseline 79 % 85% 62% 68% 100% 12% 55% 86%

4Cat 58 % 100% 0% 0% 59% 47% 44% 44%Détection liens 90% 64% 100% 65% 100% 47% 66% 100%Segmentation par thématique 56% 93% 100% 33% 100% 29% 95% 42%

sont présentés dans la table 11.

La première ligne de la table, présente une méthode dite Baseline. Les corpus d’apprentissage etde test sont mixtes de phases tiré des formulaires et des retranscriptions. Chaque phrase contenue dansle corpus d’apprentissage est segmentée et lemmatisée avant d’être associé à un document. Puis chaquephrase de test est comparée, après lemmatisation, aux phrases de l’apprentissage, pour déterminer laquelleest la plus proche avec la formule suivante : #u−#com+0.5

#p où #u correspond au nombre de mots de laphrase à tester, #p correspond au nombre de mots de la phrase d’apprentissage, et #com correspond aunombre de mots communs entre les deux phrases. Le coefficient de 0.5 permet de lisser le calcul et doncd’éviter les valeurs nulles. Cette méthode relativement simple, donne une précision de 74% et un rappelde 63% en moyenne. Cela reste toujours plus élevé que certaines méthodes vues dans le corps du rapport.

Pour la solution se basant sur la détection de liens, nous avons limité l’utilisation du corpus à laconstitution du réseau de collocations. Les résultats obtenus sont bien meilleurs que précédemment maisils restent insuffisants par rapport aux résultats de la méthode standard.

Pour les résultats de la solution 4Cat, il est important de noter que nous avons pris 80% du corpuspour la partie apprentissage ce qui correspond à 12 phrases pour la partie Information Scolaire. Ce quiimplique une certaine pauvreté en vocabulaire et des résultats nuls.

Pour finir, les résultats obtenus avec la solution par segmentation thématique nous donne une bonneprécision avec une moyenne de 87,5% mais le rappel est très faible.

10. Complète : les traitements qui sont effectués sont Segmentation, Lemmatisation, Distance de Levenshtein et suppression desStopwords, avec l’utilisation de la liste de véhicules.

Université de Nantes 43 M2 ATAL