Analyse de la structure de phonoWriter
Méthodologie de travail
Afin de respecter les prérequis du cadre imposé lors de notre travail de Bachelor mais également par affinité avec le processus, nous avons développé notre solution de manière agile et surtout itérative. Nous retrouvant de façon hebdomadaire avec le Professeur Genoud et son assistant Jérôme Treboux, nous avons mis en place une optique de travail où nous présenterions lors de chaque séance une itération supplémentaire et fonctionnelle de développement qui serait soumise à leur validation. Cela nous a permis d’organiser nos séances de développement en sprints courts ne dépassant pas une à deux semaines, et cela nous a également donné l’opportunité de mettre l’accent sur des solutions qui soient rapidement opérationnelles et discutables. Dans une première phase, nous avons défini la ligne globale qu’allait prendre le développement de cette thèse. Nous avons tout d’abord défini les objectifs que nous souhaitions atteindre, et notamment les trois grands epics de notre solution, à savoir l’extraction des occurrences de n-uples dans une phrase, le web service ainsi que le processus de mise à jour de la base de données. Puis dans une seconde phase, une fois ces trois solutions complètement implémentées, nous avons mis en place une méthodologie de test, afin de pouvoir extraire des résultats d’efficacité des différents processus. Dans une dernière phase nous avons procédé à l’analyse ainsi qu’à l’explication des résultats obtenus, puis fourni des lignes directrices quant aux possibilités d’optimisation futures. Nous avons également exprimé en parallèle nos recommandations pour l’utilisation de notre solution avec PhonoWriter.
Occurrence de 5-uples de mots dans une phrase
Dans le but de complémenter la prédiction basée sur des couples de mots, nous avons mis en place un processus équivalent au précédent, à ceci près qu’il extrait des 5-uples et non pas des couples de mots. Le fait d’utiliser cette méthode d’extraction pour des n-uples plus grands que deux requiert toutefois une étape de traitement en plus. En effet, suite à l’adaptation du workflow précédent, nous obtenons cinq colonnes contenant chacune un mot, l’objectif étant de prédire la cinquième en nous basant sur les quatre premières. Le problème qui survient est que les algorithmes de prédictions ne tiennent pas compte de l’ordre dans lequel les colonnes apparaissent pour établir leur prédiction. Cependant, il est clair qu’en ce qui nous concerne l’ordre des colonnes, et par conséquent des mots, est crucial pour effectuer une prédiction qui soit la plus précise possible.
Pour pallier à cette éventualité, nous avons pris la décision d’effectuer une concaténation de quatre premières colonnes, afin que celles si soient traitées comme une seule colonne d’input dans le but de prédire la cinquième. Nous avons cependant constaté que la viabilité de cette prédiction dépend grandement de la taille de la base de données, et nécessite donc une grande quantité de sources. Il est en effet simple de concevoir que dans une collection de textes donnés, l’occurrence exacte d’une séquence de cinq mots est rare, et que la base de données sera donc peuplée par un grand nombre de 5-uples présents une seule fois. Dans le cadre de notre travail, une base de données assez conséquente pour fournir des prédictions améliorées était trop difficile à atteindre, et ce tout en respectant les contraintes imposées par la structure et le format de la base de données PhonoWriter. Nous nous sommes donc orientés vers les occurrences de 3 et 4-uples dans l’objectif d’avoir de meilleurs résultats.
Maximisation
Lorsqu’une application contacte notre web service afin d’obtenir une prédiction, elle est en mesure de spécifier la quantité de prédictions qu’elle souhaite obtenir. De par ce fait, il est possible d’obtenir une efficacité maximum lors que le nombre de prédictions demandées est égal au nombre d’entrées dans la base de données pour un n-uple donné. En effet, il est facile de concevoir que si le n-uple correct est déjà connu de la base de données, et que celle-ci retourne tous les n-uples connus pour une expression donnée, celle-ci sera forcément dans la liste des prédictions, et donc, considérée comme correcte. Inversément, si le service ne fournit qu’un seul n-uple à chaque requête, les prédictions correctes ne seront que celles où le couple le plus fréquent (possédant la pondération la plus haute) était le bon.
En réalité : Malheureusement, il n’est pas admissible pour un logiciel proposant des suggestions de mots d’en proposer un trop grand nombre. Il n’est en effet pas humainement possible pour un utilisateur écrivant du texte d’analyser 30 n-uples possibles proposés par le service afin de trouver celui qui l’intéresse, et ce dans un temps raisonnable, à chaque fois qu’il écrit un nouveau mot. Nous avons donc dû déterminer pour tester l’efficacité du service, quels étaient les nombres de suggestions adéquates à fournir à l’utilisateur. N’ayant pu trouver aucune étude ayant été effectuée directement à ce sujet, nous nous sommes rabattus sur une analyse similaire concernant le nombre d’auto-complétions proposées par différents moteurs de recherches, dont nous avons pu extraire les résultats suivants (rpauldesign, 2014) : Le contexte de ces recherches étant légèrement différent, car celles-ci ne sont en général pas effectuées aussi rapidement que lors de la rédaction d’un texte par exemple, nous avons choisi de limiter nos suggestions dans la fourchette inférieure, à savoir entre deux et cinq propositions.
Meilleur paramètre pondérationnel
Pour pouvoir déterminer le meilleur paramètre pondérationnel, nous avons utilisé comme indicateur la moyenne du gain d’efficacité pour chacun des 20 paramètres prédictionnels correspondants au paramètre pondérationnel évalué. Nous avons extrait les observations suivantes : Conformément à notre première assomption, nous constatons en effet qu’aucun paramètre pondérationnel ne constitue de manière globale une baisse d’efficacité de la prédiction, bien que cela ne soit pas vrai pour certains paramètres prédictionnels que nous décrirons ci-après. En second lieu, nous observons que notre prédiction de la pondération comme étant la plus efficace est erronée. Ce sont en effet les pondérations bouleversant le moins l’équilibre de la base de données (normale et X5) qui engendrent les meilleurs résultats, bien que l’extrême opposé avec une pondération extrêmement élevée (999999) voit une augmentation sensible par rapport aux valeurs médianes X20 et X50.
Ces résultats peuvent être expliqués par le fait qu’une augmentation normale de la pondération conserve le ratio de pondération entre les différents types de mots : de manière générale, les conjonctions et autres déterminants qui possèdent intrinsèquement des valeurs élevées car ils apparaissent souvent gardent toujours une pondération plus importante que des simples mots, même si ceux-ci font parties d’un vocabulaire typique où ils apparaissent régulièrement. Inversément, attribuer une pondération anormalement élevée X20-X50-999999 détruit cet équilibre et des mots rares peuvent dépasser en pondération des séquences extrêmement courantes qui ne se seraient toutefois pas trouvées dans le texte d’apprentissage. Nous spécifions que ces observations sont étroitement liées à la taille de la base de données et surtout au nombre de textes utilisés pour la remplir. Pour illustrer ce cas de figure, prenons par exemples les couples « chien aboie », « chien d’aveugle », « chien d’exercice » ayant des pondérations respectives de 100, 5 et 2. Le couple « chien aboie » est clairement celui qui apparait le plus dans notre base de données et a en conséquence la pondération la plus haute.
|
Table des matières
Résumé Managérial
Avant-Propos
Remerciements
Table des matières
Table des illustrations
Glossaire et Abréviations
1 Introduction
1.1 Contexte
1.2 Objectifs
2 Etat de l’art – Applications
2.1 PhonoWriter
2.1.1 Prédiction Classique
2.1.2 Prédiction Phonétique
2.1.3 Prédiction Floue (Fuzzy)
2.1.4 Validation par l’utilisateur
2.1.5 Fonctionnement des Prédictions
2.1.6 Paramétrisation
2.2 PHRASE EXPRESS
2.3 Skippy.
3 Analyse de la structure de phonoWriter
3.1 Bases de données
3.1.1 Structure
3.1.2 Expansion
4 Méthodologie de travail
5 Extraction de l’occurrence de mots
5.1 Choix des sources
5.1.1 Langage
5.1.2 Réflexion sur les accents
5.1.3 Réflexion sur les apostrophes
5.1.4 Type de documents
5.1.5 Orthographe
5.1.6 Encoding
5.2 Occurrence de n-uples dans une phrase
5.2.1 Occurrence de couples dans une phrase
5.2.2 Occurrence de 5-uples de mots dans une phrase
5.2.3 Occurrence des 3-uples de mots dans une phrase
5.2.4 Occurrences de 4-uples de mots dans une phrase
5.3 Implémentation
5.3.1 Emplacement
5.3.2 Préconfiguration
5.3.3 Structure
5.3.4 Particularités – Eléments intéressants
6 Web Service
6.1 Objectif
6.2 Implémentation
6.2.1 Emplacements
6.2.2 Préconfiguration
6.3 Méthodes
6.3.1 getCouplesForWord(String mot, int nombreDeCouples)
7 WPS Tester
7.1 Objectif
7.2 Implémentation
7.2.1 Emplacement
7.2.2 Préconfiguration
8 Mise à jour de la base de données (ETL)
8.1 Objectif
8.2 Implémentation
8.2.1 Emplacement
8.2.2 Préconfiguration
8.2.3 Structure
8.2.4 Particularités – Eléments intéressants
9 Processus de test qualitatif du service
9.1 Objectif
9.2 Implémentation
9.2.1 Emplacement
9.2.2 Préconfiguration
9.2.3 Paramètres prédictionnels
9.2.4 Structure
10 Analyse des résultats
10.1 Workflow
10.1.1 Emplacement
10.1.2 Préconfiguration
10.1.3 Structure
10.2 Estimation des résultats
10.2.1 Meilleur paramètre pondérationnel
10.2.2 Meilleur nombre de prédictions
10.2.3 Meilleur nombre de derniers mots considérés
10.3 Résultats obtenus
10.3.1 Meilleur paramètre pondérationnel
10.3.2 Meilleur nombre de prédictions
10.3.3 Meilleur nombre de derniers mots considérés
10.3.4 Meilleurs paramètres globaux
11 Conclusion
11.1 Résultat Final et Bilan
11.2 Recommandations
11.3 Future Works ( Evolution et améliorations envisageables)
11.3.1 Stemming
11.3.2 Part of speech
11.3.3 Correction orthographique et prédiction de mot
11.3.4 Restructuration Phonétique
12 Références
Annexe I Contenu du support physique
Annexe II Journal de travail
Déclaration sur l’honneur
Télécharger le rapport complet