{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true, "pycharm": { "name": "#%% md\n" } }, "source": [ "# La loi de Zipf illustrée avec gutenbergr en R 🇫🇷\n", "\n", "[Xiaoou WANG](https://scholar.google.fr/citations?user=vKAMMpwAAAAJ&hl=en)\n", "\n", "Il s'agit de montrer quelques aspects de la loi de Zipf avec 3 textes (Wuthering Heights, Madame Bovary et Faust) récupérés du site Gutenberg.\n", "\n", "## Packages utilisés\n", "\n", "Les trois packages/ensemble de packages utilisés sont `gutenbergr`,`tidyverse` et `gridExtra` (pour afficher des multi-plots)." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2021-03-21T16:14:34.957457Z", "start_time": "2021-03-21T16:14:34.938Z" }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "options(tidyverse.quiet = TRUE) # omettre les warnings pour ne pas encombrer le document\n", "library(gutenbergr)\n", "library(tidyverse)\n", "library(gridExtra)\n", "options(gridExtra.quiet = TRUE)\n", "# center plot title\n", "theme_update(plot.title = element_text(hjust = 0.5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Workflow général\n", "\n", "1. On prédéfinit les titres des 3 œuvres qui seront proposées à l'utiliseur et produit par la suite un dataframe contenant les métadatas\n", "\n", "```r\n", "eng.title <- \"Wuthering Heights\"\n", "fr.title <- \"Madame Bovary\"\n", "de.title <- \"Faust: Der Tragödie erster Teil\"\n", "\n", "# Get meta infos\n", "metas <- get_books_meta(eng.title, fr.title, de.title)\n", "```\n", "\n", "2. On définit une fonction main qui comprend toutes les étapes restantes allant de la saisie de l'utilisateur jusqu'à la génération et de la sauvegarde des graphes.\n", "\n", "```r\n", "main(metas)\n", "```" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2021-03-21T12:48:42.368717Z", "start_time": "2021-03-21T12:48:42.351Z" } }, "source": [ "## Explication de la fonction get_books_meta\n", "\n", "La fonction `get_books_meta` prend les titres des 3 oeuvres comme entrées et produit un dataframe des informations des 3 œuvres en question en filtrant les métadatas du package `guternbergr` sur les colonnes `titre` et `language`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-03-21T12:50:00.372958Z", "start_time": "2021-03-21T12:50:00.334Z" } }, "outputs": [ { "data": { "text/html": [ "
gutenberg_id | title | author | gutenberg_author_id | language | gutenberg_bookshelf | rights | has_text |
---|---|---|---|---|---|---|---|
<int> | <chr> | <chr> | <int> | <chr> | <chr> | <chr> | <lgl> |
768 | Wuthering Heights | Brontë, Emily | 405 | en | Gothic Fiction/Movie Books/Best Books Ever Listings | Public domain in the USA. | TRUE |
14155 | Madame Bovary | Flaubert, Gustave | 574 | fr | Best Books Ever Listings/FR Littérature/Banned Books from Anne Haight's list | Public domain in the USA. | TRUE |
2229 | Faust: Der Tragödie erster Teil | Goethe, Johann Wolfgang von | 586 | de | Harvard Classics/Best Books Ever Listings/DE Drama | Public domain in the USA. | TRUE |