57
Ecole Centrale Marseille LOGICA 38 rue Frédéric Joliot Curie 310 rue du Vallon 13013 Marseille 06560 Sophia Antipolis France France Travail de Fin d’Etudes Du 26/03/12 au 26/09/12 Développement d’un prototype de type « robot chat » basé sur le traitement du langage naturel Samuel Lefèvre 3 ème année promotion 2012 Parcours S2I Tuteur école : Tuteur Entreprise : François Brucker Adil Zaid

Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

Ecole Centrale Marseille LOGICA

38 rue Frédéric Joliot Curie 310 rue du Vallon

13013 Marseille 06560 Sophia Antipolis

France France

Travail de Fin d’Etudes

Du 26/03/12 au 26/09/12

Développement d’un prototype

de type « robot chat »

basé sur le traitement

du langage naturel

Samuel Lefèvre

3ème

année promotion 2012

Parcours S2I

Tuteur école : Tuteur Entreprise :

François Brucker Adil Zaid

Page 2: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

2

Samuel LEFEVRE

Page 3: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

3

Samuel LEFEVRE

Remerciements :

Je remercie chaleureusement toutes les personnes grâce à qui ce stage a pu se dérouler dans

les meilleures conditions, et plus particulièrement :

Adil Zaid, mon maître de stage,

Arnaud David, directeur de projet qui m’a accueilli à mon arrivée à LOGICA,

Blandine Corbier, qui m’a aidé à me préparer pour les entretiens d’embauche,

Guillaume Floyrac, qui m’a accompagné au long du processus d’embauche,

Violaine Perbost, qui s’est chargée de mon recrutement,

Aziz Kezzou, qui représente le client,

Prashant Balasubramanyan, qui nous a apporté son aide tout au long du stage,

Jean-Michel Durand, stagiaire avec qui j’ai travaillé sur ce projet,

Nicolas Duthoit, stagiaire qui a travaillé sur le projet de développement iPad,

sans oublier tous les collaborateurs que j’ai rencontrés et qui ont contribué à mon

intégration et au bon déroulement de ce projet.

Page 4: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

4

Samuel LEFEVRE

Résumé :

Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise

LOGICA. Mon objectif était de développer un prototype d’application de type « robot chat »

basé sur le traitement du langage naturel, afin d’apporter du support aux équipes du client

AMADEUS. Cette mission a été réalisée en binôme avec Jean-Michel Durand, stagiaire issu

de l’Ecole Nationale Supérieure des Mines de Saint Etienne. Au travers de l’étude de l’état de

l’art, de l’analyse du besoin et du développement d’un prototype, nous avons été confrontés

aux problématiques de l’analyse et de la compréhension du langage naturel par l’ordinateur,

mais également de l’indexation et de l’extraction d’information des documents.

Abstract :

This report describes the different aspects of my third and last internship which took place at

LOGICA. My objective was to develop a “robot chat” application prototype based on natural

language processing, in order to provide support to the teams of the client AMADEUS.

During this mission I worked together with Jean-Michel Durand, who is a trainee from the

Ecole Nationale Supérieure des Mines de Saint Etienne. While making the state-of-the-art

study, the analysis of the needs and the development of the prototype we came across the

issues of the analysis and the understanding of natural language by a computer, as well as the

issues of indexing and extracting information from documents.

Mots-clés : Traitement du langage naturel – LOGICA – AMADEUS – Robot chat –

indexation – moteur de recherche

Keywords : Natural language processing – LOGICA – AMADEUS – Chat Robot – Indexing

– Search engine

Page 5: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

5

Samuel LEFEVRE

Glossaire :

ATC = Amadeus Test Coordination: Equipe d’Amadeus chargée de rediriger les PTR

lies à des incidents en phase de test.

BE = Back end: Serveur utilisé pour tester les produits.

EDIFACT = Electronic Data Interchange for Administration, Commerce and

Transport: Un des formats de données utilisés par Amadeus pour communiquer.

GATE = General Architecture for Text Engineering: Solution open source complète

pour le traitement du langage naturel.

MDW = Middleware Development and Support: Equipe d’Amadeus en charge des

middlewares.

NLP = Natural Language Processing: Traitement du langage naturel ; au sens strict,

analyse syntaxique du langage naturel ; au sens large, inclus également l’analyse sémantique.

OTF = Un des moteurs de backend d’Amadeus ; fait également référence à l’équipe

en charge de ce BE.

OWL = Web Ontology Language: famille de langages de représentation de

connaissance utilisé pour la création d’ontologie, basée sur les RDFS.

PoC = Point of Contact: Personne à contacter dans le cadre d’un problème spécifique.

PoC = Proof of Concept: Prototype.

PoS = Part of Speech: Catégorie lexicale de mots ou de groupes de mots.

PRL = PNR Retrieve and List: Une des équipes d’Amadeus en charge de la gestion

des PNR.

PRN = Passenger Name Record: regroupe des données variées permettant

l’identification d’une réservation pour un vol, une location…

PTR = Problem Tracking Record: Utilisé par Amadeus pour signaler des problèmes

rencontrés, lorsque l’impact est limité à une seule équipe.

RDF = Resource Description Framework: famille de spécifications utilisée pour la

description de concepts ou la modélisation de l’information.

RDFS = RDF Schema: Ensemble de classes fournissant les éléments de base pour la

description d’ontologie.

Page 6: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

6

Samuel LEFEVRE

QA = Question answering (Méthode 1): Une des trois principales méthodes utilisées

en traitement du langage naturel.

SI = Router d’Amadeus. Fait également référence à l’équipe en charge de ce routeur.

SMC = Service Management Center : Equipe d’Amadeus chargée de centraliser et de

rediriger les PTR lies à la production.

Page 7: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

7

Samuel LEFEVRE

Sommaire

Remerciements : ...................................................................................................................................... 3

Résumé : .................................................................................................................................................. 4

Abstract : ................................................................................................................................................. 4

Glossaire : ................................................................................................................................................ 5

Introduction ............................................................................................................................................. 9

Partie 1 : Contexte de la mission ........................................................................................................... 10

A) Présentation de l’entreprise LOGICA ................................................................................... 10

1) Présentation générale de LOGICA ........................................................................................ 10

2) La vie au sein de l’agence de Sophia Antipolis ..................................................................... 15

B) Présentation du client AMADEUS ........................................................................................ 16

1) Présentation générale d’AMADEUS ..................................................................................... 16

2) La place des collaborateurs de LOGICA chez AMADEUS .................................................. 18

C) Contexte de la mission .......................................................................................................... 19

1) Ma place au sein de LOGICA ............................................................................................... 19

2) Mise en place du projet.......................................................................................................... 20

Partie 2 ................................................................................................................................................... 22

A) Etat de l’art ............................................................................................................................ 22

1) Introduction au langage naturel ............................................................................................. 22

2) Démarche générale du traitement du langage naturel ........................................................... 23

3) Principales méthodes ............................................................................................................. 24

B) Elaboration du cahier des charges ......................................................................................... 30

1) Etude du besoin ..................................................................................................................... 30

2) Solution proposée .................................................................................................................. 32

Page 8: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

8

Samuel LEFEVRE

C) Mise en place de la solution .................................................................................................. 33

1) Travail réalisé ........................................................................................................................ 33

2) Technologies utilisées ........................................................................................................... 34

3) Interface ................................................................................................................................. 36

