You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/NLP/01_intro.qmd
+14-64Lines changed: 14 additions & 64 deletions
Original file line number
Diff line number
Diff line change
@@ -67,11 +67,8 @@ Le principal enseignement à retenir de cette partie est que les données textue
67
67
68
68
Cette partie est une introduction s'appuyant sur quelques ouvrages classiques de la littérature française ou anglo-saxonne. Seront notamment présentées quelques librairies faisant parti de la boite à outil minimale des _data scientists_: `NLTK` et `SpaCy`. Les chapitres suivants permettront de se focaliser sur la modélisation du langage.
69
69
70
-
::: {.cell .markdown}
71
-
```{=html}
72
-
<div class="alert alert-info" role="alert">
73
-
<h3 class="alert-heading"><i class="fa-solid fa-comment"></i> La librairie <code>SpaCy</code></h3>
74
-
```
70
+
::: {.note}
71
+
## La librairie SpaCy
75
72
76
73
`NTLK` est la librairie historique d'analyse textuelle en `Python`. Elle existe
77
74
depuis les années 1990. L'utilisation industrielle du NLP dans le monde
@@ -86,9 +83,6 @@ de _pipelines_ de données, il est beaucoup plus pratique à mettre en oeuvre
86
83
pour une chaîne de traitement de données textuelles mettant en oeuvre
87
84
plusieurs étapes de transformation des données.
88
85
89
-
```{=html}
90
-
</div>
91
-
```
92
86
:::
93
87
94
88
@@ -172,28 +166,18 @@ auteur, on va se focaliser dans un premier temps sur un unique mot, le mot *fear
L'exercice ci-dessous présente une représentation graphique nommée
182
172
*waffle chart*. Il s'agit d'une approche préférable aux
183
173
camemberts (_pie chart_) qui sont des graphiques manipulables car l'oeil humain se laisse
184
174
facilement berner par cette représentation graphique qui ne respecte pas
185
175
les proportions.
186
176
187
-
```{=html}
188
-
</div>
189
-
```
190
177
:::
191
178
192
-
::: {.cell .markdown}
193
-
```{=html}
194
-
<div class="alert alert-success" role="alert">
195
-
<h3 class="alert-heading"><i class="fa-solid fa-pencil"></i> Exercice 1 : Fréquence d'un mot</h3>
196
-
```
179
+
::: {.exercise}
180
+
## Exercice 1 : Fréquence d'un mot
197
181
198
182
Dans un premier temps, nous allons nous concentrer sur notre corpus anglo-saxon (`horror`)
199
183
@@ -203,9 +187,6 @@ de manière synthétique le nombre d'occurrences du mot *"fear"* par auteur.
203
187
3. Refaire l'analyse avec le mot *"horror"*.
204
188
205
189
206
-
```{=html}
207
-
</div>
208
-
```
209
190
:::
210
191
211
192
```{python}
@@ -254,6 +235,7 @@ Ceci permet d'obtenir le _waffle chart_ suivant :
254
235
#| echo: false
255
236
#| label: fig-waffle-fear
256
237
#| fig-cap: "Répartition du terme fear dans le corpus de nos trois auteurs"
238
+
#| output: true
257
239
258
240
fig.get_figure()
259
241
```
@@ -285,11 +267,7 @@ fig.get_figure()
285
267
Dans l'exercice précédent, nous faisions une recherche ponctuelle, qui ne passe pas vraiment à l'échelle. Pour généraliser cette approche, on découpe généralement un corpus en unités sémantiques indépendantes: les _tokens_.
1. En utilisant la fonction `wordCloud`, faire trois nuages de mot pour représenter les mots les plus utilisés par chaque auteur du corpus `horror`[^random_state].
503
475
2. Faire un nuage de mot du corpus `dumas` en utilisant un masque
@@ -516,9 +488,6 @@ Exemple de masque pour la question 2
516
488
517
489
[^random_state]: Pour avoir les mêmes résultats que ci-dessous, vous pouvez fixer l'argument `random_state=21`.
<h3 class="alert-heading"><i class="fa-solid fa-pencil"></i> Exercice 4 : Nettoyage du texte</h3>
730
-
```
695
+
::: {.exercise}
696
+
## Exercice 4 : Nettoyage du texte
731
697
732
698
1. Reprendre l'ouvrage de Dumas et nettoyer celui-ci avec `Spacy`. Refaire le nuage de mots et conclure.
733
699
2. Faire ce même exercice sur le jeu de données anglo-saxon. Idéalement, vous devriez être en mesure d'utiliser la fonctionnalité de _pipeline_ de `SpaCy`.
734
700
735
-
```{=html}
736
-
</div>
737
-
```
738
701
:::
739
702
740
703
```{.python include="clean_text.py"}
@@ -820,11 +783,7 @@ pour l'ordinateur et le modélisateur. Il existe plusieurs algorithmes de
820
783
*stemming*, notamment le *Porter Stemming Algorithm* ou le
0 commit comments