tableau des métriques en LaTeX et début du rapport. Makefile

This commit is contained in:
François Pelletier 2019-11-02 12:59:54 -04:00
parent e84f3820b0
commit b211b2faaa
4 changed files with 142 additions and 25 deletions

5
.gitignore vendored
View file

@ -1,2 +1,7 @@
__pycache__/
data/
*.log
*.tex
*.aux
*.pdf

5
Makefile Normal file
View file

@ -0,0 +1,5 @@
table_metriques:
pdflatex table_metriques_nb.tex
pdflatex table_metriques_rl.tex
build: rapport.md table_metriques
pandoc rapport.md -o rapport.pdf

66
rapport.md Normal file
View file

@ -0,0 +1,66 @@
---
title: IFT-7022 - Traitement automatique de la langue naturelle
author: François Pelletier (908 144 032)
date: 4 novembre 2019
geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
output: pdf_document
---
# Travail pratique 2
## Classification de textes - analyse de sentiments
### Introduction
L'objectif de cet exercice est de construire des modèles qui permettent de classifier des commentaires variés selon leur polarité. Nous disposons d'un jeu d'entraînement balancé composé de 3000 commentaires positifs et 3000 négatifs. Le jeu de test est aussi balancé et est composé de 986 commentaires positifs et 982 négatifs. Tous les commentaires sont en anglais.
### Prétraitement
Nous effectuons quatre étapes de prétraitement:
- Tokenisation
- Normalisation
- Sélection des types
- Vectorisation
Pour chacune de ces étapes, certaines techniques seront expérimentées. Celles-ci produisent, aprèsla dernière étape, une matrice creuse de caractéristiques qui servira à entraîner les différents modèles. Nous ajoutons trois caractéristiques additionnelles à cette matrice, soit les nombres de mots positifs et négatifs, et le nombre total de mot du document.
#### Tokenisation
#### Normalisation
#### Sélection des types
#### Vectorisation
### Entraînement des modèles
Deux types de modèles sont entrainés:
- Naive Bayes
- Régression logistique
#### Naive Bayes
#### Régression logistique
### Analyse de la performance
Pour chacun des modèles entraînés, différentes métriques de performance sont calculées à l'aide du jeu de données de test.
![Métriques de performance: Naive Bayes](table_metriques_nb.pdf)
![Métriques de performance: Régression logistique](table_metriques_rl.pdf)
### Conclusion
## Analyse syntaxique - portée d'une négation
### Introduction
### Conclusion
## Références

View file

@ -49,22 +49,22 @@ if __name__ == '__main__':
# Méthodes
norm_names = {
0:"Stemming",
1:"Lemmatisation"
}
select_names = {
0:"Fréquence",
1:"Mot-outils",
2:"Classe ouverte"
}
vectorizer_names = {
0:"Compteur",
1:"Occurence",
2:"TF-IDF"
}
norm_names = {
0:"Stemm.",
1:"Lemm."
}
select_names = {
0:"Fréq.",
1:"M. outil",
2:"Cl. ouv."
}
vectorizer_names = {
0:"Compt.",
1:"Occ.",
2:"TF-IDF"
}
# Tokenisation
@ -241,13 +241,54 @@ vectorizer_names = {
cm_nb[norm_m][sel_m][vect_m]+
cm_reg[norm_m][sel_m][vect_m])
table_metriques_df = pd.DataFrame(table_metriques,columns=['Normalisation',
'Sélection',
'Vectorisation',
'Précision NB',
'Rappel NB',
'Exactitude NB',
'Précision RL',
'Rappel RL',
'Exactitude RL'])
table_metriques_df = pd.DataFrame(table_metriques,columns=['Norm.',
'Sélect.',
'Vect.',
'Préc. NB',
'Rappel NB',
'Exac. NB',
'Préc. RL',
'Rappel RL',
'Exac. RL'])
# Tableau des métrique Naive Bayes
f = open("table_metriques_nb.tex","w")
f.write(
r"""
\documentclass[preview]{standalone}
\usepackage{booktabs}
\begin{document}
""")
f.write(table_metriques_df[['Norm.',
'Sélect.',
'Vect.',
'Préc. NB',
'Rappel NB',
'Exac. NB']].to_latex())
f.write(
r"""
\end{document}
""")
f.close()
# Tableau des métriques Régression logistique
f = open("table_metriques_rl.tex","w")
f.write(
r"""
\documentclass[preview]{standalone}
\usepackage{booktabs}
\begin{document}
""")
f.write(table_metriques_df[['Norm.',
'Sélect.',
'Vect.',
'Préc. RL',
'Rappel RL',
'Exac. RL']].to_latex())
f.write(
r"""
\end{document}
""")
f.close()