4) Traitement du langage naturel .............................................................................................. 38

Conclusion ............................................................................................................................................. 42

Bibliographie ......................................................................................................................................... 43

Annexes ................................................................................................................................................. 44

Page 9: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

9

Samuel LEFEVRE

Introduction

Ce stage de fin d’études clôt pour moi une période de trois ans en école d’ingénieur à Centrale

Marseille et m’ouvre une nouvelle période, celle de la vie professionnelle. Après une

expérience de deux mois dans une start-up marseillaise en informatique l’année précédente, je

désirais découvrir l’univers des grands groupes. Le forum entreprises organisé par mon école

m’a permis de prendre contact avec certains groupes proposant des postes dans le conseil en

informatique, et c’est finalement à LOGICA que j’ai choisi d’effectuer mon stage de fin

d’études.

Lors des entretiens, plusieurs sujets de stage m’ont été présentés. Mon choix s’est

immédiatement porté sur le projet de traitement du langage naturel, qui me paraissait lié à un

domaine qui a toujours attisé ma curiosité, la linguistique. J’étais également intéressé par le

fait d’être impliqué dans les différentes étapes du cycle de vie d’un produit. La perspective de

travailler en binôme avec un autre stagiaire m’a également semblé stimulante. Avec quelques

mois de recul je pense maintenant avoir choisi cette entreprise et ce stage pour de bonnes

raisons.

Le traitement du langage naturel s’est révélé plus complexe que je l’imaginais, et les

problématiques liées à l’indexation et à la recherche des données se sont rapidement

dévoilées. Le désormais célèbre moteur conversationnel Siri d’Apple représentait

l’application idéale que j’aspirais à développer pendant ce stage ; je me suis rapidement défait

de cette chimère en réalisant que la route est encore longue avant de pouvoir converser

véritablement avec un ordinateur.

L’objectif de ce stage est de concevoir un prototype d’application de type « robot chat » basé

sur le traitement du langage naturel afin d’apporter de l’aide aux membres des équipes du

client en répondant à leurs questions. Pour atteindre cet objectif, notre équipe a commencé par

réaliser un état de l’art pour identifier différentes méthodes et les outils existants ; une fois

cette étape franchie nous avons rencontré quelques équipes intéressées du client pour analyser

le contexte et le besoin. Cela nous a permis d’élaborer un cahier des charges, et ce n’est

qu’une fois ce dernier validé par le client que nous avons réellement commencé à développer

le prototype.

Page 10: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

10

Samuel LEFEVRE

Partie 1 : Contexte de la mission

A) Présentation de l’entreprise LOGICA

1) Présentation générale de LOGICA

LOGICA est une entreprise européenne de services en informatique, spécialisée dans le conseil,

l’intégration de systèmes et l’outsourcing. Fondée par Len Taylor, Philip Hughes et Pat Coen business

en 1969, LOGICA s’est développée au fil des ans et des acquisitions, et réunit aujourd’hui près de

41 000 collaborateurs. Andy Green est le PDG de LOGICA depuis janvier 2008. Le siège social de

l’entreprise se trouve à Reading, au Royaume-Uni.

Implantée dans 41 pays, LOGICA s’implique auprès de ses clients, parmi lesquels figurent les plus

grandes compagnies européennes, dans des secteurs extrêmement diversifiés. Elle s'engage dans des

collaborations à long terme et exploite ses savoirs pour répondre de façon innovante aux besoins de

ses clients. LOGICA est coté à la Bourse de Londres et d'Amsterdam.

Depuis le 20 août 2012, LOGICA fait officiellement partie de CGI, une SS2I canadienne d’envergure

internationale très fortement implantée en Amérique.

L’implantation de LOGICA au plus proche de ses clients lui permet de s’imprégner de leur langue et

de leur culture, et ainsi de vendre et livrer ses services directement sur leur lieu de vie et de travail.

Figure 1 : Histoire de LOGICA

Page 11: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

11

Samuel LEFEVRE

Figure 2 : Implantation de LOGICA dans le monde

LOGICA a développé une culture d’entreprise unique partagée par ses 41 000 collaborateurs dans 41

pays. Un engagement sans faille, une quête d’innovation continue et une ouverture d’esprit sur le

monde constituent les valeurs fondamentales de LOGICA. L’entreprise a pour ambition d’être à la

pointe de son domaine, et encourage ses collaborateurs à développer un esprit d’équipe, un esprit

d’initiative et un goût pour l’effort constants. Toutes ces valeurs se retrouvent dans son slogan : « Be

brillant together ».

Page 12: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

12

Samuel LEFEVRE

Figure 3 : Implantation de LOGICA en Europe

Avec près de 9200 employés répartis entre 23 agences, LOGICA France est la plus grande filiale de

LOGICA en Europe. Le président de LOGICA France est Jean-Marc Lazarri. Ses agences sont

regroupées en pôles de compétences, également appelés Business Unit (BU).

Mon stage s’est déroulé au sein de l’agence de Nice, située à Sophia-Antipolis, qui compte 130

employés. Cette agence forme avec l’agence d’Aix la BU PAC (Provences Alpes Côte d’Azur). Les

clients principaux pour cette Business Unit sont : AMADEUS, AIR FRANCE, ESCOTA, VINCI, RSI,

CMA CGM, BOURBON et PRO BTP.

Principales compétences techniques de la BU PAC :

Java/J2EE, .Net, Open Source

SOA, Web services

Mainframe

C, C++, TPF

BO, Cognos, SAS

Microsoft, SAP, SIEBEL, ORACLE

Page 13: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

13

Samuel LEFEVRE

Principaux services:

Intégration

Design, Analyse & Développement

Validation/Qualification

Test

Consulting

Project Management

Figure 4 : Implantation de LOGICA en France

Page 14: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

14

Samuel LEFEVRE

LOGICA France a réalisé en 2011 un chiffre d’affaires de près de 1,05 milliards d’euros, ce qui la

place en 7ème position des SS2I en terme de chiffre d’affaires en France.

Figure 5 : Principaux clients de LOGICA France

Page 15: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

15

Samuel LEFEVRE

2) La vie au sein de l’agence de Sophia Antipolis

De nombreuses activités sont organisées au sein de l’agence afin d’impliquer au maximum les

collaborateurs et de favoriser les retours d’expérience. Ces activités étant ouvertes aux stagiaires, j’ai

pu participer à la majorité de celles qui ont eu lieu au cours de mon stage.

ShAKE IT :

Retour d’expérience formel organisé sous la forme d’une conférence interne, pendant la pause

déjeuner. J’ai pu assister à un ShAKE IT sur la méthode SCRUM en avril.

Réunion d’agence :

Cet événement regroupe les agences de Sophia Antipolis et d’Aix. Le directeur de la BU

présente les résultats financiers et la marche générale de l’entreprise aux collaborateurs des agences de

cette BU. Cette année, la réunion d’agence a eu lieu le 16 avril à Mougins. Plus de 80 personnes y ont

assisté.

5a7 :

Le 5a7 est une réunion organisée par des collaborateurs désirant partager leur expérience et

leur connaissance sur un domaine particulier. Il se tient généralement une fois par mois, entre 17h et

19h. Ils sont communs aux agences d’Aix et de Sophia Antipolis et peuvent donc se dérouler par

visioconférence. J’ai pu assister aux 5a7 ayant pour thème l’assistance à la maîtrise d’ouvrage

