MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other...

51
RÉPUBLIQUE DU BÉNIN MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITÉ D’ABOMEY-CALAVI INSTITUT DE FORMATION ET DE RECHERCHE EN INFORMATIQUE BP 526 Cotonou Tel : +229 21 14 19 88 http://www.ifri-uac.net Courriel : [email protected] MÉMOIRE pour l’obtention du Diplôme de Licence en Informatique Option : Génie Logiciel Présenté par : Luc Germann Koba ATAKPA Mise en Oeuvre d’un Système de Traduction du Couple de Langue Français-Fongbé Sous la supervision : John O.R. AOGA Ingénieur de Conception en Réseau informatique et Internet Dr Ing. Vinasétan Ratheil HOUNDJI Année Académique : 2017-2018

Transcript of MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other...

Page 1: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

RÉPUBLIQUE DU BÉNINMINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR

ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITÉ D’ABOMEY-CALAVI

INSTITUT DE FORMATION ET DERECHERCHE EN INFORMATIQUE

BP 526 Cotonou Tel : +229 21 14 19 88http://www.ifri-uac.net Courriel : [email protected]

MÉMOIREpour l’obtention du

Diplôme de Licence en Informatique

Option : Génie Logiciel

Présenté par :Luc Germann Koba ATAKPA

Mise en Oeuvre d’un Système deTraduction du Couple de Langue

Français-Fongbé

Sous la supervision :John O.R. AOGA

Ingénieur de Conception en Réseau informatique et Internet

Dr Ing. Vinasétan Ratheil HOUNDJI

Année Académique : 2017-2018

Page 2: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Table des matières

Sigles et Abréviations iv

Glossaire vi

Dédicace viii

Remerciements ix

Résumé/Abstract x

Introduction Générale 11.1 Contexte et justification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Organisation du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Revue de littérature 42.1 À propos des technologies des systèmes de traduction . . . . . . . . . . . . . . . . . . . 4

2.1.1 Généralités sur le Deep Learning et le TALN . . . . . . . . . . . . . . . . . . . . 42.1.2 Les systèmes de traduction speech-to-speech. . . . . . . . . . . . . . . . . . . . . 7

2.2 Présentation et critique des solutions existantes . . . . . . . . . . . . . . . . . . . . . . . 82.2.1 Présentation de quelques solutions existantes . . . . . . . . . . . . . . . . . . . . 82.2.2 Critique des solutions existantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Matériel et Méthode pour la mise oeuvre du système de traduction 113.1 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.1 Architecture du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.2 Entités du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.3 Modules du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.2 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.3 Diagramme de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3 Choix techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3.1 Choix des langages et bibliothèques utilisés . . . . . . . . . . . . . . . . . . . . . 183.3.2 Outils de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Résultats et discussions 22

i

Page 3: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

TABLE DES MATIÈRES TABLE DES MATIÈRES

4.1 Construction du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Statistiques et évaluation de modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2.1 Quelques statistiques sur les données . . . . . . . . . . . . . . . . . . . . . . . . 234.2.2 Evaluation du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Présentation de quelques interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3.1 Plateforme Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3.2 Application mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Conclusion générale et perspectives 30

Bibliographie 31

Webographie 32

Annexe 354.5 Quelques captures d’écrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.5.1 Morceau de code du script de Web scraping . . . . . . . . . . . . . . . . . . . . 354.5.2 Extrait du corpus de textes parallèles utilisé . . . . . . . . . . . . . . . . . . . . . 364.5.3 Le modèle de Deep Learning utilisé . . . . . . . . . . . . . . . . . . . . . . . . . 364.5.4 Les embeddings utilisés pour le modèle . . . . . . . . . . . . . . . . . . . . . . . 384.5.5 La fonction de perte sur huit (08) époques d’entrainements . . . . . . . . . . . . 38

ii

Page 4: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Table des figures

2.1 Exemple de réseau artificiel de neurones à propagation avant (feedforward) . . . . . . 6

3.1 Architecture du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Modèle encodeur-décodeur avec mécanisme d’attention . . . . . . . . . . . . . . . . . 153.3 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5 Diagramme de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1 Page d’accueil de l’application Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2 Page de documentation de l’Applicaton Programming Interface (API) . . . . . . . . . 264.3 Interface d’accueil de l’application mobile . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4 Interfaces de gestion d’historique, de favoris et de paramètres de l’application mobile 294.5 morceau du code de web scraping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6 Extrait du corpus de texte parallèle constitué . . . . . . . . . . . . . . . . . . . . . . . . 364.7 image du model générée de tensorboard. . . . . . . . . . . . . . . . . . . . . . . . . . . 374.8 Vue 2D des Embeddings de certains mots utilisés par le modèle . . . . . . . . . . . . . 384.9 fonction de perte du modèle sur huit (08) époques . . . . . . . . . . . . . . . . . . . . . 38

Liste des tableaux

4.1 Quelques statistiques sur les données utilisées par le modèle . . . . . . . . . . . . . . . 234.2 Quelques hyperparamètres du modèle de Deep Learning . . . . . . . . . . . . . . . . . 244.3 Scores BLEU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

iii

Page 5: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Sigles et Abréviations

API : Applicaton Programming Interface iii, vii, 3, 9, 11–13, 16, 17, 25–27

ASR : Automatic Speech Recognition vii, 7

CSS : Cascading Style Sheets vii, 19

DOM : Document Object Model vii, 19

HTML : HyperText Markup Language vii, 18, 19

IP : Internet Protocol vii, 25

JSON : JavaScript Object Notation vii, 17, 18

MT : Machine Translation vii, 7, 13

NMT : Neural Machine Translation vii, 14

RBMT : Rule-Based Machine Translation vii, 13, 14RNN : Recurrent Neural Network vii, 14, 15

SMT : Statistical Machine Translation vii, 14

TAL : Traitement Automatique du Langage vii, 6TALN : Traitement Automatique du Langage Naturel vii, 1, 4, 6, Glossaire :

TALNTTS : Text To Speech vii, 7

UML : Unified Language Modeling vii, 16URL : Uniform Resource Locator vii, 23, 25

iv

Page 6: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Sigles et Abréviations Sigles et Abréviations

XML : Extensible Markup Language vii, 19, 21

v

Page 7: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Glossaire

Android :

Android est un système d’exploitation mobile et open-source fondé sur le noyau Linux. Il estdéveloppé actuellement par Google et équipe la majorité des smart phones et tablettes du mar-ché. vii, 2, 11, 12, 19–21, 27

BLEU :

BLEU (Bilingual Evaluation Understudy) est un algorithme d’évaluation de la qualité d’untexte traduit automatiquement d’un langage naturel à un autre. Le score calculé à partir de cetalgorithme sert à évaluer la qualité d’une traduction. iii, vii, x, xi, 24, 25

CSS3 :

C’est la dernière révision majeure du CSS. vii, 18, 19

Data cleaning :

Le nettoyage de données est l’opération de détection et de correction (ou suppression) d’erreursprésentes sur des données stockées dans des bases de données ou dans des fichiers. vii, 23

HTML5 :

C’est la dernière révision majeure du HTML. vii, 18

Lemmatisation :

Elle consiste généralement à utiliser un vocabulaire et une analyse morphologique des mots,dans le but de supprimer les formes flexionnelles et de renvoyer la forme de base ou de dic-tionnaire d’un mot. Cette forme de base est le lemme. vii, 6

Racinisation :

Elle fait généralement référence à des heuristiques de transformation des flexions des motsen leur radical ou racine dans l’espoir d’avoir une forme de base commune pour les formesflexionnelles d’un mot. vii, 6

TALN :

Le Traitement Automatique du Langage Naturel, NLP en anglais (Natural Language Proces-sing) est une discipline s’appliquant au domaine de l’informatique et du langage. i, iv, vii, 1, 4,6

vi

Page 8: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Glossaire Glossaire

Tokenisation :

C’est le procédé permettant de segmenter un texte en morceaux appelés jetons et peut-être enmême temps se passer de certains caractères, tels que la ponctuation. Ces jetons sont souventnommés termes ou mots. vii, 6

Web scraping :

Le web scraping (parfois appelé harvesting) est une technique d’extraction du contenu de sitesWeb, via un script ou un programme, dans le but de le transformer pour permettre son utilisa-tion dans un autre contexte. ii, vii, 22, 35

vii

Page 9: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Dédicace

À

Ma famille.

Tous ceux qui d’une manière ou d’une autre ont contribué à l’élaboration du présent travail.

viii

Page 10: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Remerciements

Nos sincères remerciements à :

• L’IFRI et son directeur Mr Eugène EZIN, le directeur adjoint Mr Gaston EDAH et tous les en-seignants qui ont fortement contribué à ma formation.

• Monsieur John AOGA, notre maître de mémoire pour avoir accepté superviser ce travail jus-qu’à son terme.

• Monsieur Ratheil HOUNDJI, notre maître de stage, pour ses conseils et son apport au travailfinal.

• Tous mes amis et camarades de promotion.

ix

Page 11: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

RésuméDans la course au numérique, les nations se ruent dans la production de contenu. Les langues afri-

