petites corrections pour que le Makrdown compile

This commit is contained in:
François Pelletier 2019-09-29 15:03:53 -04:00
parent c0be900625
commit 9153673316

View file

@ -1,11 +1,13 @@
---
title: IFT-7022 - Traitement automatique de la langue naturelle
author: François Pelletier (908144032)
date: 30 septembre 2019
geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
output: pdf_document
---
# Travail pratique 1
IFT-7022 — Traitement automatique de la langue naturelle
Remis par François Pelletier
Étudiant # 908144032
## Conversion de questions
L'objectif de ce problème est de convertir un ensemble de questions en affirmations à l'aide d'expressions régulières et règles de substitution.
@ -22,25 +24,25 @@ Toutes ces règles sont enchainées les unes à la suite des autres. Comme la co
Les motifs suivent cet ordre. Sauf indication contraire, le groupe affirmatif à convertir est situé après le motif recherché :
1. Mot-question **qui**, suivi d'un verbe auxiliaire, sous forme d'énumération partielle
2. Mot-question **qu'est-ce qu'**
3. Mot-question **que** suivi d'un verbe d'état ou d'action. J'ai ici utilisé une énumération partielle pour identifier les verbes présents dans les questions en échantillon.
4. Mot-question **où** ou de la forme **dans quelle** suivi d'une catégorie géographique, sous forme d'énumération partielle. J'ai aussi capturé la forme particulière **quelle est la capitale** où je remplace le mot **quelle** par où, afin de correspondre au motif précédent. Ceci me permet d'éviter une règle additionnelle.
5. Mot-question **quel** suivi soit du mot âge et du verbe avoir, soit du verbe auxiliaire et d'un nom représentant une quantité, sous forme d'énumération
6. Mot-question **quel** suivi du verbe être (forme générique du motif précédent)
7. Mot question **quand** ou groupe **en quelle année**
8. Mot question **pourquoi**
9. Mot question **combien** suivi de **de**.
10. Mot question **combien** suivi de **y a-t-il**. La différence ici est que la réponse conserve l'ordre de la question et qu'il faut transformer **y a-t-il** en **il y a**.
11. Mot-question **quel** à la fin de la question. Ce motif sert à attraper une forme moins fréquente de questions où la question est posée après le groupe affirmatif.
1. Mot-question **qui**, suivi d'un verbe auxiliaire, sous forme d'énumération partielle
2. Mot-question **qu'est-ce qu'**
3. Mot-question **que** suivi d'un verbe d'état ou d'action. J'ai ici utilisé une énumération partielle pour identifier les verbes présents dans les questions en échantillon.
4. Mot-question **où** ou de la forme **dans quelle** suivi d'une catégorie géographique, sous forme d'énumération partielle. J'ai aussi capturé la forme particulière **quelle est la capitale** où je remplace le mot **quelle** par où, afin de correspondre au motif précédent. Ceci me permet d'éviter une règle additionnelle.
5. Mot-question **quel** suivi soit du mot âge et du verbe avoir, soit du verbe auxiliaire et d'un nom représentant une quantité, sous forme d'énumération
6. Mot-question **quel** suivi du verbe être (forme générique du motif précédent)
7. Mot question **quand** ou groupe **en quelle année**
8. Mot question **pourquoi**
9. Mot question **combien** suivi de **de**.
10. Mot question **combien** suivi de **y a-t-il**. La différence ici est que la réponse conserve l'ordre de la question et qu'il faut transformer **y a-t-il** en **il y a**.
11. Mot-question **quel** à la fin de la question. Ce motif sert à attraper une forme moins fréquente de questions où la question est posée après le groupe affirmatif.
Quelques modifications au niveau de la phrase viennent ensuite *nettoyer* la résultante :
12. Suppression des inversions *-il*, *-elle*, *-t-il*, *-t-elle*
13. Inversion du pronom *vous*
14. Retrait des doubles espaces
15. Retrait des espaces au début de la phrase
16. Retrait des espaces après les apostrophes
12. Suppression des inversions *-il*, *-elle*, *-t-il*, *-t-elle*
13. Inversion du pronom *vous*
14. Retrait des doubles espaces
15. Retrait des espaces au début de la phrase
16. Retrait des espaces après les apostrophes
### Résultats
@ -48,14 +50,21 @@ Quelques modifications au niveau de la phrase viennent ensuite *nettoyer* la ré
Sur l'ensemble des questions à convertir, quatre réponses ne correspondaient pas à celles dans le fichier d'entrainement, avant d'avoir effectué les améliorations suite à la connaissance du fichier de test :
Situation 1. `Q : Qui était Galileo?`
- Comme cette question correspond au motif 1, la réponse que le module produit est **Luc Lamontagne était Galileo.**, alors qu'elle aurait du tomber dans la catégorie *autre*. Pour ce faire, cela aurait nécessité une analyse syntaxique.
Situation 2. `Q : A quelle distance se trouve la ligne de service du net au tennis?`
- Il me reste le mot distance au début de l'affirmation, que je n'arrive pas à enlever sans devoir faire une expression trop spécifique.
Situation 3. `Q : Combien de litres dans un gallon?`
- C'est la seule question de cette forme où la réponse donnée est au début et non à la fin.
Situation 4. `Q : Que fait-on avec des drapeaux usés ou périmés?`
- Encore une fois, c'est la seule version où la réponse est au début et non à la fin. Ma réponse est équivalente.
Situation 1. `Q : Qui était Galileo?`:
- Comme cette question correspond au motif 1, la réponse que le module produit est **Luc Lamontagne était Galileo.**, alors qu'elle aurait du tomber dans la catégorie *autre*. Pour ce faire, cela aurait nécessité une analyse syntaxique.
Situation 2. `Q : A quelle distance se trouve la ligne de service du net au tennis?`:
- Il me reste le mot distance au début de l'affirmation, que je n'arrive pas à enlever sans devoir faire une expression trop spécifique.
Situation 3. `Q : Combien de litres dans un gallon?`:
- C'est la seule question de cette forme où la réponse donnée est au début et non à la fin.
Situation 4. `Q : Que fait-on avec des drapeaux usés ou périmés?`:
- Encore une fois, c'est la seule version où la réponse est au début et non à la fin. Ma réponse est équivalente.
#### Fichier de test
@ -66,16 +75,19 @@ J'apporte les modifications suivantes pour diminuer le nombre d'erreurs:
- Ajout du mot `profondeur` à la règle 5: enlève une erreur
- J'ajoute un groupe de capture optionnel `est né` à la règle 7, enlève une erreur.
- Séparation de la règle 1 pour le **qui** en deux expression pour gérer les temps de verbe présent et participe passé. La réponse n'est pas au même endroit dans la phrase pour ces deux situations: enlève trois erreurs
- Ajout d'une expression régulière pour gérer "quel est le nom du chef" après celles qui gère le mot-question **qui**: enlève une erreur.
- Ajout d'une expression régulière pour gérer `quel est le nom du chef` après celles qui gère le mot-question **qui**: enlève une erreur.
- Je sépare la règle 4 pour gérer `capitale` et `emplacement` séparément. J'enlève deux erreurs dans le fichier de test mais j'ajoute une erreur dans le fichier d'entrainement à la question `Quelle est la capitale de la Yougoslavie?`, car il y a un `à` de trop dans la réponse.
J'élimine donc 8 erreurs à l'aide de 3 nouvelles expressions régulières et en améliorant une expression existante. Il subsiste 2 erreurs:
Situation 1. `Q : À quelle vitesse est le son?`
- Même erreur que la situation 2 dans le fichier d'entrainement
Situation 2. `Q : Combien de cœurs a une pieuvre?`
- Même erreur que la situation 3 dans le fichier d'entrainement
Situation 1. `Q : À quelle vitesse est le son?`:
- Même erreur que la situation 2 dans le fichier d'entrainement
Situation 2. `Q : Combien de cœurs a une pieuvre?`:
- Même erreur que la situation 3 dans le fichier d'entrainement
## Origine du nom de famille
@ -211,8 +223,8 @@ from pandas import DataFrame
- [Documentation de Seaborn](https://seaborn.pydata.org)
- [Documentation de Python 3.7: The Python Standard Library](https://docs.python.org/3.7/library/)
- Stack Overflow:
- https://stackoverflow.com/a/7716358
- https://stackoverflow.com/a/280156
- [Réponse #7716358](https://stackoverflow.com/a/7716358)
- [Réponse #280156](https://stackoverflow.com/a/280156)