(AMOA) et business intelligence (BI). J’ai également prévu d’organiser un 5a7 en août sur le

traitement du langage naturel.

Petit-déjeuner du CE :

Tous les mois, cet événement réunit les collaborateurs de l’agence autour d’un petit-déjeuner

convivial. Il permet également de profiter des avantages obtenus par le Comité d’Etablissement,

notamment des réductions sur des tickets (cinéma, plongée…)

Afterwork :

Une fois tous les mois, une soirée informelle est organisée pour permettre aux collaborateurs

de se retrouver et de se détendre après les horaires de travail. J’ai pu notamment participer à une soirée

« jeux de société » ainsi qu’à une soirée « blind test ».

Présentation des représentants du personnel

Une réunion officielle a été organisée pour présenter et/ou rappeler quels sont les représentants

du personnel au sein de l’agence, ainsi que leurs fonctions. Cinq entités sont représentées :

-Comité d’établissement

-Comité centrale d’entreprise

-CHSCT

-Délégué du personnel

-Délégué syndical

Page 16: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

16

Samuel LEFEVRE

B) Présentation du client AMADEUS

1) Présentation générale d’AMADEUS

Figure 6 : Logo d'AMADEUS

AMADEUS est le client principal de LOGICA à Sophia. L’entité d’AMADEUS à Sophia s’occupe

majoritairement du développement informatique. C’est pourquoi elle emploi de nombreux consultants

en plus de ceux de LOGICA.

AMADEUS est une société spécialisée dans les systèmes informatisés de réservations aériennes et

plus globalement dans les systèmes informatisés de réservations en lien avec le voyage. Son objectif

est de proposer d’avantages de services de plus en plus innovants.

Fondée en 1987 par quatre compagnies aériennes européennes (Air France, Iberia, Lufthansa et SAS)

AMADEUS à pour but de créer une structure commune de distribution informatisée des segments

aériens puis de regrouper l'ensemble de l'offre de vente de billets d'avion, toutes compagnies

confondues. Ce genre de société, nommé "Global Distribution System" (ou GDS), compte

actuellement quatre compagnies dont AMADEUS, les trois autres étant SABRE, GALILEO et

WORDLSPAN ; ces deux dernières étant désormais regroupées au sein de la même société

TRAVELPORT.

Avec un chiffre d’affaire de 2,65 Milliards d’euros en 2010, AMADEUS compte aujourd’hui plus de

10 000 employés répartit mondialement sur 9 sites centraux : Belgique, Londres, Sophia Antipolis,

Madrid (siège social), Bangkok, Sydney, Miami, Buenos Aires et Bangkok. Les clients principaux

d’Amadeus sont tout les organismes en lien avec les voyages : on retrouve les compagnies aériennes,

les hôtels, les loueurs de voitures, les compagnies ferroviaires, les agences de voyages… pour

atteindre finalement les voyageurs individuels.

Page 17: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

17

Samuel LEFEVRE

Figure 7 : Implantation d'AMADEUS dans le monde

Figure 8 : Connexions entre AMADEUS et l'industrie du voyage

Page 18: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

18

Samuel LEFEVRE

2) La place des collaborateurs de LOGICA chez AMADEUS

AMADEUS est l’un des principaux clients de LOGICA sur le site de Sophia Antipolis. Près de 110

collaborateurs de LOGICA sont répartis sur des missions confiées par AMADEUS, qui consistent

principalement à :

- Rencontrer les spécialistes des clients d’AMADEUS et comprendre leurs besoins.

- Ecrire les spécifications, développer et tester les programmes utilisés pour la réservation.

- Réaliser l’intégration de nouveaux clients (airlines) sous le système d’AMADEUS.

- Réagir rapidement et efficacement face aux bugs et aux problèmes techniques et

fonctionnels.

Figure 9 : Organisation de LOGICA dans le contexte d'AMADEUS

Page 19: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

19

Samuel LEFEVRE

C) Contexte de la mission

1) Ma place au sein de LOGICA

Le jour de mon arrivée à LOGICA, j’ai été accueilli par le directeur de projets Arnaud DAVID, qui

m’a présenté l’entreprise ainsi que le client et le contexte général de ma mission. J’ai ensuite fait la

connaissance des autres stagiaires et des collaborateurs qui travaillent sur le plateau consacré au client

AMADEUS. Le lendemain j’ai participé au premier meeting avec un représentant du client, au sujet

des attentes concernant le stage. En fin de semaine j’ai eu ma première réunion avec mon tuteur

entreprise Adil Zaid, afin de mettre en place les éléments de gestion de projet et d’enchaîner sur la

réalisation d’un état de l’art sur le traitement du langage naturel.

Concernant les conditions du stage, j’ai eu accès aux activités proposées par LOGICA comme les

activités du Comité d’Entreprise, la réunion d’agence, les Afterworks et des retours d’expériences sur

différents sujet comme la méthode SCRUM, l’Assistance à la Maîtrise d’OuvrAge (AMOA) ou la

Business Intelligence de LOGICA PAC.

LOGICA n’hésite pas à impliquer au maximum les stagiaires afin de s’assurer de leur bonne

intégration parmi ses équipes, et préparer une éventuelle embauche en fin de stage. Ainsi le 15 juin

tous les stagiaires de l’agence ont pu réaliser une présentation de leur mission et du déroulement de

leur stage à un public composé de divers responsables de LOGICA, dont le directeur d’agence, les

directeurs de projets, les responsables du recrutement et les tuteurs de stage. Cette réunion a permis

une plus grande transparence du travail mené par les stagiaires et sur les bénéfices que tous pourraient

en tirer. Elle a également amorcé une réflexion sur la poursuite de l’aventure LOGICA après le stage.

Plusieurs réunions avec les responsables chargés de recrutement ont suivi, afin de nous présenter plus

en détail le processus de recrutement de LOGICA et les différentes offres de mission proposées. Des

réunions de préparation en vue d’entretiens d’embauche pour des missions proposées par AMADEUS

ont également été organisées pour les stagiaires travaillant sur les projets pour AMADEUS.

Page 20: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

20

Samuel LEFEVRE

2) Mise en place du projet

Au niveau de l’organisation de l’équipe, elle était faite de la façon suivante : Adil Zaid, mon maître de

stage, a à sa charge deux projets de stage en lien avec le client AMADEUS, représenté par Aziz

Kezzou : un sujet de développement iPad et un sujet sur le traitement du langage naturel.

Le projet de développement iPad est mené par le stagiaire Nicolas Duthoit, de l’Institut Supérieur

d’Electronique et du Numérique (ISEN), avec le soutient de Sébastien Robert pour la partie technique

du côté LOGICA et Alexandre Pastorelly du côté AMADEUS.

Le projet de traitement du langage naturel est mené par Jean-Michel Durand, de l’Ecole Nationale

Supérieure des Mines de Saint-Etienne, et moi-même, avec le soutient de Prashant Balasubramanyan.

Adil joue le rôle d’interface entre les projets et le client. C’est lui qui est chargé d’organiser les

réunions et de vérifier l’avancement. Enfin, notre maître de stage est sous la direction du directeur de

projet Arnaud David.

Figure 10 : Organisation des projets des stagiaires pour AMADEUS

Page 21: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

21

Samuel LEFEVRE

Nous avons mis en place un système de rencontres régulières avec Adil et le client afin de pouvoir