caines notamment celles du Bénin se retrouvent très en arrière face à cette course. Or la productionde ces ressources constitue la voix d’or du développement desdites langues. Pour pallier cela, l’unedes solutions est de disposer d’outils capables de traduire les ressources existantes des autres languesdans nos langues locales. Cette tâche n’est pas de tout repos car capturer la sémantique de plusieurslangues en parallèle revêt une difficulté particulière. C’est dans ce contexte que s’inscrit notre travail.Notre objectif est de réaliser un système de traduction pour le couple de langues Français-Fongbé.Pour ce faire nous avons dans un premier temps étudié l’existant. A partir de cette étude, nous avonsidentifié le Deep Learning comme étant une approche prometteuse pour la réalisation de ce système.Nous avons ensuite constitué un corpus parallèle Français-Fongbé. Ce corpus a servi de base de don-nées d’apprentissage à notre système. Nous avons enfin, testé les performances du système à l’aidedu score BLEU, une mesure très utilisée en traitement de langue pour juger de la pertinence desrésultats obtenus. Pour permettre la vulgarisation de notre système nous l’avons incorporé au seind’une application mobile et d’une plateforme Web accessibles à tous. De futurs travaux se penche-ront sur l’extension à d’autres langues locales et pourraient s’inspirer de la méthodologie développéeici. Une approche de traduction de voix à voix est aussi envisageable.

Mots clés : Langue, système de traduction, Deep Learning, corpus parallèle, Français-Fongbé, scoreBLEU, voix à voix.

x

Page 12: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

AbstractIn the race for digital, nations are rushing into the production of content. African languages,

especially those in Benin, are very much behind this race. However, the production of these resourcesis the golden road in the development of these languages. To overcome this, one of the solutions is tohave tools that can translate existing resources of other languages into our local languages. This taskis not easy because capturing the semantics of several languages in parallel is a particular difficulty. Itis in this context that our work fits. Our goal is to realize a translation system for the French-Fongbé thelanguage pair. To do this we first studied the existing. From this study, we identified the Deep Learningas a promising approach to the realization of this system. We then formed a parallel French-Fongbécorpus. This corpus served as a learning database for our system. Finally, we tested the performanceof the system using the BLEU score, a measure widely used in language processing to judge therelevance of the results obtained. To allow the popularization of our system we incorporated it intoa mobile application and a Web platform accessible to all. Future work will look at the extension toother local languages and could be inspired by the methodology developed here. A speech-to-speechapproach is also possible.

Key words: Language, translation system, Deep Learning, parallel corpus, French-Fongbé, BLEUscore, speech-to-speech .

Page 13: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Introduction Générale

1.1 Contexte et justification

Le monde a été marqué ces dernières années par la mondialisation qui correspond à la libre circula-tion des marchandises, des capitaux, des services, des personnes, des techniques mais aussi et surtoutde l’information. Cette mondialisation a fait du globe un village planétaire oú la communication etle partage de l’information entre les différents peuples ont considérablement été simplifiés à l’échellemondiale.

Au cours de nos activés quotidiennes, nous sommes donc en général amenés à interagir avecdes gens. Que ce soit pour dialoguer, partager du contenu textuel ou toute autre raison, nous avonsbesoin d’un langage pour communiquer. Accentué par la folle expansion du numérique et la forteproduction de contenu qu’elle engendre, le langage, qu’il soit écrit, parlé ou sous toute autre formeoccupe ainsi une place de choix dans les échanges inter-peuples à l’échelle mondiale. Ceci étant, il estde plus en plus inconcevable de rester en marge de cette course au numérique et d’avoir des barrièreslinguistiques susceptibles d’entraver la communication et les échanges de contenu entre les Hommes.

Au fil des années, plusieurs travaux ont été menés dans ce sens afin de faciliter les échanges enfaisant abstraction des barrières linguistiques et fluidifier la circulation de l’information. C’est le casdes travaux en informatique, science du traitement rationnel et automatisé de l’information, qui ap-pliquée à la linguistique permet la réalisation de tâches telles que la reconnaissance automatique deparole, la traduction de texte, la synthèse vocale et bien d’autres encore.Par ailleurs, les multiples progrès enregistrés dans le domaine de l’informatique ces dernières annéesont été d’un apport considérable aux travaux sur les langages naturels.Tout ceci ouvre ainsi le chemin à divers systèmes et applications de plus en plus robustes dans ledomaine du Traitement Automatique du Langage Naturel (TALN).

1.2 Problématique

Le langage est une fonction d’expression de la pensée et de communication entre les humains, miseen œuvre par la parole ou par l’écriture [9]. C’est donc un facteur clé nous permettant de communi-

1

Page 14: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

quer entre nous et de partager de l’information. Dans un contexte dans lequel tout est numérisé etoú les nations s’efforcent à produire du contenu en masse, les langues africaines se retrouvent assezdéfavorisées et peinent à se faire de la place dans cette course au numérique. Ceci est essentiellementdû à la quasi inexistence d’outil susceptible d’aider à inverser la tendance afin d’aider à progressive-ment hisser nos langues locales à un certain niveau pour les échanges et le partage de contenu. Aussi,une langue qui se veut valorisée doit permettre une certaine facilité d’interaction avec d’autres, no-tamment sur le volet traduction qui représente l’une des tâches linguistiques les plus importantes.Il s’avère donc nécessaire, comme on peut le remarquer dans divers pays, de suivre cette mode lin-guistique qui consiste à faciliter les échanges et la production de contenu entre les langues locales etcelles étrangères. C’est dans cette optique que s’inscrit notre travail qui vise essentiellement à con-cevoir un système de traduction Français-Fongbé.

1.3 Objectifs

Notre projet a pour objectif de faciliter les opérations de traduction entre le Français et le Fongbé parle biais d’un outil informatique.Le système permettra de traduire du texte écrit en Français en texte écrit en Fongbé et vice versa.Ceci pourrait permettre à quiconque voulant apprendre, traduire du contenu ou juste dialoguer depouvoir le faire aisément entre le Français et le Fongbé.Le produit final comprend:

• Une application Web: Elle permet un accès au système de traduction depuis un navigateurWeb. Elle donne à l’utilisateur le choix entre traduire du texte du Français vers le Fongbé etvice versa. L’utilisateur peut également faire de la synthèse vocale de texte écrit en Français etdonner son avis sur les traductions effectuées.

• Une application mobile sous Android: Ce sera un moyen plus simple pour les utilisateurs sursmartphone Android d’accéder au système sans passer par un navigateur. L’application permetà l’utilisateur de faire de la reconnaissance de parole et de la synthèse vocale en Français ainsique de la traduction de texte entre le Français et le Fongbé.Quelques autres fonctionnalités y sont également disponibles notamment l’accès à l’historiquedes traductions effectuées ainsi qu’à une liste de favoris et un menu de paramètre.

1.4 Contribution

Ce présent travail vise à fournir un outil simple pour faciliter les opérations de traduction entrele Français, langue véhiculaire officielle et de travail du Bénin, et le Fongbé, langue vernaculaireet véhiculaire la plus parlée du pays [13]. Pour ce faire nous avons constitué un corpus de textesparallèles entre le Français et le Fongbé afin de mener à bien la conception du système.En nous basant sur ce corpus, nous avons ensuite créé un modèle de traduction de texte avec duDeep Learning.

Page 15: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Afin de rendre celui-ci disponible pour l’usage nous avons créé une interface qui permet d’interagiravec notre modèle. Il s’agit d’une API mise en place pour une application Web et une applicationmobile afin d’interagir avec notre modèle. Nous avons donc contribué à mettre en place une basequi pourrait être élargie à d’autres langues pour la conception de système de ce type et par ricochetvulgariser nos langues locales.

1.5 Organisation du travail

Le présent travail s’articule autour de trois chapitres.Le premier présente une revue de littérature sur les différentes technologies qui entrent en jeu pourla conception de système traduction ainsi que les solutions existantes.Ensuite nous abordons l’analyse, la modélisation ainsi que les choix techniques opérés lors de laconception du système.Enfin nous présentons les résultats issus de nos simulations ainsi qu’une analyse critique de cesderniers.

Page 16: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2Revue de littérature

Pour la bonne mise en oeuvre d’un projet, une revue de littérature permettant de faire un point sur lesujet du projet est requis. Ainsi, ce chapitre présente un état des lieux des systèmes de traduction in-formatique en général. Ceci étant, cette revue de littérature n’est pas exploratoire et n’est donc qu’unrécapitulatif sur la thématique abordée.Dans un premier temps nous parlerons des généralités sur les technologies et méthodes utilisées dansles systèmes de traduction en informatique, puis nous finirons critiques à l’appui par une présenta-tion des solutions existantes dans ce domaine.

2.1 À propos des technologies des systèmes de traduction

Les systèmes de traduction de langues ont au fil du temps connu des progrès considérables. Ceux-ciont été encore plus remarquables ces dernières années, ce qui est essentiellement dû aux avancéestechnologiques en intelligence artificielle. Voici donc une brève présentation de ces technologies etméthodes qui représentent l’état de l’art des systèmes de traduction actuels.

2.1.1 Généralités sur le Deep Learning et le TALN

2.1.1.1 Le Deep Learning

Le Deep Learning ou apprentissage profond est un type d’intelligence artificielle dérivé du machinelearning (apprentissage automatique) où la machine est capable d’apprendre par elle-même, contrai-rement à la programmation classique où elle se contente d’exécuter à la lettre des règles prédétermi-nées [14].D’après l’encyclopédie libre WIKIPEDIA, C’est un ensemble de méthodes d’apprentissage automa-tique tentant de modéliser avec un haut niveau d’abstraction des données grâce à des architecturesarticulées de différentes transformations non linéaires. Ces techniques ont permis des progrès impor-tants et rapides dans les domaines de l’analyse du signal sonore ou visuel notamment de la recon-naissance faciale, de la reconnaissance vocale, de la vision par ordinateur, du traitement automatiquedu langage naturel (TALN) [15].Les modèles de Deep Learning utilisent des architectures de réseaux de neurones qui s’inspirent ducerveau humain, ce qui explique pourquoi il est souvent question de réseaux de neurones profondspour désigner des modèles de Deep Learning.

