Skip to content

Commit 56b6442

Browse files
authored
Version anglaise du chapitre numpy (#516)
* exercise callout * english version numpy * dev english version * cleaning
1 parent 065b0ab commit 56b6442

27 files changed

+924
-566
lines changed

_quarto.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ project:
1212
- content/getting-started/06_rappels_fonctions.qmd
1313
- content/getting-started/07_rappels_classes.qmd
1414
- content/manipulation/index.qmd
15+
- content/manipulation/01_numpy_en.qmd
16+
- content/manipulation/01_numpy.qmd
1517
- content/manipulation/02_pandas_intro.qmd
1618
- content/visualisation/index.qmd
1719
- content/modelisation/index.qmd

content/NLP/01_intro-old.qmd

Lines changed: 0 additions & 47 deletions
This file was deleted.

content/NLP/01_intro.qmd

Lines changed: 14 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,8 @@ Le principal enseignement à retenir de cette partie est que les données textue
6767

6868
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.
6969

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
7572

7673
`NTLK` est la librairie historique d'analyse textuelle en `Python`. Elle existe
7774
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
8683
pour une chaîne de traitement de données textuelles mettant en oeuvre
8784
plusieurs étapes de transformation des données.
8885

89-
```{=html}
90-
</div>
91-
```
9286
:::
9387

9488

@@ -172,28 +166,18 @@ auteur, on va se focaliser dans un premier temps sur un unique mot, le mot *fear
172166
## Exploration ponctuelle
173167

174168

175-
::: {.cell .markdown}
176-
```{=html}
177-
<div class="alert alert-info" role="alert">
178-
<h3 class="alert-heading"><i class="fa-solid fa-comment"></i> Note</h3>
179-
```
169+
::: {.tip}
180170

181171
L'exercice ci-dessous présente une représentation graphique nommée
182172
*waffle chart*. Il s'agit d'une approche préférable aux
183173
camemberts (_pie chart_) qui sont des graphiques manipulables car l'oeil humain se laisse
184174
facilement berner par cette représentation graphique qui ne respecte pas
185175
les proportions.
186176

187-
```{=html}
188-
</div>
189-
```
190177
:::
191178

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
197181

198182
Dans un premier temps, nous allons nous concentrer sur notre corpus anglo-saxon (`horror`)
199183

@@ -203,9 +187,6 @@ de manière synthétique le nombre d'occurrences du mot *"fear"* par auteur.
203187
3. Refaire l'analyse avec le mot *"horror"*.
204188

205189

206-
```{=html}
207-
</div>
208-
```
209190
:::
210191

211192
```{python}
@@ -254,6 +235,7 @@ Ceci permet d'obtenir le _waffle chart_ suivant :
254235
#| echo: false
255236
#| label: fig-waffle-fear
256237
#| fig-cap: "Répartition du terme fear dans le corpus de nos trois auteurs"
238+
#| output: true
257239
258240
fig.get_figure()
259241
```
@@ -285,11 +267,7 @@ fig.get_figure()
285267
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_.
286268

287269

288-
::: {.cell .markdown}
289-
```{=html}
290-
<div class="alert alert-warning" role="alert">
291-
<h3 class="alert-heading"><i class="fa-solid fa-lightbulb"></i> Hint</h3>
292-
```
270+
::: {.tip}
293271

294272
Nous allons avoir besoin d'importer un certain nombre de corpus prêts à l'emploi pour utiliser les librairies `NTLK` ou `SpaCy`.
295273

@@ -312,9 +290,6 @@ Pour la seconde,
312290
313291
```
314292

315-
```{=html}
316-
</div>
317-
```
318293
:::
319294

320295

@@ -493,11 +468,8 @@ avec le module `Wordcloud`. Quelques paramètres de mise en forme
493468
permettent même d'ajuster la forme du nuage à
494469
une image.
495470

496-
::: {.cell .markdown}
497-
```{=html}
498-
<div class="alert alert-success" role="alert">
499-
<h3 class="alert-heading"><i class="fa-solid fa-pencil"></i> Exercice 3 : Wordcloud</h3>
500-
```
471+
::: {.exercise}
472+
## Exercice 3 : Wordcloud
501473

502474
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].
503475
2. Faire un nuage de mot du corpus `dumas` en utilisant un masque
@@ -516,9 +488,6 @@ Exemple de masque pour la question 2
516488

517489
[^random_state]: Pour avoir les mêmes résultats que ci-dessous, vous pouvez fixer l'argument `random_state=21`.
518490

519-
```{=html}
520-
</div>
521-
```
522491
:::
523492

524493
```{python}
@@ -723,18 +692,12 @@ stop_words_french = nlp.Defaults.stop_words
723692
", ".join(stop_words_french)
724693
```
725694

726-
::: {.cell .markdown}
727-
```{=html}
728-
<div class="alert alert-success" role="alert">
729-
<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
731697

732698
1. Reprendre l'ouvrage de Dumas et nettoyer celui-ci avec `Spacy`. Refaire le nuage de mots et conclure.
733699
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`.
734700

735-
```{=html}
736-
</div>
737-
```
738701
:::
739702

740703
```{.python include="clean_text.py"}
@@ -820,11 +783,7 @@ pour l'ordinateur et le modélisateur. Il existe plusieurs algorithmes de
820783
*stemming*, notamment le *Porter Stemming Algorithm* ou le
821784
*Snowball Stemming Algorithm*.
822785

823-
::: {.cell .markdown}
824-
```{=html}
825-
<div class="alert alert-info" role="alert">
826-
<h3 class="alert-heading"><i class="fa-solid fa-comment"></i> Note</h3>
827-
```
786+
::: {.note}
828787
Pour disposer du corpus nécessaire à la lemmatisation, il faut, la première fois,
829788
télécharger celui-ci grâce aux commandes suivantes :
830789

@@ -834,9 +793,6 @@ nltk.download('wordnet')
834793
nltk.download('omw-1.4')
835794
~~~
836795

837-
```{=html}
838-
</div>
839-
```
840796
:::
841797

842798
Prenons cette chaine de caractère,
@@ -872,17 +828,11 @@ for word in ["women","daughters", "leaves"]:
872828
```
873829

874830

875-
::: {.cell .markdown}
876-
```{=html}
877-
<div class="alert alert-success" role="alert">
878-
<h3 class="alert-heading"><i class="fa-solid fa-pencil"></i> Exercice 5 : Lemmatisation avec nltk</h3>
879-
```
831+
::: {.exercise}
832+
## Exercice 5 : Lemmatisation avec nltk
880833

881834
Sur le modèle précédent, utiliser un `WordNetLemmatizer` sur le corpus `dumas[1030:1200]` et observer le résultat.
882835

883-
```{=html}
884-
</div>
885-
```
886836
:::
887837

888838
La version lemmatisée de ce petit morceau de l'oeuvre de Dumas est la suivante:

content/NLP/02_exoclean-old.qmd

Lines changed: 0 additions & 62 deletions
This file was deleted.

0 commit comments

Comments
 (0)