déterminer le besoin dans un premier temps et prendre en compte les retours lors de la partie de

développement. Nous nous rencontrons donc toutes les deux semaines avec Adil afin de préparer les

rencontres avec le client et faire le point sur l’avancée et l’atteinte des objectifs.

Au niveau de l’organisation interne, nous avons eu un espace de partage réseau (SharePoint) entre

stagiaires, ainsi qu’un système de reporting hebdomadaire sur TeamDrive.

Au sein du projet de traitement du langage naturel nous nous sommes inspirés de l’esprit des méthodes

agiles, notamment SCRUM, pour nous organiser en prenant le temps de répartir les tâches et en faisant

un bilan régulier des points bloquants et objectifs atteints.

Nous avons passé les deux premiers mois du stage à réaliser un état de l’art sur le traitement du

langage naturel, ce qui nous a permis de découvrir de nombreux outils et approches du traitement du

texte, de l’indexation et des moteurs de recherche. Puis nous nous sommes penchés pendant un mois et

demi sur l’analyse du besoin et la réalisation du cahier des charges de l’application finale, en

organisant des rencontres avec quatre équipes d’AMADEUS susceptibles d’utiliser l’application :

PRL, ATC, SI et OTF. Une fois le cahier des charges validé par le client nous nous sommes attelés au

développement du prototype pendant le reste du stage.

Page 22: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

22

Samuel LEFEVRE

Partie 2

A) Etat de l’art

1) Introduction au langage naturel

Cela fait quelques années maintenant que l'ordinateur a dépassé le niveau des plus grands

professionnels au jeu d'échecs ; pourtant il atteint à peine le niveau d'un enfant de cinq ans lorsqu'il

s'agit de tenir une conversation naturelle avec un être humain. En 1950 Turing envisageait qu'en 2000

il serait impossible de distinguer une conversation avec un humain et avec un ordinateur ; malgré des

avancées spectaculaires, nous en sommes encore loin. La principale difficulté à l'heure actuelle vient

du traitement du langage naturel.

Le langage naturel ne désigne pas une langue à proprement parler, mais la manière naturelle de

s'exprimer des êtres humains, par opposition au langage binaire et aux langages utilisés en

programmation. C'est le langage des mails, des descriptions, du chat...

Il existe des programmes capables de traduire un texte d'une langue à une autre, de réaliser de la

détection et de la correction des fautes d'orthographe et de grammaire de traduire un discours vocal en

texte, ainsi que d'extraire diverses informations d'un texte. Mais tout cela ne suffit pas pour qu'un

ordinateur puisse tenir une conversation aboutie avec un être humain. Le simple fait de déterminer si

deux mots sont synonymes est plus difficile que de déterminer des intégrales pour un ordinateur.

Page 23: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

23

Samuel LEFEVRE

2) Démarche générale du traitement du langage naturel

Le traitement du langage naturel consiste à analyser un texte pour en saisir la structure ; on peut

l'assimiler au sens strict à l'analyse syntaxique d'un texte.

Les principales étapes du traitement du langage naturel sont :

- Le découpage des mots et des phrases, en se basant notamment sur des séparateurs (espaces, signes

de ponctuation...)

- L'identification du lemma, ou forme canonique du mot (i.e. went -> go, largest -> large).

- L'identification de la nature de chaque mot (déterminant, nom, verbe, adjectif...)

- L'identification des groupes de mots structurels dans une phrase (groupe nominal, groupe verbal,

proposition relative...)

Il existe des outils efficaces réalisant ces différentes tâches, la plupart pour l'anglais, mais aussi

l'allemand, l'espagnol, le danois et le français. Le plus connu dans le monde de l'open source est

OpenNLP.

Par extension, le traitement du langage naturel englobe également l'analyse sémantique d'un texte,

étape nécessaire à la compréhension et donc à la tenue d'une conversation aboutie avec un humain.

C'est également l'étape la plus difficile. L'enjeu réel est de parvenir à associer les mots entre eux par

unité de sens, identifier des règles et des modèles de langage et en déduire des règles à appliquer pour

comprendre le sens derrière les mots : en d'autre termes, mettre en œuvre une grammaire.

Figure 11 : Architecture générale d’une application de traitement du langage naturel

Page 24: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

24

Samuel LEFEVRE

3) Principales méthodes

Plusieurs approches sont possibles pour élaborer une application capable de répondre aux questions

posées en langage naturel par l'utilisateur, voici les trois principales.

Méthode 1 : Question Answering

Figure 12 : Schéma de la méthode1 (Question Answering)

Cette méthode est celle qui se rapproche le plus d'un moteur de recherche conventionnel, comme ceux

utilisés pour effectuer des recherches sur le web. La principale différence vient du traitement du

langage naturel appliqué à l'entrée de l'utilisateur, qui recevra comme réponse une liste de documents

de pertinence décroissante. Cette méthode est donc applicable sur un ensemble de données non

structurées, comme un corpus de documents quelconques, sans format prédéfini. Elle est ainsi la plus

facile à mettre en œuvre, mais ne renverra pas de résultat exact : c'est à l'utilisateur de vérifier si la

réponse qu'il souhaite se trouve dans les documents de la liste proposée en sortie. La recherche peut se

baser sur des mots-clés, raffinée par le traitement du langage naturel. Un programme basé sur cette

méthode mais n'utilisant pas d'analyse sémantique est DocFetcher.

Page 25: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

25

Samuel LEFEVRE

Voici un exemple d'application complet de cette méthode :

Figure 13 : Exemple d'application de la méthode1

Page 26: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

26

Samuel LEFEVRE

Méthode 2 : Interface avec des bases de données

Figure 14 : Schéma de la méthode2 (Interface to Databases)

Comme son nom l'indique, cette méthode est efficace avec des données structurées, mais inutilisable

avec des données non structurées. Elle fait appel à une analyse syntaxique similaire à celle utilisée

pour le Question Answering, mais elle fait intervenir une analyse sémantique beaucoup plus poussée.

En effet elle nécessite l'utilisation d'une grammaire complète, et donc l'identification de patterns

spécifiques et de règles pour relier ces paterns au langage naturel de la question posée par l'utilisateur

et à la structure des données. Cette méthode renverra alors un résultat unique et exact s'il existe. Elle

est toutefois la plus délicate et fastidieuse à mettre en œuvre, puisque la grammaire doit être créée à la

main pour être en parfaite adéquation avec la structure des données. Un programme basé sur cette

méthode est WASP.

Page 27: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

27

Samuel LEFEVRE

Voici un exemple d'application de cette méthode, avec comme question : “What is the largest river which runs through California”.

Les règles appliquées pour traiter cette question sont :

Largest (comparaison de taille)

traverse (synonyme de “run through”, associe un Etat et un fleuve)

state (identifier l’Etat de Californie)

Figure 15 : Exemple d'application de la méthode2

Une requête est formulée à partir de la question et renvoie comme résultat "Colorado".

Page 28: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

28

Samuel LEFEVRE

Méthode 3 : Chatterbox

Figure 16 : Schéma de la méthode3 (Chatterbox)

Cette méthode est celle utilisée pour les agents conversationnels. C'est celle qui permet de se

rapprocher le plus d'une conversation aboutie entre un humain et une machine. Elle est basée sur une

base de questions et de réponses prédéfinies, qui doivent être créées à la main pour s'adapter au

contexte d'utilisation, ce qui pose des problèmes de maintenabilité. Après une analyse syntaxique et