4

Page 17: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.1. À propos des technologies des systèmes de traduction

Le terme « profond » se rapporte généralement au nombre élevé de couches cachées du réseau deneurones.L’entraînement des modèles s’effectue à l’aide de vastes ensembles de données et d’architectures deréseaux de neurones qui apprennent des caractéristiques depuis ces données [16].

Il existe plusieurs types d’apprentissage en Deep Learning dont :

• l’apprentissage supervisé : Il consiste à associer des étiquettes aux données dans le but que celase fasse ensuite automatiquement grâce aux algorithmes mis en place. On fait donc apprendreun modèle décisionnel grâce aux étiquettes préalablement associées aux données [29].

• l’apprentissage non supervisé : En apprentissage non supervisé, un modèle d’apprentissageprofond reçoit un jeu de données sans instructions explicites sur ce qu’il faut faire avec. L’en-semble des données d’apprentissage est un ensemble d’exemples sans résultat souhaité spéci-fique ni réponse correcte. Le réseau de neurones tente ensuite de trouver automatiquement unestructure dans les données en extrayant des caractéristiques utiles et en analysant sa structure.En fonction du problème rencontré, le modèle d’apprentissage non supervisé peut organiserles données de différentes manières [30].

• l’apprentissage semi-supervisé : C’est une classe de techniques d’apprentissage automatiquequi utilise un ensemble de données étiquetées et non-étiquetées. Il se situe ainsi entre l’appren-tissage supervisé qui n’utilise que des données étiquetées et l’apprentissage non-supervisé quin’utilise que des données non-étiquetées [31].

• l’apprentissage par renforcement : Il fait apprendre à un agent à atteindre un objectif dansun environnement incertain et potentiellement complexe. L’algorithme utilise des essais et deserreurs pour trouver une solution au problème et reçoit des récompenses ou des pénalités pourles actions qu’il effectue. Son objectif étant de maximiser la récompense totale [32].

• l’apprentissage par transfert : C’est l’un des champs de recherche de l’apprentissage automa-tique qui vise à transférer des connaissances d’une ou plusieurs tâches sources vers une ouplusieurs tâches cibles [33].

Il existe plusieurs architectures de modèles de Deep Learning parmi lesquelles on peut citer lesréseaux de neurones à propagation avant, les réseaux de neurones à convolution et les réseaux deneurones récurrents.

5

Page 18: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.1. À propos des technologies des systèmes de traduction

Source :https://researchgate.net/publication/308414212_Speeding_up_Deep_Learning_Computational_Aspects_of_Machine_Learning

FIGURE 2.1 – Exemple de réseau artificiel de neurones à propagation avant (feedforward)

2.1.1.2 Le traitement automatique du langage naturel (TALN)

Le traitement automatique du langage naturel, abrégé en TALN ou encore TAL (Traitement Automa-tique du Langage) est une discipline s’appliquant au domaine de l’informatique et du langage.C’est une branche de l’intelligence artificielle qui vise à permettre aux ordinateurs de comprendre,interpréter et manipuler les langages humains afin de les rapprocher de la compréhension humainedu langage et ainsi combler le fossé entre la communication humaine et la compréhension de l’ordi-nateur [34].Il vise à créer des outils de traitement de la langue naturelle pour diverses applications comme parexemple la traduction de texte, la reconnaissance automatique de parole, la synthèse vocale ou en-core les réponses automatiques aux questions et systèmes de dialogue.

Le TALN comprend de nombreuses techniques différentes d’interprétation du langage humain.Celles-ci vont des méthodes statistiques et d’apprentissage automatique aux approches basées surdes règles et des algorithmes.Au nombre des tâches de base du TALN on peut citer la Tokenisation et l’analyse syntaxique, la Lem-matisation ou la Racinisation, l’étiquetage morpho-syntaxique (part-of-speech tagging en anglais), ladétection de la langue et l’identification des relations sémantiques [36, 35].Ces tâches sous-adjacentes sont souvent utilisées dans des tâches de niveau supérieur du TALN,telles que :

• Classification de documents : Assignation d’une ou plusieurs classes à un document en fonc-tion de son contenu.

• Reconnaissance de parole et synthèse vocale : Transformation de commandes vocales en texteécrit et vice-versa.

• Résumé automatique de documents : Génération automatique de résumé pour de grandscorps de texte.

• Traduction automatique : Traduction automatique de texte ou de discours d’une langue à uneautre.

• Agent conversationnel : Agent de dialogue avec des utilisateurs.

6

Page 19: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.1. À propos des technologies des systèmes de traduction

Dans la plupart de ces cas, l’objectif primordial est de prendre les données brutes du langage etd’utiliser la linguistique et des algorithmes pour transformer ou enrichir le texte de manière à luiconférer une plus grande valeur.

2.1.2 Les systèmes de traduction speech-to-speech.

La traduction speech-to-speech est le processus par lequel les phrases parlées sont instantanémenttraduites et parlées à voix haute dans une autre langue. Cela diffère de la traduction de phrase, danslaquelle le système ne traduit qu’un ensemble fixe et fini de phrases entrées manuellement dans lesystème. Dans le monde de la traduction machine, deux approches sont généralement utilisées pourla mise en place de systèmes de traduction speech-to-speech [2].

2.1.2.1 Première approche

Une approche consiste à réaliser une traduction speech-to-speech en segmentant le processus en troisgrandes étapes [8].

Première étape : Elle consiste à faire une reconnaissance automatique de parole à partir d’une en-trée vocale de l’utilisateur.La reconnaissance automatique de la parole, Automatic Speech Recognition (ASR) en anglais, sou-vent improprement appelée reconnaissance vocale est une technique informatique qui permet d’ana-lyser la voix humaine captée au moyen d’un microphone pour la transcrire sous la forme d’un texteexploitable par une machine [17].À ce niveau on obtient donc du texte à partir des paroles de l’utilisateur.

Deuxième étape : Elle consiste à faire une traduction automatique, Machine Translation (MT) enanglais, sur la base du texte précédemment obtenu lors de la phase de reconnaissance de parole.La traduction automatique désigne la traduction d’un texte entièrement réalisée par un ou plusieursprogrammes informatiques sans qu’un traducteur humain n’ait à intervenir [18].À ce niveau on obtient du texte dans la langue de destination, celle dans laquelle le système est censétraduire depuis la langue source.

Troisième étape : Elle consiste à faire une synthèse vocale, Text To Speech (TTS) en anglais, du texteprécédemment obtenu lors de la phase de traduction automatique.La synthèse vocale est une technique informatique de synthèse sonore qui permet de créer de laparole artificielle à partir de n’importe quel texte [19].Ici on obtient des phrases parlées dans la langue de destination.

Synthèse : Ces trois étapes permettent d’aboutir à un système de traduction speech-to-speech quioffre de la flexibilité à l’utilisateur qui peut donc bénéficier de certains services indépendants, commela reconnaissance automatique de parole, la traduction de texte, ou la synthèse vocale.Son principal inconvénient est qu’en transcodant la parole en texte, il y a une perte d’importantesinformations sur les caractéristiques de la voix telles que l’émotion la tonalité et l’accent. Ces carac-téristiques ne ressortent donc pas dans la synthèse vocale finale.Ceci étant, cette approche représente l’état de l’art en matière de systèmes de traduction speech-to-speech.

7

Page 20: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.2. Présentation et critique des solutions existantes

2.1.2.2 Seconde approche

Une autre approche consiste à créer un système de traduction speech-to-speech sans avoir à passerpar une représentation textuelle.Cette approche part de données vocales et utilise des algorithmes d’apprentissage profond pourune traduction directe avec une sortie vocale. Le but étant principalement de préserver les carac-téristiques de la voix de l’entrée vocale et les faire ressortir dans la sortie vocale dans la langue dedestination.Pour exemple, un utilisateur qui parle avec une voix faisant ressortir des signes de tristesse ou dejoie aura une traduction qui tentera de conserver ces caractéristiques dans la sortie vocale dans lalangage de destination.

Synthèse : Le principal avantage de cette approche est qu’elle permet de préserver les caractéris-tiques de la voix, ce qui pourrait être très utile et plus réaliste en terme de traduction vocale, car plusproche des émotions et accents de l’entrée vocale [2].En terme d’inconvénient, l’utilisateur n’a plus la possibilité d’avoir une représentation textuelle desa parole ainsi que de la traduction. Il ne pourra donc plus bénéficier de fonctionnalités comme lareconnaissance automatique de parole, la traduction de texte ou la synthèse vocale en tant que ser-vices du même système. Le second revers de cette approche est qu’elle ne permet pas encore d’avoird’aussi bonnes performances qu’avec l’approche en trois étapes.

2.2 Présentation et critique des solutions existantes

2.2.1 Présentation de quelques solutions existantes

À l’heure de nos recherches, il y a plusieurs solutions sur les systèmes de traduction. Au nombres decelles ci on a :

2.2.1.1 Google Traduction