sémantique simple de la phrase entrée par l'utilisateur, l'application décrite par cette méthode vérifiera

les correspondances avec sa base de questions prédéfinies. Si une correspondance est trouvée,

l'application va retourner la réponse correspondante et demander à l'utilisateur si cette réponse est

pertinente. Cela permettra à l'application de mettre à jour sa base de réponse, par exemple en mettant à

jour les poids des termes retenus après traitement de la question de l'utilisateur. Si aucune

correspondance n'est trouvée, l'application va retourner un message invitant l'utilisateur à reformuler

ou à apporter des précisions à sa question.

Page 29: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

29

Samuel LEFEVRE

En conclusion de cet état de l'art préliminaire, il apparaît que la méthode 1 est la plus facile à mettre en

œuvre, les deux autres méthodes demandant des efforts conséquents pour s'adapter à un domaine

particulier, ainsi que pour la maintenabilité. Cependant, la méthode 2 offre des résultats bien plus

intéressants en termes de performances. De nombreux outils sont disponibles pour implémenter ces

méthodes, en particulier parmi les projets Apache. Ces méthodes sont donc susceptibles d'être

améliorées en fonction des outils utilisés, mais le choix de la méthode à adopter dépend des données

cibles, et donc du besoin du client.

Page 30: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

30

Samuel LEFEVRE

B) Elaboration du cahier des charges

1) Etude du besoin

Après nous être familiarisés avec les méthodes existantes, nous nous sommes penchés sur le besoin du

client. Les trois grands types de questions envisagés étaient :

- Trouver une équipe.

- Trouver un document.

- Trouver une information pour un voyageur.

Le troisième cas faisant l'objet d'un projet séparé, nous nous sommes focalisés sur les deux premiers,

qui concernent directement les équipes de notre client. Nous avons donc rencontré quatre équipe

d'Amadeus afin d'avoir une première approche de leur organisation, identifier leurs besoins et analyser

le contexte d'utilisation de l'application finale.

Amadeus utilise de nombreux outils pour gérer et stocker ses données, notamment des SharePoints et

des wikis. Ces outils doivent être pris en compte dans l'élaboration de l'application finale puisqu'elle

devra prendre en compte les documents pertinents où qu'ils se trouvent. Avec l'aide de notre

interlocuteur du côté AMADEUS, Prashant Balasubramanyan, nous avons réalisé le schéma ci-

dessous, qui présente une vue générale de l'environnement dans lequel sera déployée l'application

finale.

Figure 17 : Workflow d'AMADEUS

Page 31: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

31

Samuel LEFEVRE

L'analyse du besoin nous a amené à élaborer une modélisation UML des cas d'utilisations (use cases)

de l'application finale. Chacune des équipes rencontrées dispose de son propre environnement de

travail et de tâches particulières pour lesquelles cette application pourra se révéler utile ; le schéma ci-

dessous synthétise les cas d'utilisation de l'application pour toutes les équipes rencontrées.

Figure 18 : Use case du prototype

Les sources d’information que nous devions cibler s’avéraient très variées : wikis, SharePoints,

documents internes… Il s’agit essentiellement de documents non structurés. C’est pourquoi la

méthode 1 (Question Answering) nous semblait de loin la plus appropriée, étant la seule viable sur des

documents non structurés, mais également parce qu’elle était la plus souple à mettre en place et à

maintenir.

Nous avons déduit de l’étude du besoin six fonctionnalités principales :

Chercher une équipe ou un produit.

Dialoguer avec l’application en langage naturel.

Afficher une interface utilisateur ergonomique sous la forme d’une chatbox.

Remplir des statistiques sur le nombre de questions posées et de réponses pertinentes

retournées.

Générer une réponse en langage naturel.

Administrer l’application en modifiant ses paramètres d’affichage, d’indexation et de

recherche.

Page 32: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

32

Samuel LEFEVRE

2) Solution proposée

Au fil des réunions avec les équipes d'Amadeus, nous avons pris conscience que le traitement des

données cibles était aussi important que le traitement de la question elle-même. Renvoyer une liste de

documents n'est pas satisfaisant pour toutes les équipes, certaines d'entre elles ont besoin d'obtenir une

réponse exacte tirée d'un document. De plus, il est apparu qu'une gestion des feedbacks des utilisateurs

pourrait améliorer la pertinence des recherches. Nous avons donc modifié la modélisation de

l'application finale pour obtenir le schéma ci-dessous :

Figure 19 : Diagramme d'activités du prototype

Page 33: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

33

Samuel LEFEVRE

C) Mise en place de la solution

1) Travail réalisé

Pour mener à bien le développement du prototype, nous nous sommes répartis les tâches à réaliser :

Jean-Michel s’est focalisé sur la partie de traitement du langage naturel tandis que je m’attelais à la

réalisation d’une interface de type « robot-chat ». Le développement a été mené sur nos ordinateurs de

bureau et les présentations sur nos ordinateurs portables personnels. Trois réunions de présentations du

prototype au client ont été planifiées, séparées de trois à quatre semaines, ainsi qu’une présentation

finale le 3 septembre 2012.

La première version du prototype, présentée au client le 11 juillet 2012, consistait en une seule

application regroupant un indexeur et un moteur de recherche basé sur des mots-clés. La séparation de

l’indexeur et de la chatbox est intervenue rapidement après cette réunion, ainsi que l’intégration des

annotations avec GATE.

La seconde version du prototype, présentée le 30 juillet 2012, était composée de deux applications :

l’indexeur et la chatbox. Un guide d’utilisation avec les vues du logiciel étaient également compris

dans le prototype. L’interface de l’indexeur n’avait quasiment pas évolué, mais ses performances

avaient été améliorées. L’interface de la chatbox avait en revanche subi un remaniement important : un

nombre déterminé de questions et de réponses précédentes étaient affichées au-dessus de la question

actuelle, et un nombre déterminé de questions fréquemment posées étaient également affichées en

permanence. La recherche basée sur les annotations et les règles avait été intégrée, ce qui permettait à

l’utilisateur d’obtenir des réponses plus rapides et surtout plus pertinentes. L’application générait une

réponse en langage naturel pour les questions liées à la recherche de points de contact des équipes

d’AMADEUS.

La troisième version du prototype, présentée le 23 août 2012, était toujours composée de l’indexeur et

de la chatbox. Les changements importants concernaient la chatbox : la gestion de l’historique avait

été revue pour permettre à l’utilisateur de pouvoir naviguer depuis la chatbox dans tout l’historique

tout en ne chargeant qu’un nombre limité de questions et de réponses à la fois. L’historique était

stocké dans un fichier accessible dans le dossier Resources sur le serveur. La gestion des questions

populaires a également été revue de façon à les afficher de façon dynamique. Lorsque l’application

renvoie plusieurs résultats à la suite d’une question posée par l’utilisateur, ce dernier peut choisir celle

qui lui convient, ou déclarer qu’aucune d’elle n’est intéressante.

Après cette réunion, d’ultimes modifications ont été apportées au prototype. En plus de modifications

graphiques mineures, il s’agissait de gérer différemment la réponse de la chatbox à une question de

l’utilisateur en fonction du nombre de résultats trouvés : au-delà de trois résultats, la chatbox doit

considérer que la question est trop imprécise et la rejeter. S’il y a trois résultats ou moins, l’utilisateur