Google Traduction1 (en anglais : Google Translate) est l’excellent outil de traduction fourni par Googleet qui permet de traduire du texte [22]. Il dispose d’une version Web et mobile.

Fonctionnalités principales :

• Possibilité de faire des traductions de texte et de la synthèse vocale au travers de l’applicationWeb et mobile.

• Possibilité de faire de la reconnaissance de parole (application mobile uniquement).

• Possibilité de faire des traductions speech-to-speech (application mobile uniquement).

• Supporte le mode hors connexion qui rend le système accessible même lorsque l’utilisateurn’est pas connecté à internet (application mobile uniquement).

1http://translate.google.com/

8

Page 21: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.2. Présentation et critique des solutions existantes

• Possibilité d’échanger des messages et de dialoguer comme une application de chat avec unetraduction automatique par le biais du système (application mobile uniquement).

Limites :

• Le système ne supporte pas la langue Fongbé. On ne peut donc y faire une traduction du Fran-çais vers le Fongbé ou vice versa.

• La reconnaissance vocale n’a pas été prévue pour l’application Web.

• La traduction speech-to-speech n’a pas été prévue pour l’application Web.

2.2.1.2 Yandex Translate

Yandex Translate2 est un service Web et une application mobile fournis par Yandex, permettant latraduction automatique de texte d’une langue vers une autre [23]. Il supporte la traduction speech-to-speech.

Fonctionnalités principales :

• Possibilité de faire de la reconnaissance de parole, de la traduction de texte et de la synthèsevocale au travers de l’application Web et mobile.

• Possibilité de faire des traductions speech-to-speech (application mobile uniquement).

• Supporte le mode hors connexion qui rend le système accessible même lorsque l’utilisateurn’est pas connecté à internet (application mobile uniquement).

• Possibilité d’échanger des messages et de dialoguer comme une application de chat avec unetraduction automatique par le biais du système (application mobile uniquement).

Limites :

• Le système ne supporte pas la langue Fongbé. On ne peut donc y faire une traduction du Fran-çais vers le Fongbé ou vice versa.

• La traduction speech-to-speech n’a pas été prévue pour l’application Web.

2.2.1.3 Microsoft Traduction

Microsoft Traduction3 est un outil de traduction multilingue fourni par Microsoft. L’API de MicrosoftTraduction est intégrée dans de multiples produits, pour les développeurs et les entreprises ; commeBing, Microsoft Office, SharePoint, Microsoft Bord, Microsoft Lync, Yammer, Skype Translator, Vi-sual Studio, Internet Explorer, et l’application Microsoft Traduction est disponible pour Windows,Windows Phone, iPhone, Apple Watch, Android et Android Wear [24].

Fonctionnalités principales :

2https://translate.yandex.com/3https://translator.microsoft.com/

9

Page 22: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 2. Revue de littérature 2.2. Présentation et critique des solutions existantes

• Possibilité de faire de la reconnaissance de parole, des traductions de texte et de la synthèsevocale au travers de l’application Web et mobile.

• Possibilité de faire des traductions speech-to-speech au travers de l’application Web et mobile.

• Supporte le mode hors connexion qui rend le système accessible même lorsque l’utilisateurn’est pas connecté à internet (application mobile uniquement).

• Possibilité d’échanger des messages et de dialoguer comme une application de chat avec unetraduction automatique par le biais du système aussi bien sur l’application Web que mobile.

Limites :

• Le système ne supporte pas la langue Fongbé. On ne peut donc y faire une traduction du Fran-çais vers le Fongbé ou vice versa.

2.2.1.4 Jibbigo

Jibbigo est une application mobile de traduction de langue hors ligne développée par Mobile Tech-nologies, LLC et le Dr Alex Waibel, professeur à Carnegie Mellon. C’est un traducteur vocal horsligne qui ne nécessite pas de connectivité téléphonique ou de données pour fonctionner. l’utilisateurprononce une phrase puis l’application produit la traduction textuelle et une sortie vocale [25].

Fonctionnalités principales :

• Possibilité de faire des traductions speech-to-speech sur l’application mobile.

• Le système fonctionne hors connexion, ce qui le rend accessible même lorsque l’utilisateur n’estpas connecté à internet.

• Possibilité d’échanger des messages et de dialoguer comme une application de chat avec uneauto traduction par le biais du système.

Limites :

• Le système ne supporte pas la langue Fongbé. On ne peut donc y faire une traduction du Fran-çais vers le Fongbé ou vice versa.

• Le système n’est disponible que pour mobile. Il n’y a donc aucune version Web.

2.2.2 Critique des solutions existantes

Les solutions existantes en matière de systèmes de traduction sont très nombreuses et pour la pluparttrès complètes en terme de fonctionnalités.Cependant, malgré le fait qu’elles supportent beaucoup de langues, aucune d’elles ne supporte leFongbé.Il est donc impossible de faire des traductions entre le Fongbé et n’importe quelle autre langue no-tamment le Français qui constitue pourtant la langue de travail du Bénin. Ceci représente le trou dela littérature que notre système tentera de combler.

10

Page 23: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3Matériel et Méthode pour la mise oeuvre dusystème de traduction

Les phases d’analyse, de modélisation ainsi que celle des choix techniques de tout projet informa-tique sont d’une importance capitale pour le bon déroulement du projet puisqu’elles permettent des’assurer d’avoir bien traduit les besoins en vue d’une préparation optimale de la phase de codageproprement dite.

3.1 Analyse

Pour mener à bien notre projet, il est indispensable de connaître l’architecture du système de mêmeque les différents modules qui interviendront dans celui-ci afin d’en appréhender le fonctionnement.

3.1.1 Architecture du système

L’architecture définit la structure des éléments constitutifs du système, du point de vue matériel etlogiciel. Elle définit la façon dont ces différents éléments sont assemblés et fonctionnent. Dans notrecas ici, nous avons opté pour une architecture client-serveur de type 2 tiers. Une telle architecturefavorise une centralisation des données sur un seul serveur, physique ou virtuel, ce qui simplifie lescontrôles de sécurité, l’administration et la mise à jour des données. Comme le montre la figure 3.1ci-dessous, nos applications Web et mobile représentent les clients et dialoguent avec le serveur Web.

3.1.1.1 Plateforme Web

La plateforme Web permettra un accès au système de traduction depuis n’importe quel terminal Web.Elle enverra des requêtes au serveur Web et recevra un résultat en fonction de la ressource indexée.

3.1.1.2 Application mobile

L’application mobile sera un moyen plus simple pour les utilisateurs sur smartphone Android d’ac-céder au système sans passer par un terminal Web. Elle enverra également des requêtes au serveurWeb via l’API qui a été mise en place.

11

Page 24: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.1. Analyse

FIGURE 3.1 – Architecture du système

3.1.2 Entités du système

Nous allons à présent nous intéresser à l’environnement du système puis spécifier ses fonctions. Pourcela, nous allons énoncer les entités concernées par celui-ci, déterminer les opérations caractérisantces entités.

La première entité de notre système est l’utilisateur simple, c’est-à-dire toute personne qui, autravers de son smartphone Android ou d’un terminal Web désire bénéficier des services du système.

La deuxième entité représente les développeurs qui désirent intégrer certains services du systèmedans leurs applications respectives par le biais d’une API mise à leur disposition. Il s’agit notammentde la traduction de texte et de la synthèse vocale.

3.1.2.1 Opérations accessibles pour les entités du système

Après avoir défini les différents acteurs de notre système, nous pouvons identifier les opérations quepeut effectuer chacun d’eux sur le système.

L’utilisateur :

12

Page 25: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.1. Analyse

• Traduire du texte du Français vers le Fongbé ou vice-versa.

• Faire une synthèse vocale de phrase écrite en Français.

• Faire une reconnaissance de parole. (Uniquement disponible pour le Français et sur l’applica-tion mobile).

• Gérer l’historique des traductions. (Uniquement disponible sur l’application mobile).

• Gérer la liste des traductions favorites. (Uniquement disponible sur l’application mobile).

• Gérer certains paramètres de l’application. (Uniquement disponible sur l’application mobile).

Le développeur :

• Intégrer le module de traduction de texte à des programmes par le biais d’une API mise àdisposition.

• Intégrer le modèle de traduction pour une utilisation hors ligne quoique la qualité des traduc-tions pourraient en être affectée.

3.1.3 Modules du système

Un système de traduction étant appelé à évoluer, nous avons décidé d’anticiper d’éventuels futurstravaux sur le système. Nous avons donc utilisé une architecture basée sur des modules en backendet qui facilite l’extension du système. Notre système possède donc deux grands modules en backend.Un module de traduction automatique de texte visant à assurer la traduction de texte entre le Françaiset le Fongbé. C’est le module principal de notre système et a déjà été entièrement intégré au backendet lié à l’API.Ensuite nous avons un module de synthèse vocale de texte en Fongbé pour lequel un espace a étéréservé en vue de rendre l’application plus évolutive. Une interface a été donc créée sur le systèmeen backend avec un schéma d’API déjà mis en place pour le module de synthèse vocale en vue defaciliter son éventuelle intégration à notre système.

3.1.3.1 Module de traduction de texte

La traduction automatique (MT en anglais) désigne un ou plusieurs programmes informatiques en-tièrement automatisés capable de traduire du texte d’une langue à une autre.Il existe trois approches principales pour la conception de système de traduction automatique [37] :