peut choisir le meilleur résultat mais peut également déclarer que toutes les réponses sont pertinentes

ou non pertinentes.

Page 34: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

34

Samuel LEFEVRE

2) Technologies utilisées

Notre tâche en tant que développeurs consiste à mettre au point un prototype de l’application finale

présentée dans la partie précédente. Nous nous sommes attelés à la réalisation du cœur même de

l’application, à savoir le traitement de la question de l’utilisateur, l’indexation et la recherche de la

réponse.

Nous avons choisi de développer notre prototype en Java, l’un des langages les plus utilisés dans les

projets que nous avons rencontrés. Nous avons choisi dans un premier temps de monter notre

application sous la forme d’une servlet Java/JEE sous Apache-Tomcat, un conteneur de servlets

simple et léger mais suffisant pour le développement d’un prototype.

N’ayant pas de contrainte sur les outils et les langages à utiliser, nous nous sommes dans un premier

temps penchés sur les différents projets Apache : OpenNLP, Jena, Solr/Lucene, Droids… avant

d’opter pour un outil open source plus complet, réalisé par l’université de Sheffield : GATE (General

Architecture for Text Engineering).

GATE permet d’assembler différents modules de traitement du langage naturel, d’indexation et de

recherche pour créer des applications. GATE offre des fonctionnalités très complètes, mais en

contrepartie se révèle assez complexe à prendre en main. Il dispose d’une API, GATE Embedded, qui

permet son intégration dans d’autres applications.

Nous avons ainsi construit notre prototype à partir des modules ANNIE (A Nearly-New Information

Extraction System) incorporés dans GATE. Ces modules permettent d’analyser des documents et d’en

extraire de l’information en construisant des annotations. Les annotations disponibles par défaut étant

insuffisantes, nous avons dû revoir un système d’annotations adapté à l’environnement d’AMADEUS.

Nous avons également dû écrire les règles adaptées à ces annotations pour pouvoir détecter les termes

à annoter dans les documents à analyser.

Figure 20 : Exemple de texte annoté

Page 35: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

35

Samuel LEFEVRE

Une étape plus poussée dans l’analyse des documents consisterait à utiliser l’ontologie. GATE possède

également des modules adaptés à la création et à l’utilisation de modèles d’ontologie, mais à la

demande du client nous nous sommes concentrés sur l’extraction d’information basée sur les

annotations et les règles avec les modules ANNIE.

Nous avons donc adapté le prototype final de façon à extraire efficacement l’information contenue

dans des fichiers de type CSV, cependant le prototype n’aura qu’une efficacité médiocre pour analyser

d’autres types de documents.

Figure 21 : Pipeline des modules ANNIE

- Le module Document Reset PR permet de supprimer toutes les annotations préexistantes sur le

document à analyser.

- Le Tokenizer permet de séparer le corps du document à analyser en chaînes de caractères

simples (mots, ou tokens), en se basant sur les signes de ponctuation.

- Le Gazetteer permet de comparer d’identifier dans le document à analyser des chaînes de

caractères présentes dans des listes. GATE possède de base un ensemble de listes lui

permettant de reconnaître certaines entités, comme des prénoms, des lieux, des dates… Ces

listes ne sont pas exhaustives et peuvent être complétées manuellement. Il est également

possible de créer de nouvelles listes pour identifier de nouvelles entités.

- Le Sentence Splitter permet de découper le corps du document à analyser en phrases en se

basant sur des délimiteurs.

- Le PoS Tagger permet d’identifier la catégorie lexicale des mots. Les mots inconnus

commençant par une majuscule sont annotés comme des noms propres par défaut.

- Le Transducer permet d’appliquer des règles sur le document annoté pour en déduire de

nouvelles annotations.

Page 36: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

36

Samuel LEFEVRE

3) Interface

Pour réaliser l’interface du prototype, j’ai été amené à m’auto-former à la technologie JEE en suivant

différents tutoriels. Je me suis également inspiré du modèle MVC pour construire une interface simple

tout en tentant de conserver une certaine souplesse dans la programmation. L’interface de la chatbox

est celle qui aura le plus évolué au long du projet.

Figure 22 : Diagramme de classes de la chatbox

La vue est constituée de Java Server Pages (JSP) contenant des formulaires grâce auxquels l’utilisateur

peut interagir avec la chatbox. La page d’accueil est index.jsp. Les informations entrées par

l’utilisateur sont récupérées par une servlet, ServletHandler, qui va les envoyer au contrôleur capable

de les traiter : SearchServlet ou AdminServlet. Le contrôleur va alors mettre à jour les modèles avec

ces informations et afficher la vue correspondante. L’intérêt du ServletHandler est d’assurer une

certaine souplesse du code en facilitant l’intégration de nouvelles fonctionnalités, mais également de

permettre à l’AdminServlet de modifier les paramètres du modèle sans avoir de dépendance avec la

SearchServlet.

Page 37: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

37

Samuel LEFEVRE

Le modèle est composé de trois parties synchronisées par la classe ChatBot : l’historique, les questions

courantes et la conversation elle-même. C’est dans la partie conversation qu’est appelée la fonction qui

effectue la recherche et génère la liste des réponses à la question posée par l’utilisateur. Le modèle

Topic va alors différentier les cas en fonction du nombre de réponses trouvées, ce qui va permettre

d’afficher des messages différents selon les cas.

La possibilité d’envoyer des mails avec l’historique de chatbox avait été demandée par le client, les

briques permettant de tester cette fonctionnalité ont été incluses à part dans l’application en attendant

des tests complets, qui n’ont pu être réalisés faute de temps.

Une servlet dédiée à l’affichage des erreurs a été intégrée à chacune des applications du prototype :

l’indexeur, la chatbox et l’éditeur de règles.

Page 38: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

38

Samuel LEFEVRE

4) Traitement du langage naturel

Le prototype final se présente sous la forme de trois applications déployées sur un serveur et d’un

répertoire de ressources : un indexeur, une chatbox et un éditeur de règles. L’utilisation de l’indexeur

est principalement réservée à un administrateur ; celle de l’éditeur de règles doit permettre aux

différentes équipes de rajouter des informations utilisables par le prototype, alors que la chatbox doit

permettre à l’utilisateur lambda de rechercher des informations dans les documents indexés.

Figure 23 : architecture générale du prototype final

Page 39: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

39

Samuel LEFEVRE

L’indexeur

Il permet à l’administrateur de saisir le chemin du répertoire où se trouvent les documents à indexer,

ainsi que les extensions des documents à indexer. Par défaut, l’indexeur traitera uniquement les

documents CSV contenus dans le répertoire Resources. L’indexation est relancée périodiquement, et

les index créés sont stockés sur le serveur. Un des grands défis de notre projet a consisté à améliorer

les performances de l’indexeur en termes de temps de traitement et de mémoire utilisée. Actuellement,

l’indexeur peut indexer près de 36 000 documents (txt et html) en 90 minutes.

Figure 24 : Schéma du flow de l'indexeur

Page 40: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

40

Samuel LEFEVRE

L’éditeur de règles

Il permet à l’administrateur d’ajouter de nouvelles annotations et de nouvelles règles utilisables par

l’indexeur et la chatbox. Pour cela, il soumet un document CSV à l’application, qui va réaliser des

vérifications afin de créer de nouvelles listes ou de compléter des listes existantes à partir du document

CSV. Les annotations et les règles associées à ces annotations seront générées par l’éditeur de règles,

ainsi que la règle globale prenant en compte toutes ces annotations.

Figure 25 : Diagramme d'activité de l'éditeur de règles

De nombreux points restent à développer sur l’éditeur de règles : en effet, l’administrateur doit encore

réaliser certaines étapes manuellement :

- L’ajout du nom des règles à déclencher dans le fichier Main.jape dans l’ordre dans lesquelles

les règles doivent se déclencher.

- La modification du code source de la chatbox pour y ajouter les classes correspondantes à la

nouvelle règle globale.

- La règle permettant d’identifier le type de question qui doit déclencher la règle globale

ajoutée.

- Le patron de la phrase en langage naturel à retourner pour répondre à la question mentionnée

dans le point précédent.

Page 41: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

41

Samuel LEFEVRE

Le moteur de recherche

La chatbox est l’application qui permet à l’utilisateur de rechercher des informations dans les

documents indexés. L’historique des conversations est enregistré quotidiennement dans un fichier sur

le serveur, et affiché sur l’interface de la chatbox. Sont également affichées les questions les plus

courantes auxquelles l’application a trouvé une réponse. La taille de l’historique et de la liste des

questions les plus courantes peut être paramétrée directement depuis la chatbox.

Figure 26 : Exemple de création d'une requête à partir d'une question

Le point le plus délicat est la génération d’une requête à partir d’une question posée en langage

naturel. La compréhension de la question est basée sur l’extraction d’annotations spécifiques (ici

SearchCompoTeam, Role, Team) qui vont permettre d’identifier le type de réponse attendue

(CompoTeam). L’application va ensuite faire la correspondance entre le type de réponse attendue

(CompoTeam) et les annotations simples qui la composent (Role, FirstName, Surname, Team) afin de

construire la requête à partir des éléments annotés de la question (Role, Team).

Un guide d’installation et d’utilisation est inclus dans le prototype final, ainsi qu’un document

regroupant les différentes vues.

De nombreuses améliorations restent encore à apporter au prototype, non seulement au niveau

graphique pour rendre l’application « user-friendly » mais également au niveau de l’envoi de mail, de

la recherche de la réponse dans les documents et de l’automatisation de l’ajout d’information.

Page 42: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

42

Samuel LEFEVRE

Conclusion

Ce stage a très bien répondu à mes attentes, puisqu’il m’a permis de travailler sur de

nombreuses étapes de l’élaboration d’un produit : état de l’art, étude du besoin, mise en place

du cahier des charges et de sa solution. Le traitement du langage naturel s’est révélé être un

domaine plus complexe que je l’imaginais ; derrière cette problématique se trouve un enjeu de

taille qui passionne la communauté informatique : rendre la machine capable de comprendre

l’homme. Des innovations dans ce domaine paraissent au jour le jour et il est nécessaire de

réaliser un travail de veille et d’adaptation pour rester à la pointe de l’innovation.

La décision de poursuivre ou non ce projet, et le choix de sa forme dépendent entièrement du

client. Le travail réalisé pendant ce stage m’a permis de réaliser à quel point le traitement du

langage naturel et la sémantique pourraient devenir cruciaux dans les années avenir, même si

ses domaines sont encore loin d’être matures. Je suis en tout cas très motivé par ce que j’ai pu

apprendre sur ses domaines, et si j’en ai la possibilité je souhaiterais poursuivre ce projet ou

un projet similaire.

J’ai également été satisfait de mon stage au sein de l’agence de Sophia Antipolis de

LOGICA. Malgré un changement récent dans la direction de la BU, j’y ai trouvé une

ambiance de travail assez stimulante ainsi qu’une profonde volonté de partager l’expérience

acquis par chacun. J’ai également pu apprécier le travail en équipe sur ce projet avec Jean-

Michel Durand. J’ai le sentiment d’avoir consolidé mes compétences techniques, notamment

en Java, et d’en avoir acquis de nouvelles. C’est également toute une démarche que j’ai pu

mettre en pratique et qui a mis à jour ma perception du cycle de vie d’un produit.

Un seul bémol toutefois, en tant que stagiaire je n’ai eu qu’un accès très limité aux données

du client. De plus, mon tuteur de stage se trouvait en mission chez le client, mais

l’organisation mise en place au début du stage a permis de suivre le bon déroulement du stage

à intervalles réguliers.

J’envisage à présent de continuer l’aventure au sein de LOGICA, si possible dans la

continuité du projet mené pendant ce stage. D’autres offres de poste m’ont également été

présentées, et j’ai récemment reçu un retour favorable à un entretien pour le poste d’ingénieur

Product Definition pour le compte du client AMADEUS pour ma première embauche. A plus

long terme, j’envisage de me tenir informé sur les possibilités de missions de traitement du

langage naturel ou de sémantique, tout en suivant de près les opportunités nationales et

internationales que la fusion annoncée entre LOGICA et le groupe CGI pourra apporter.

Page 43: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

43

Samuel LEFEVRE

Bibliographie

Traitement du langage naturel

http://opennlp.apache.org/documentation/1.5.2-incubating/manual/opennlp.html http://www-lipn.univ-

paris13.fr/~audibert/pages/enseignement/TAL_ITCN.pdf

http://www.lsi.upc.edu/~nlp/papers/padro10b.pdf

Analyse sémantique

http://www.loria.fr/projets/JEP-TALN/actes/TALN/posters/Poster04.pdf

http://www.cs.utexas.edu/~ml/papers/parsing-conll-05.pdf

http://www.cs.utexas.edu/users/ml/papers/ge-acl-ijcnlp09.pdf

http://www.cs.utexas.edu/~ml/software/

www.cs.utexas.edu/users/ml/slides/ge-thesis.ppt

http://www.ark.cs.cmu.edu/SEMAFOR/

Question answering

http://sewm.pku.edu.cn/QA/reference/Mining%20the%20Web%20for%20Answers%20to%20Natural

%20Language%20Questions.pdf

Interface aux bases de données

http://users.encs.concordia.ca/~kosseim/Publications/2005dke.pdf

http://www.cs.washington.edu/homes/pedrod/papers/emnlp09.pdf

http://www.google.com/patents/US7702508?printsec=description&dq=7,702,508&ei=hKV1T-

y3AYfNhAesmqCoDQ#v=onepage&q=7%2C702%2C508&f=false

http://l2r.cs.uiuc.edu/~danr/Papers/CGCR10.pdf

http://www.inf.unibz.it/~franconi/papers/dl-04.pdf

http://scienceculture.academia.edu/SeyedHashemDavarpanah/Papers/246333/Using_Natural_Languag

e_Processing_in_Order_to_Create_SQL_Queries

http://acl.ldc.upenn.edu/N/N04/N04-3006.pdf

Outils

http://gate.ac.uk/

http://nlp.lsi.upc.edu/freeling/doc/userman/userman.pdf

http://www.w3.org/2004/OWL/

http://www.swi-prolog.org/index.txt

http://www.delph-in.net/index.php?page=3

http://docfetcher.sourceforge.net/fr/index.html

Page 44: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

44

Samuel LEFEVRE

Annexes

Annexe 1 : Index des figures

Figure 1 : Histoire de LOGICA ................................................................................................................ 10

Figure 2 : Implantation de LOGICA dans le monde ............................................................................. 11

Figure 3 : Implantation de LOGICA en Europe .................................................................................... 12