Traduction automatique à base de règles (RBMT en anglais) : La RBMT, développée il y a plu-sieurs décennies, a été la première approche pratique de la traduction automatique. Elle fonctionneen analysant une phrase source pour identifier les mots et analyser sa structure, puis en la conver-tissant dans la langue cible sur la base d’un ensemble de règles définies manuellement et codées pardes experts en linguistique. Les règles tentent de définir des correspondances entre la structure de lalangue source et celle de la langue cible.

L’avantage de la RBMT est qu’un bon moteur peut traduire un large éventail de textes sans avoirbesoin de grands corpus bilingues. Cependant, le développement d’un système RBMT prend dutemps, demande beaucoup de travail et peut prendre plusieurs années pour une paire de langues.De plus, les règles codées par l’homme ne peuvent pas couvrir tous les phénomènes linguistiques

13

Page 26: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.1. Analyse

possibles et les conflits entre les règles existantes peuvent conduire à une qualité de traduction mé-diocre face à des textes de situation de vie réelle.Pour cette raison, la traduction à base de règles a été largement remplacée par la traduction auto-matique statistique ou par des systèmes hybrides, bien qu’elle reste utile pour les paires de languesmoins courantes où il n’y a pas suffisamment de corpus pour former un moteur SMT [38].

Traduction automatique statistique (SMT en anglais) : la SMT travaille en formant le moteur detraduction avec un très grand volume de corpus bilingues (textes sources et leurs traductions) etmonolingues. Le système recherche des corrélations statistiques entre les textes sources et les traduc-tions, à la fois pour des segments entiers et pour des phrases plus courtes dans chaque segment, encréant un modèle dit de traduction.Elle génère ensuite des scores sur la probabilité qu’un texte source donné corresponde à une traduc-tion. Le moteur de traduction lui-même n’a aucune notion de règles ou de la grammaire.

L’avantage clé de la traduction automatique statistique est qu’elle élimine le besoin de créer àla main un moteur de traduction pour chaque paire de langues et de créer des ensembles de règleslinguistiques, comme c’est le cas avec la RBMT.Avec une collection suffisante de textes, vous pouvez former un moteur de traduction générique pourn’importe quelle paire de langues et même pour un secteur d’activité ou un domaine d’expertiseparticulier. Avec des corpus d’entraînement volumineux et appropriés, la SMT traduit généralementassez bien pour être compris. Le principal inconvénient de la traduction automatique statistiqueest qu’elle nécessite des corpus bilingues très volumineux et bien organisés pour chaque paire delangues. Les moteurs SMT échouent lorsqu’ils sont présentés avec des textes qui ne ressemblent pasau contenu des corpus d’apprentissage. Par exemple, un moteur de traduction formé à l’aide detextes techniques aura des difficultés à traduire des textes écrits dans un style décontracté. Il est doncimportant de former le moteur avec des textes similaires à ceux qui seront traduits.[38]

Traduction automatique neuronale (NMT en anglais) : La traduction automatique neuronale (NMT)est basée sur le paradigme de l’apprentissage automatique et constitue la toute nouvelle approche dela traduction automatique.La NMT utilise des réseaux de neurones constitués de nœuds conceptuellement modélisés d’après lecerveau humain. Les nœuds peuvent contenir des mots simples, des phrases ou des segments pluslongs et se lier les uns aux autres dans un réseau de relations complexes basé sur des textes bilinguesutilisés pour entraîner le système.La nature complexe et dynamique de tels réseaux permet de formuler des hypothèses beaucoup pluséclairées sur le contexte et donc sur la signification de tout mot à traduire.Les systèmes NMT apprennent et s’ajustent en permanence pour fournir le meilleur rendement pos-sible et nécessitent une grande puissance de traitement. C’est pourquoi cette approche n’est devenueviable que ces dernières années [38].

De ces trois approches, nous avons opté pour la traduction automatique neuronale. D’abord parcequ’elle permet d’avoir de très bons résultats en la matière de nos jours, et aussi parce qu’elle peut êtrerapidement mise en place tant que les données requises sont disponibles.

Notre modèle de traduction neuronale est un modèle encodeur-décodeur basé sur des réseaux deneurones récurrents (RNN) et implémente un mécanisme d’attention.

14

Page 27: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.1. Analyse

L’encodeur permet d’encoder la phrase source et d’avoir une représentation de celle-ci dans un vec-teur de contexte et le décodeur permet, en partant de ce vecteur de contexte, de générer une séquencede mot qui constitue la traduction du texte passé en entrée à l’encodeur.Les modèles encodeurs-décodeurs sont utilisés dans de nombreuses tâches Sequence-To-Sequence1.Le mécanisme d’attention quant à lui permet d’améliorer le modèle de traduction, notamment pourles longues phrases. En effet, le mécanisme d’attention peut être considéré comme une méthode per-mettant d’améliorer le fonctionnement du RNN en indiquant au réseau où regarder lorsqu’il effectuesa tâche. Ainsi, au lieu d’encoder la séquence d’entrée dans un seul vecteur de contexte fixe, nousavons laissé le modèle apprendre à générer un vecteur de contexte pour chaque pas de la sortie. Lemodèle apprend donc ce qu’il faut faire en fonction de la phrase d’entrée et de ce qu’il a produitjusqu’à maintenant [39].

Source : https://medium.com/syncedreview/a-brief-overview-of-attention-mechanism-13c578ba9129

FIGURE 3.2 – Modèle encodeur-décodeur avec mécanisme d’attention

Enfin, des corpus de textes parallèles propres et de haute qualité sont indispensables pour lacréation d’un système de traduction basé sur les réseaux de neurones. Bien que des corpus parallèlesde grande qualité soient disponibles pour les langues internationales comme l’Anglais, le Francais,l’Espagnol, etc, il est rare d’en trouver pour la majorité des langues africaines. La raison est que lamajorité de ces langues ne dispose pas de créateurs de contenu assidus et surtout de plateformesoffrant les mêmes écrits dans plusieurs langues. Les langues locales du Bénin n’échappent pas à cesdifficultés. Il nous a été donc difficile de trouver un corpus parallèle pour le couple Francais-Fongbé.Nous sommes donc partis avec l’objectif d’en constituer un, et ceci sur base de textes recueillis pèle-mêle sur internet.

1Ce sont des tâches qui manipulent des séquences en entrée et en sortie. La traduction de texte, qui manipule desséquences de mots, en est un exemple.

15

Page 28: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.2. Modélisation

3.1.3.2 Module de synthèse vocale

Ce module vise à éventuellement élargir le système et l’étendre en lui permettant de faire de la syn-thèse vocale pour des phrases en Fongbé. Nous lui avons réservé un espace dans notre architecturepour la rendre plus simple à maintenir et plus apte à recevoir de nouveaux modules. Pour ce faire,nous avons pris le module en compte dans le schéma de notre API en backend afin de faciliter desintégrations ultérieures au système déjà conçu. Cela diminuera donc les tâches à mener si un modulede synthèse vocale devrait être ajouté au système.

3.2 Modélisation

La modélisation permet d’anticiper les résultats du codage. Pour le faire, nous avons opté pour lelangage de modélisation UML qui se définit comme étant un langage de modélisation graphique ettextuel destiné à comprendre et décrire des besoins, spécifier et documenter des systèmes, esquisserdes architectures logicielles, concevoir des solutions et communiquer des points de vue [4].

Dans le cadre de ce présent travail, nous présenterons trois diagrammes à savoir un diagrammede cas d’utilisation, un diagramme de séquence et un diagramme de composants.

3.2.1 Diagramme de cas d’utilisation

Le diagramme de cas d’utilisation présente les interactions fonctionnelles entre les acteurs et le sys-tème.

Un cas d’utilisation représente une unité discrète d’interaction entre un utilisateur (humain oumachine) et un système. Il est une unité significative de travail. Dans un diagramme de cas d’utilisa-tion, les utilisateurs sont appelés acteurs, ils interagissent avec les cas d’utilisation.

FIGURE 3.3 – Diagramme de cas d’utilisation

16

Page 29: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.2. Modélisation

Les principaux acteurs de notre diagramme de cas d’utilisation sont :

• Utilisateur simple.

• Développeur.

L’utilisateur simple peut directement bénéficier des services du système au travers de la plate-forme Web ou de l’application mobile.Les développeurs quant à eux auront accès à une API par le biais de laquelle ils pourront intégrerles services du système à leurs applications respectives. Il s’agit surtout du service de traductionde texte. La synthèse vocale a été ajoutée au schéma de l’API pour fournir des bases en cas d’ajoutéventuel du module.

3.2.2 Diagramme de séquence

Le diagramme de séquence permet de montrer les interactions d’objets dans le cadre d’un scénariod’un diagramme des cas d’utilisation.La plupart des interactions entre acteurs externes et le système se résumant juste à une requête duclient et une réponse du système, nous avons jugé bon de ne faire qu’un seul diagramme de séquence.

3.2.2.1 Diagramme de séquence du cas : Traduire du texte

FIGURE 3.4 – Diagramme de séquence

Pour faire une traduction de texte du Français vers le Fongbé ou vice versa après avoir entré letexte et cliqué sur le bouton de traduction, une requête POST2 asynchrone est envoyée au serveurà partir de l’application Web ou mobile. Le corps de la requête est au format JSON et contient lesinformations nécessaires pour la traduction telles que la langue source, la langue de destination et

2POST est une méthode de requête HTTP utilisée sur Web.

17

Page 30: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.3. Choix techniques

le corps du message. Le serveur fait appel au module de traduction de texte intégré au backend etformate le résultat de ce dernier en JSON avant d’envoyer une réponse au client.