Figure 4 : Implantation de LOGICA en France ..................................................................................... 13

Figure 5 : Principaux clients de LOGICA France ..................................................................................... 14

Figure 6 : Logo d'AMADEUS ............................................................................................................... 16

Figure 7 : Implantation d'AMADEUS dans le monde ........................................................................... 17

Figure 8 : Connexions entre AMADEUS et l'industrie du voyage........................................................ 17

Figure 9 : Organisation de LOGICA dans le contexte d'AMADEUS ................................................... 18

Figure 10 : Organisation des projets des stagiaires pour AMADEUS .................................................. 20

Figure 11 : Architecture générale d’une application de traitement du langage naturel ......................... 23

Figure 12 : Schéma de la méthode1 (Question Answering) .................................................................. 24

Figure 13 : Exemple d'application de la méthode1 ............................................................................... 25

Figure 14 : Schéma de la méthode2 (Interface to Databases) ............................................................... 26

Figure 15 : Exemple d'application de la méthode2 ............................................................................... 27

Figure 16 : Schéma de la méthode3 (Chatterbox) ................................................................................. 28

Figure 17 : Workflow d'AMADEUS ..................................................................................................... 30

Figure 18 : Use case du prototype ......................................................................................................... 31

Figure 19 : Diagramme d'activités du prototype ................................................................................... 32

Figure 20 : Exemple de texte annoté ..................................................................................................... 34

Figure 21 : Pipeline des modules ANNIE ............................................................................................. 35

Figure 22 : Diagramme de classes de la chatbox................................................................................... 36

Figure 23 : architecture générale du prototype final.............................................................................. 38

Page 45: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

45

Samuel LEFEVRE

Figure 24 : Schéma du flow de l'indexeur ............................................................................................. 39

Figure 25 : Diagramme d'activité de l'éditeur de règles ........................................................................ 40

Figure 26 : Exemple de création d'une requête à partir d'une question ................................................ 41

Page 46: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

46

Samuel LEFEVRE

Annexe 2 : Vues du prototype

Indexer prototype:

Home:

The Administration button redirects the user to the following page:

After entering the different parameters to administrate the index or choosing the basic indexation,

the user is redirected to the final page:

Page 47: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

47

Samuel LEFEVRE

Searcher Prototype:

Home:

Clicking on the Start button initializes the application, which will open the datastore where the

indexed are created. If the initialization passes, the user will be redirected to the chat page. If there is

no available historic, the displayed page will be similar to this page:

Page 48: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

48

Samuel LEFEVRE

If there is an available historic, the displayed page will be similar to that page:

Page 49: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

49

Samuel LEFEVRE

On this page the user can ask his questions to the searcher, which will display the answers. If there

are several answers to the user’s question, the user will be asked to precise whether one of them is

the one he/she expected.

Page 50: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

50

Samuel LEFEVRE

The searcher will display the answer if there is only one answer, or a message if there are no

answers.

Page 51: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

51

Samuel LEFEVRE

An administration page allows admin users to change some parameters impacting the way the

chatbot is displayed and the research is processed. The following page is an incomplete view of the

administration page, since the complete list of parameters to edit has not been decided yet.

The “Back” button redirects the user to the conversation page whereas the “Apply” button sets up

the parameters with the given values and redirects the user to the Home page.

Page 52: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

52

Samuel LEFEVRE

CSV Manager Prototype:

Home:

The user has to enter the path (relative or absolute) in the field to submit a CSV document.

Then for each title of the CSV, the user will have to select the corresponding annotation within the

list of annotations stored in the annotations description file.

Page 53: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

53

Samuel LEFEVRE

If the title being processed appears in the annotation list, the following page will be displayed :

Page 54: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

54

Samuel LEFEVRE

Else, the page displayed will be that one:

When all the titles of the current CSV document have been processed, the user will be redirected to

the home page, with the possibility to submit a new CSV document.

Page 55: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

55

Samuel LEFEVRE

Annexe 3 : Guide d’utilisation du prototype

Contents of the package:

- indexProto4.war

- searchProto4.war

- csvProto4.war

- Resources folder

- javadoc folder

- userguide.pdf

- apache-tomcat-7.0.28.exe

Prerequisites:

- You must have a functional version of the Apache-Tomcat server installed on your computer

(version 5.5 or higher ; compatibility has not been tested on prior versions).

Installation guide:

Ensure that you have a functional version of Tomcat installed, and that the following line is present in

the conf/tomcat-users.xml file:

<user name="*" password="*" roles="admin-gui,manager-gui" />

where * symbolizes any string.

Page 56: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

56

Samuel LEFEVRE

If you don’t have a functional version of Tomcat installed you can use the installer provided within

this package. The full installation is encouraged. If the line mentioned above is not present in your

conf/tomcat-users.xml file, you can paste the line and replace the * by your login and your password.

Copy indexProt.war, searchProt.war, csvProto4.war and the Resources folder in the webapps

repository of Tomcat.

How to use the prototype:

1) Start the Tomcat server.

2) Start your web browser and enter the Tomcat connector port number in the URL field (by

default : localhost:8080).

3) Go to the Manager Service of Tomcat (“Manager App” for Tomcat v7, “Tomcat Manager” for

prior versions) and log in to see the list of the applications.

4) If you have already created an index and you don’t want to update it, you can move to 5).

Else, launch the indexProto4 application. Here you can choose between an indexation with

default parameters or administrate the parameters of the indexation.

If you choose to administrate the index, you will have to enter the path of the

repository where the files you want to index are located. You will also be asked to select the

extensions of the files you want to consider. If you don’t enter a path, no document will be

indexed. If you don’t select any extensions, the application will consider only .csv documents.

If you choose to launch the defaults indexation, the application will index the .csv

documents which are located in the Resources/AmadeusResources folder.

5) Launch the searchProto4 application and click to the start button.

6) The robot will display a list of the most popular questions which have an answer.

It may also display the historic of the day: the previous questions and the final answer to

these questions. When the number of topics in the historic exceeds the number of topics

displayable in the historic box, you will be able to move through the different pages of the

historic by clicking on the “Previous topics” button at the top of the historic box or the “Next

topics” button at the bottom of the historic box.

You converse with the robot by entering your questions in the corresponding field.

If there are several answers to your question, the robot will display them and ask you

to indicate which one you expected. Once you entered the number of the answer you

expected, this answer will be added to the historic. If none of the answers displayed

Page 57: Travail de Fin d’Etudesdoc.centrale-marseille.fr/TFE/2012/TFE_lefevre_2012.pdf · Ce rapport décrit le déroulement de mon stage de fin d’études au sein de l’entreprise LOGICA

57

Samuel LEFEVRE

corresponds to your expectation, you can enter “0”; then the robot will return that there are

no relevant answers to your question.

If there are only one or no answers, the robot will automatically add the result to the

historic and display it.

Once the topic has come to a conclusion (0 or 1 answer to your question) you can start a new

topic.

7) Stop Tomcat when you’re done.

N.B. Despite all the work done to prevent them, errors might occur. A different page may provide

information concerning these errors. The stack trace of these errors is hidden for users, but appears

in the source code of the page.

Next improvements:

- Improve annotations so that the application can accurately answer more questions.

- Improve synchronization between the indexer and the searcher to manage concurrence.

- Improve the administrations of rules.

- Implement the administration interface for the chatbox.

- Update the documentation according to the improvements listed above.