3.2.3 Diagramme de composants

Le diagramme de composants décrit l’organisation du système du point de vue des éléments logicielscomme les modules, des données ou encore d’éléments de configuration. Ce diagramme permet demettre en évidence les dépendances entre les composants.

FIGURE 3.5 – Diagramme de composants

3.3 Choix techniques

3.3.1 Choix des langages et bibliothèques utilisés

Lors de la conception de notre système, nous avons fait usage de plusieurs langages de program-mation, de balisage et de bibliothèques. Ceux-ci peuvent être classés en trois groupes : le frontend(plateforme Web), l’application mobile, le backend.

3.3.1.1 Le frontend (plateforme Web)

Le Front-end d’une application représente tout ce qu’on peut voir, généralement la partie ”client“d’un système.Au nombre des technologies utilisées pour la plateforme Web on a : HTML5, CSS3, Javascript, Jquery,Bootstrap.

• HTML5 :Le Hypertext Markup Language HTML est un langage de balisage de texte utilisé pour écriredes pages Web. Il permet également de structurer sémantiquement et logiquement et de mettreen forme le contenu des pages, d’inclure des ressources multimédias et des programmes infor-matiques [20]. Il a connu plusieurs versions, dont l’actuel qui est le HTML5.Nous l’avons utilisé pour le développement de la plateforme Web.

18

Page 31: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.3. Choix techniques

• CSS3 :Il s’agit du langage qui permet de définir le style de présentation des éléments des interfacesWeb à savoir les formulaires, les boutons, les tableaux et autres. Il a aussi connu plusieursversions, dont l’actuel qui est le CSS3. Ce langage vient donc compléter le HTML.Nous l’avons utilisé pour la mise en forme de la plateforme Web.

• Javascript :Le Javascript est un langage de scripts utilisé en général dans les navigateurs Web permettantainsi de la programmation Web côté client pour ajouter plus de dynamisme aux pages. C’estun langage de programmation, donc différent du HTML qui est un langage de description.Toutefois les deux vont de pair pour créer des applications côté client. Les différents traitementsfaisables côté client pour alléger le serveur sont pour la plupart exécutés en JavaScript.Nous l’avons utilisé pour ajouter du dynamisme à notre plateforme Web.

• JQuery :jQuery est une bibliothèque JavaScript libre et multiplateforme créée pour faciliter l’écriture descripts côté client dans le code HTML des pages Web [21]. La bibliothèque intègre les fonction-nalités telles que : Ajax, plugins, manipulation des feuilles de style en cascade (ajout/suppres-sion des classes, d’attributs, etc.) , parcours et modification du DOM, etc...jQuery a été utilisé pour simplifier le code Javascript et aller plus vite. Nous l’avons choisi poursa simplicité de prise en main, d’usage et d’intégration.

• Bootstrap :Bootstrap est un framework CSS. C’est également une collection d’outils utile à la créationd’applications Web responsives. C’est un ensemble qui contient des codes HTML et CSS, desformulaires, boutons, outils de navigation et autres éléments interactifs, ainsi que des exten-sions JavaScript en option.Bootstrap a été utilisé pour avoir une interface Web attirante et responsive. Nous l’avons choisipour sa simplicité de prise en main, d’usage et d’intégration ainsi que sa forte communauté.

3.3.1.2 L’application mobile :

Les technologies utilisées lors de la conception de l’application mobile sont : Java, XML.

• Java :Le Java est très répandu dans les développements informatiques actuels. C’est un langage ob-jet permettant le développement d’applications natives complètes sous Android. Il offre unensemble de librairies qui facilitent le développement et dispose d’une documentation bienfournie.Nous l’avons utilisé dans le cadre du développement de l’application Android. Nous l’avonschoisi pour les performances qu’il offre pour la conception d’application mobile sous Android.

• XML :Le XML est un langage de balisage qui sert essentiellement à stocker et transférer des donnéesde type texte structurées en champs arborescents. Ce langage est qualifié d’extensible, car il per-met à l’utilisateur de définir des marqueurs (balises) qui facilitent le parcours au sein du fichieret donc la lecture de l’information. Ce langage est couramment utilisé et son apprentissage est

19

Page 32: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.3. Choix techniques

aisé.Nous l’avons utilisé pour la réalisation des interfaces graphiques de l’application Android.

3.3.1.3 Le backend :

Le Back-end d’une application fait référence à tout ce qui est invisible pour l’utilisateur. Il s’agit destraitements logiques qui se font sur le serveur. Les technologies utilisées en backend dans le cadre denotre système sont : Python3, Flask, Keras, NMT-Keras.

• Python3 :Python est l’un des langages de programmation les plus connus et utilisés dans le mondede la programmation. C’est un langage de programmation objet, multi-paradigme et multi-plateforme. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet.Il est doté d’un typage dynamique fort, d’une gestion automatique de la mémoire par ramasse-miettes et d’un système de gestion d’exceptions ; il est ainsi similaire à Perl, Ruby, Scheme,Smalltalk et Tcl [26]. Par ailleurs Python est le langage le plus utilisé dans le domaine de l’intel-ligence artificielle (IA).Le langage python a été utilisé lors de la conception du module de traduction de texte, maisaussi en backend sur le serveur Web. Il a été préféré aux autres langages parce qu’il offrait uneplus grande facilité d’intégration du module de traduction codé en python.

• Flask :Flask est un microframework opensource développé en Python pour la conception d’applica-tion Web en backend. Un microframework comme son nom l’indique est un framework depetite taille ne comportant pas assez de lignes de code, le rendant ainsi léger et n’imposant pasune structure à l’application que l’on souhaite développer. Il est donc léger, permet d’avoir unetrès grande souplesse et est extensible grâce aux plugins.Nous l’avons utilisé pour la mise place de notre serveur Web car facile et rapide à prendre enmain.

• Keras :Keras est une bibliothèque open source de réseaux de neurones de haut niveau, écrite en Py-thon et interfaçable avec TensorFlow, CNTK et Theano. Elle a été développée avec pour objectifde permettre des expérimentations rapides [27].Elle permet de créer facilement et rapidement des réseaux de neurones, en se basant sur desframeworks existants. C’est actuellement le deuxième framework d’apprentissage profond leplus utilisé(deep learning).C’est le framework d’apprentissage profond que nous avons utilisé pour notre modèle de tra-duction automatique parce qu’il dispose d’une forte communauté et est plus simple à prendreen main que la plupart des autres frameworks.

• NMT-Keras :C’est une bibliothèque qui facilite la création de modèle d’apprentissage profond pour les sys-tèmes de traduction automatique neuronale. Elle a été conçu avec Keras et peut être facilementintégrer comme module à un système.Nous l’avons utilisé pour la conception de notre modèle d’apprentissage automatique. Elle aété privilégiée aux autres bibliothèques existantes car codée avec Keras, la plupart des autresbibliothèques étant faites avec Tensorflow.

20

Page 33: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 3. Matériel et Méthode pour la mise oeuvre du système de traduction 3.3. Choix techniques

3.3.2 Outils de développement

Au nombre des différents outils utilisés lors de la conception de notre système, on peut citer :

• Android Studio :Créé par Google, Android Studio est un environnement de développement pour développerdes applications Android. Il se base sur le langage de programmation JAVA associé au lan-gage de balisage XML. Le langage XML permet de disposer les éléments(boutons, champs detexte, images et autres) devant composer les différentes interfaces. Le langage JAVA quant à luipermet d’écrire le code de traitement derrière les éléments de l’interface graphique.

• Visual Studio Code :Visual Studio Code ou VS Code est un type d’outil qui combine la simplicité d’un éditeurde code avec ce dont les développeurs ont besoin pour leur cycle favori édition-compilation-débogage. Il fournit une prise en charge complète de l’édition et du débogage, un modèle d’ex-tensibilité et une intégration légère aux outils existants [28].

• Swagger :Swagger est une infrastructure logicielle open-source reposant sur un vaste écosystème d’outilsqui aide les développeurs à concevoir, créer, documenter et utiliser des services Web RESTful3.

• Scrapy :Scrapy est un framework open-source permettant la création de robots d’indexation. Il permetde crawler4 des sites internet afin d’y extraire toutes sortes d’informations pour d’éventuelstraitements ultérieurs. Développé en Python, il dispose d’une forte communauté, offrant denombreux modules supplémentaires.

3Les services Web conformes au style d’architecture REST sont aussi appelés services Web RESTful. REST étant un styled’architecture logicielle définissant un ensemble de contraintes à utiliser pour créer des services Web

4crawler un site internet consiste à créer un robot, avec du code, qui une fois lancé permettra d’analyser le contenud’une page et d’y récupérer des éléments.

21

Page 34: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4Résultats et discussions

Les travaux menés tout au long de notre projet nous ont permis de concevoir un système répondantplus ou moins bien aux spécifications initialement fixées. La présentation des résultats obtenus ainsiqu’une phase de discussion se veulent donc nécessaires en vue de mieux jauger la qualité de ce qui aété fait.

Dans ce chapitre nous présenterons donc de manière détaillée notre système, puis discuterons deses limites et insuffisances.

4.1 Construction du corpus

La donnée représente l’élément de base, et, si on peut s’exprimer ainsi, le facteur clé de tout modèled’apprentissage automatique. La quantité et la qualité de celle-ci sont donc déterminants sur les per-formances du modèle et donc de notre système en général. En effet, la qualité et la profondeur desdonnées détermineront le niveau des applications d’intelligence artificielle que l’on peut atteindre[40]. Pour ce faire nous avons utilisé des corpus de source biblique pour la conception de notre mo-dèle de traduction automatique. Il s’agit de données bibliques en langue Française et Fongbé. Nousavons donc créé un corpus parallèle de texte entre le Français et le Fongbé sur la base des donnéesrecueillies.

Le choix de ces données a été motivé par deux grandes raisons :La première, c’est qu’il n’existe presque pas de corpus parallèle de texte entre le Français et le Fongbé.Du fait de la rareté de ce genre de données, nous nous sommes donc tournés vers les premièressources qui se sont présentées à nous, notamment les données bibliques.La seconde raison, c’est que ces données sont en général de bonne qualité puisqu’il s’agit du fruitde longues périodes de travail. Les organismes qui oeuvrent à faciliter l’accessibilité des écritures bi-bliques étant pour la plupart de grandes institutions, les travaux de traduction sont donc en généralbien faits.

L’extraction des données a été faite avec des scripts crées pour la circonstance. En effet, nousn’avons pas pu avoir accès à des fichiers contenants les données proprement dites. Les seules sourcesque nous avions étaient des traductions les unes après les autres sur des sites Web. Nous avons doncété obligé de faire du Web scraping afin d’extraire les données une à une des pages Web. Pour ce faire

22

Page 35: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.2. Statistiques et évaluation de modèle

nous avons utilisé les données provenant du site Web https://beninlangues.com notammentde la rubrique dédiée à la bible, à l’URL https://beninlangues.com/bible-fongbe.html.

Après cette étape, nous avons organisé les données au format attendu par notre modèle de tra-duction avec de nouveaux scripts. À ce niveau nous avons fait du Data cleaning afin d’épurer d’unecertaine manière les données. Plusieurs livres de la bible, et tous les chapitres et versets pour chacund’eux ont pu être recueillies. Une liste exhaustive de ces données peut être trouvée sur le site officielde Benin langue1 [12].Ensuite, nous avons mélangé les données pour avoir une certaine homogénéité, puis divisé celles-cien trois parties : l’une pour l’entraînement à hauteur de 70%, 10% pour la validation, et les 20% res-tants pour les tests.

4.2 Statistiques et évaluation de modèle

4.2.1 Quelques statistiques sur les données

Avant l’évaluation des performances de notre modèle, voici quelques statistiques obtenues sur lesdonnées recueillies.

TABLE 4.1 – Quelques statistiques sur les données utilisées par le modèle

Statistiques Français Fongbé

Nombre total de phrases utilisés 15233 15233Longueur maximale (phrases) fixée pour le modèle 75 75

Nombre de mots vocabulaire (training) 14996 6404

4.2.2 Evaluation du modèle

La Figure 4.2 présentent quelques paramètres du modèle utilisé.

1Les données utilisées se trouvent à l’URL https://beninlangues.com/bible-fongbe.html

23

Page 36: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.2. Statistiques et évaluation de modèle

TABLE 4.2 – Quelques hyperparamètres du modèle de Deep Learning

Hyperparamètres valeurs

Encoder RNN type ’LSTM’Decoder RNN type ’LSTM’Classifier activation function ’softmax’Maximum length of the input sequence 75Maximum length of the output sequence 75Source text embedding size 32Target text embedding size 32Encoder hidden size 32Decoder hidden size 32Size of each minibatch 50

Pour l’évaluation de notre modèle de traduction automatique, nous avons utilisé le score BLEUcomme métrique [7].

La Formule du score BLEU est :

BLEU = BP · exp

(N∑

n=1

wn · log · pn

)(4.1)

avec BP (Brievity Penalty) :

BP =

{1 if c > r

e(1−r/c) if c ≤ r(4.2)

et une précision pn :

pn =m

wt(4.3)

avec m le nombre de n-gramme2 du candidat trouvé dans la référence et wt le nombre total den-gramme de la référence.

Le Tableau 4.3 présente les scores BLEU obtenus. Ce score est au dessus de la moyenne (référenceadmise dans la littérature) et peut être jugé intéressant. Cependant, ce score est loin des 0.98+ de lamajorité des outils majeurs qui existent sur le marché.

2Un n-gramme est une sous-séquence de n éléments construite à partir d’une séquence donnée.

24

Page 37: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.3. Présentation de quelques interfaces

TABLE 4.3 – Scores BLEU

Métrique Score

BLEU-1 0.276382194985306BLEU-2 0.14528704844208942BLEU-3 0.08003885693733184BLEU-4 0.04746334794170602

Cet état de chose est lié au fait que le corpus actuel est un petit échantillon de textes parallèles(comparé à ce qui est fait dans la littérature).

En effet, pour des raisons de temps de computation nécessaire pour les grandes quantités dedonnées, nous nous sommes dans nos tests limités à une petite taille de corpus. Pour cette mêmeraison, nous avons entraîné le système sur une seule itération (époque), avec des hyperparamètresbridés dans le but d’accélérer le processus d’apprentissage. Au nombre de ces hyperparamètres onpeut citer par exemple la taille maximale des phrases qui seront passées en entrée et en sortie aumodèle, la taille des embeddings3 pour les mots du vocabulaire, le nombre de couches cachées dumodèle.

Nous avons donc en perspective prévu relancer les tests en grandeur nature sur un corpus plusgrand avec 1000 époques sur un super-calculateur en vu d’améliorer la traduction dans les applica-tions web et mobile.

4.3 Présentation de quelques interfaces

4.3.1 Plateforme Web

Les interfaces principales de notre plateforme Web sont :

Page d’accueil : La Figure 4.1 représente la page d’accueil et donc l’interface principale de notreplateforme Web. Elle se trouve à la racine du site et est donc accessible depuis l’URL (http://ip-serveur), avec ip-serveur l’adresse IP de notre serveur. Elle a été conçue très légère et ergonomiqueen vue de faciliter les opérations de traduction à l’utilisateur dès les toutes premières fois.

Documentation de l’API : La Figure 4.2 représente la page de documentation de l’API de notre sys-tème. Elle fournit une bonne documentation sur l’API et donne la possibilité de la tester directementsur la plateforme. Elle est accessible depuis l’URL (http://ip-serveur/api/v1/ui/).

3matrice contenant une représentation des mots du vocabulaire

25

Page 38: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.3. Présentation de quelques interfaces

FIGURE 4.1 – Page d’accueil de l’application Web

FIGURE 4.2 – Page de documentation de l’API

4.3.2 Application mobile

Notre application mobile offre plus de fonctionnalités que notre application Web. Voici quelques unesde ses interfaces.

26

Page 39: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.4. Discussion

Interface d’accueil : Les Figures 4.3a, 4.3b 4.3c et 4.3d présentent l’interface d’accueil de notre ap-plication mobile. À l’instar de notre plateforme Web, l’interface dédiée à la gestion des opérations detraduction est légère et ergonomique. C’est la première interface de notre application mobile, cellequi se lance au démarrage. Le choix des langues source et destination a été déplacé dans la barred’application pour donner plus d’espace à l’utilisateur pour les textes et les autres widgets.

Interfaces de gestions des historiques et favoris : Les Figures 4.4a et 4.4b présentent respective-ment les interfaces de gestion de l’historique des traductions et de la liste des favoris. Elles permettentà l’utilisateur de gérer l’historique des traductions effectuées ainsi que la liste des traductions favo-rites.

Interface de paramètre : La Figure 4.4c présente l’interface qui permet de définir des préférencespour certaines options.

4.4 Discussion

Conformément au cahier de charge, notre projet est constitué, coté utilisateur, d’une plateforme Webet d’une application mobile sous Android. Nous avons conçu des interfaces utilisateurs simples etconviviales avec une certaine ergonomie toujours dans le but de faciliter son utilisation. Notre sys-tème permet à l’utilisateur de faire de la traduction de texte entre le Français et le Fongbé au traversde la plateforme Web et de l’application mobile.

Nous avons également travaillé l’API que nos applications Web et mobile utilisent afin de lerendre accessible à plus de développeurs et donc ne pas restreindre le travail accompli à nos applica-tions uniquement.

Comme nous l’avons spécifié dans la section résultat, le score obtenu par notre système sur unpetit corpus est admissible mais doit être encore retravaillé pour améliorer le système.

Le système de traduction présenté dans ce travail est la première phase d’un processus de miseen place de nouveaux outils de traitement de langue pour nos langues locales. Ainsi, ce module detraduction améliorée sera un bloc dans la réalisation d’autres modules plus complexes comme latraduction du texte à la parole et de la parole à la parole.

27

Page 40: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.4. Discussion

(a) Interface d’accueil (b) Reconnaissance de parole

(c) Interface d’accueil (d) Menu principal

FIGURE 4.3 – Interface d’accueil de l’application mobile

28

Page 41: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Chapitre 4. Résultats et discussions 4.4. Discussion

(a) Historique des traductions (b) Liste des favoris

(c) Interface de paramètre

FIGURE 4.4 – Interfaces de gestion d’historique, de favoris et de paramètres de l’application mobile

29

Page 42: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Conclusion

L’objectif de ce mémoire est de concevoir et de mettre en oeuvre un système de traduction du couplede langue Français-Fongbé avec du Deep Learning. Cette solution est parti du constat qu’aucun sys-tème de traduction n’existe pour nos langues locales au Bénin. La population pourra donc bénéficierdes services de traduction entre le Français et le Fon à travers notre système.

Le système est composé d’une plateforme web et d’une application mobile. Il implémente une ar-chitecture réseau 2 tiers et utilise une traduction automatique neuronale avec mécanisme d’attentionpour les traductions de texte. Aussi, il dispose de fonctionnalités utilitaires comme la synthèse vocaleet la reconnaissance de parole en Français. Ce dernier étant uniquement disponible sur l’applicationmobile.

Par ailleurs, bien qu’il ait tenté de se conformer aux spécifications préalablement établies, notresystème est loin d’être parfait. En effet, les données utilisées pour l’entraînement de notre modèle detraduction neuronale étant de source biblique, les traductions ne sont donc pas assez générique.

Plusieurs perspectives sont donc envisageables afin d’élargir le système ou de l’améliorer. Ainsi,notre système peut être rendu un peu plus complet grâce à l’ajout de nouveaux modules notammentdes modules de reconnaissance de parole et de synthèse vocale en Fongbé. Ceci pourrait permettreau système de faire des traduction speech-to-speech. Aussi, l’acquisition de plus de données paral-lèles de qualité et éventuellement plus génériques que celles utilisées de même qu’un entraînementplus profond du modèle seraient susceptibles d’aider à avoir un meilleur modèle de traduction auto-matique. Des réglages d’hyperparamètres pourraient également aider à améliorer le modèle. Enfin,le système pourrait être élargi à d’autres langues locales autres que le Fongbé.

30

Page 43: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Bibliographie

[1] Daniel Jurafsky, James H. Martin, Speech and Language Processing, Third Edition draft, 2017.

[2] FREDRIK BREDMAR, Speech-to-speech translation using deep learning, Student essay, 2017.

[3] Mahak Dureja, Sumanlata Gautam, Speech-to-Speech Translation : A Review, International Journalof Computer Applications (0975 – 8887) Volume 129 – No.13, 2015.

[4] Pascal Roques, Modéliser une application web (quatrième Edition), Les cahiers du programmeur,2008.

[5] Bestmomo, Prenez en main Bootstrap, OpenClassrooms, 2014.

[6] FireZéro, Créez vos applications web avec Flask, OpenClassrooms, 2013.

[7] Kishore Papineni,Salim Roukos, Todd Ward, and Wei-Jing Zhu, BLEU : a Method for AutomaticEvaluation of Machine Translation, Proceedings of the 40th Annual Meeting of the Association forComputational Linguistics (ACL), Philadelphia, pp. 311-318., https://www.aclweb.org/anthology/P02-1040.pdf, 2002.

[8] Mahak Dureja, Sumanlata Gautam, Speech-to-Speech Translation : A Review, International Journalof Computer Applications (0975 – 8887) Volume 129 – No.13, 2015.

31

Page 44: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Webographie

[9] Etudier, La spécificité du langage humain, https://www.etudier.com/dissertations/La-Spécificité-Du-Langage-Humain/168656.html, consulté le 07 Août 2018.

[10] Bénin langue, La langue fongbe du Bénin, https://beninlangues.com/langue-fongbe.html, consulté le 1er Octobre 2018.

[11] Bénin langue, La Bible en fongbé : les chapitres, https://beninlangues.com/bible-fongbe.html, consulté le 18 Décembre 2018.

[12] Analytics Vidhya, Web scraping in python using scrapy, https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/, consulté le 10 Décembre2018.

[13] Ipedef fongbe, Ipedef | INSTITUT PÉDAGOGIQUE D’ÉTUDE ET DE DÉVELOPPEMENT DEL’ÉCRIT EN FONGBÉ, http://ipedef-fongbe.org/, consulté le 1er Octobre 2018.

[14] Futura science, Deep Learning - Apprentissage profond, https://www.futura-sciences

.com/tech/definitions/intelligence-artificielle-deep-learning-17262/,consulté le 05 Septembre 2018.

[15] Wikipédia , Apprentissage profond, https://fr.wikipedia.org/wiki/Apprentissage_profond, consulté le 05 Septembre 2018.

[16] Math Works , Qu’est ce que le Deep Learning, https://fr.mathworks.com/discovery/deep-learning.html, consulté le 05 Septembre 2018.

[17] Wikipédia , Reconnaissance automatique de la parole, https://fr.wikipedia.org/wiki/Reconnaissance_automatique_de_la_parole, consulté le 09 Septembre 2018.

[18] Malek Boualem , Définition de la traduction automatique (source Wikipedia), https://www.malek-boualem.info/traduction-automatique/definition/, consulté le 09 Septembre2018.

[19] Accessibilité Numérique , Synthèse vocale, www.accessibilite-numerique.wikibis.com/synthese_vocale.php, consulté le 09 Septembre 2018.

[20] Lietard , HTML, http://www.lietard.fr/teaching/index_html5.html, consulté le 22Septembre 2018.

32

Page 45: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

[21] Cours Web, Javascript, https://cours-web.ch/js/, consulté le 22 Septembre 2018.

[22] Wikipedia, Google Traduction, https://fr.wikipedia.org/wiki/Google_Traduction,consulté le 29 Novembre 2018.

[23] Wikipedia, Yandex Translate, https://fr.wikipedia.org/wiki/Yandex.Translate,consulté le 29 Novembre 2018.

[24] Wikipedia, Microsoft Traduction, https://fr.wikipedia.org/wiki/Microsoft_Traduction, consulté le 29 Novembre 2018.

[25] Wikipedia, Jibbigo, https://en.wikipedia.org/wiki/Jibbigo, consulté le 29 Novembre2018.

[26] Wikipedia, Python (langage), https://fr.wikipedia.org/wiki/Python_(langage),consulté le 23 Septembre 2018.

[27] Keras, Home - Keras Documentation, https://keras.io/, consulté le 23 Septembre 2018.

[28] Github , Microsoft/vscode : Visual Studio Code, https://github.com/Microsoft/vscode,consulté le 23 Septembre 2018.

[29] Saagie , Machine Learning pour les grand-mères, https://www.saagie.com/fr/blog/machine-learning-pour-les-grand-meres/, consulté le 16 Août 2018.

[30] Nvidia , Difference Between Supervised, Unsupervised and Reinforcement Learning | NVIDIA,https://blogs.nvidia.com/blog/2018/08/02/supervised-unsupervised-

learning/, consulté le 16 Août 2018.

[31] Wikipedia , Apprentissage semi-supervisé, https://fr.wikipedia.org/wiki/Apprentissage_semi-supervisé, consulté le 16 Août 2018.

[32] Deep Sense , What is reinforcement learning? The complete guide, https://deepsense.ai/what-is-reinforcement-learning-the-complete-guide/, consulté le 16 Août 2018.

[33] Wikipedia , Apprentissage par transfert, https://fr.wikipedia.org/wiki/Apprentissage_par_transfert, consulté le 16 Août 2018.

[34] Sas, What is Natural Language Processing? | SAS, https://www.sas.com/en_us/insights/analytics/what-is-natural-language-processing-nlp.html, consulté le 05 Dé-cembre 2018.

[35] Stanford, Stemming and lemmatization, https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html, consulté le 05 Décembre 2018.

[36] Stanford, Tokenization, https://nlp.stanford.edu/IR-book/html/htmledition/to

kenization-1.html, consulté le 05 Décembre 2018.

[37] Gala Global, What is Machine Translation?, https://www.gala-global.org/what-machine-translation, consulté le 10 Novembre 2018.

[38] Andovar, Machine Translation, https://www.andovar.com/machine-translation/,consulté le 10 Novembre 2018.

33

Page 46: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

[39] Hacker Noon, Attention Mechanism in Neural Network, https://hackernoon.com/attention-mechanism-in-neural-network-30aaf5e39512, consulté le 10 Novembre 2018.

[40] Squiz, The importance of data for AI, https://www.squiz.net/learn/blog/why-data-is-so-important-when-it-comes-to-ai, consulté le 03 Décembre 2018.

[41] W3Schools , W3Schools Online Web Tutorials, http://w3schools.com/, consulté à plusieursreprises lors de la phase de codage.

[42] Stack Overflow , Stack Overflow Where Developers Learn, Share, & Build Careers, https://stackoverflow.com/, consulté à plusieurs reprises lors de la phase de codage.

[43] Android Developer , Android Developers, http://developer.android.com/, consulté à plu-sieurs reprises lors de la phase de codage.

34

Page 47: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

Annexe

4.5 Quelques captures d’écrans

4.5.1 Morceau de code du script de Web scraping

FIGURE 4.5 – morceau du code de web scraping

35

Page 48: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

4.5.2 Extrait du corpus de textes parallèles utilisé

FIGURE 4.6 – Extrait du corpus de texte parallèle constitué

4.5.3 Le modèle de Deep Learning utilisé

36

Page 49: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

FIG

UR

E4.

7–

imag

edu

mod

elgé

néré

ede

tens

orbo

ard.

37

Page 50: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

4.5.4 Les embeddings utilisés pour le modèle

(a) (b)

FIGURE 4.8 – Vue 2D des Embeddings de certains mots utilisés par le modèle

4.5.5 La fonction de perte sur huit (08) époques d’entrainements

(a) (b)

FIGURE 4.9 – fonction de perte du modèle sur huit (08) époques

38

Page 51: MÉMOIRE - Ratheil · 2019-05-12 · have tools that can translate existing resources of other languages into our local languages. This task is not easy because capturing the semantics

39