From 4e8c9437cc44eaaf938d88de5c9a87d9c0e34fea Mon Sep 17 00:00:00 2001 From: feb2301522924f68234e7a552680f397 Date: Sat, 3 Jun 2023 11:55:27 +0000 Subject: [PATCH] Upload New File --- module3_exo3_exercice.ipynb | 3077 +++++++++++++++++++++++++++++++++++ 1 file changed, 3077 insertions(+) create mode 100644 module3_exo3_exercice.ipynb diff --git a/module3_exo3_exercice.ipynb b/module3_exo3_exercice.ipynb new file mode 100644 index 0000000..351e571 --- /dev/null +++ b/module3_exo3_exercice.ipynb @@ -0,0 +1,3077 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Analyse des dialogues dans l'Avare de Molière" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import urllib.request\n", + "from pathlib import Path\n", + "from xml.etree import ElementTree" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "L’[Observatoire de la vie littéraire (OBVIL)](http://obvil.sorbonne-universite.site/obvil/presentation) promeut une approche de l'analyse des textes littéraires fondée sur le numérique. Dans le cadre du Projet Molière, des pièces de cet auteur ont été numérisées et sont accessibles librement dans différents formats utilisables par un programme informatique.\n", + "\n", + "Pour l'Avare de Molière, voici les formats disponibles : TEI, epub, kindle, markdown, Texte iramuteq, Texte dit/Paroles, TXM, html complet avec table des matières, fragment html.\n", + "\n", + "Ici nous utilisons le format [TEI](https://fr.wikipedia.org/wiki/Text_Encoding_Initiative), plus approprier pour l'analyse des dialogues." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "data_url = \"https://dramacode.github.io/moliere/moliere_avare.xml\"\n", + "data_file = \"moliere_avare.xml\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nous téléchargeons le fichier si il n'est pas disponible localement, cela est utile pour travailler sans acces internet ou dans le cas où les données changent ou deviennent inaccessibles." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + " if not Path(data_file).exists():\n", + " urllib.request.urlretrieve(data_url, data_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nous chargeons le TEI dans un dataset pandas. Le fichier XML est composé de lignes de dialogue organisées en scene puis en acte. Le dataframe doit avoir la structure suivante :\n", + "\n", + "| Colonne | Description |\n", + "| :------ | :-------------------------------------- |\n", + "| act | L'acte dans lequel se passe le dialogue |\n", + "| scene | La scene |\n", + "| dialog | L'identifiant de la ligne de dialog |\n", + "| speaker | La personne qui parle |\n", + "| text | Le text du dialogue |" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
actscenedialogspeakertext
011I01-1valereHé quoi, charmante Élise, vous devenez mélanco...
111I01-2eliseNon, Valère, je ne puis pas me repentir de tou...
211I01-3valereHé que pouvez-vous craindre, Élise, dans les b...
311I01-4eliseHélas ! cent choses à la fois : L'emportement ...
411I01-5valereAh ! ne me faites pas ce tort, de juger de moi...
511I01-6eliseAh ! Valère, chacun tient les mêmes discours.\\...
611I01-7valerePuisque les seules actions font connaître ce q...
711I01-8eliseHélas ! qu'avec facilité on se laisse persuade...
811I01-9valereMais pourquoi cette inquiétude ?
911I01-10eliseJe n'aurais rien à craindre, si tout le monde ...
1011I01-11valereDe tout ce que vous avez dit, ce n'est que par...
1111I01-12eliseAh ! Valère, ne bougez d'ici, je vous prie ; e...
1211I01-13valereVous voyez comme je m'y prends, et les adroite...
1311I01-14eliseMais que ne tâchez-vous aussi à gagner l'appui...
1411I01-15valereOn ne peut pas ménager l'un et l'autre ; et l'...
1511I01-16eliseJe ne sais si j'aurai la force de lui faire ce...
1612I02-1cleanteJe suis bien aise de vous trouver seule, ma Sœ...
1712I02-2eliseMe voilà prête à vous ouïr, mon Frère. \\nQu'av...
1812I02-3cleanteBien des choses, ma Sœur, enveloppées dans un ...
1912I02-4eliseVous aimez ?
2012I02-5cleanteOui, j'aime.\\nMais avant que d'aller plus loin...
2112I02-6eliseVous êtes-vous engagé, mon Frère, avec celle q...
2212I02-7cleanteNon ; mais j'y suis résolu ; et je vous conjur...
2312I02-8eliseSuis-je, mon Frère, une si étrange personne ?
2412I02-9cleanteNon, ma Sœur, mais vous n'aimez pas.\\nVous ign...
2512I02-10eliseHélas ! mon Frère, ne parlons point de ma sage...
2612I02-11cleanteAh ! plût au Ciel que votre âme comme la mienne…
2712I02-12eliseFinissons auparavant votre affaire, et me dite...
2812I02-13cleanteUne jeune personne qui loge depuis peu en ces ...
2912I02-14eliseJ'en vois beaucoup, mon Frère, dans les choses...
..................
92955V05-39harpagonMaître Jacques.
93055V05-40valereC'est toi qui le dis ?
93155V05-41maitre-jacquesVous voyez que je ne dis rien.
93255V05-42harpagonOui. Voilà Monsieur le Commissaire qui a reçu ...
93355V05-43valerePouvez-vous me croire capable d'une action si ...
93455V05-44harpagonCapable, ou non capable, je veux ravoir mon ar...
93556V06-1cleanteNe vous tourmentez point, mon Père, et n'accus...
93656V06-2harpagonOù est-il ?
93756V06-3cleanteNe vous en mettez point en peine. \\nIl est en ...
93856V06-4harpagonN'en a-t-on rien ôté ?
93956V06-5cleanteRien du tout. \\nVoyez si c'est votre dessein d...
94056V06-6marianeMais vous ne savez pas, que ce n'est pas assez...
94156V06-7anselmeLe Ciel, mes Enfants, ne me redonne point à vo...
94256V06-8harpagonIl faut, pour me donner conseil, que je voie m...
94356V06-9cleanteVous la verrez saine et entière.
94456V06-10harpagonJe n'ai point d'argent à donner en mariage à m...
94556V06-11anselmeHé bien, j'en ai pour eux, que cela ne vous in...
94656V06-12harpagonVous obligerez-vous à faire tous les frais de ...
94756V06-13anselmeOui, je m'y oblige.\\nÊtes-vous satisfait ?
94856V06-14harpagonOui, pourvu que pour les Noces vous me fassiez...
94956V06-15anselmeD'accord. \\nAllons jouir de l'allégresse que c...
95056V06-16commissaireHolà, Messieurs, holà.\\nTout doucement, s'il v...
95156V06-17harpagonNous n'avons que faire de vos écritures.
95256V06-18commissaireOui.\\nMais je ne prétends pas, moi, les avoir ...
95356V06-19harpagonPour votre paiement, voilà un Homme que je vou...
95456V06-20maitre-jacquesHélas ! comment faut-il donc faire ? \\nOn me d...
95556V06-21anselmeSeigneur Harpagon, il faut lui pardonner cette...
95656V06-22harpagonVous payerez donc le Commissaire ?
95756V06-23anselmeSoit. \\nAllons vite faire part de notre joie à...
95856V06-24harpagonEt moi, voir ma chère Cassette.
\n", + "

959 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " act scene dialog speaker \\\n", + "0 1 1 I01-1 valere \n", + "1 1 1 I01-2 elise \n", + "2 1 1 I01-3 valere \n", + "3 1 1 I01-4 elise \n", + "4 1 1 I01-5 valere \n", + "5 1 1 I01-6 elise \n", + "6 1 1 I01-7 valere \n", + "7 1 1 I01-8 elise \n", + "8 1 1 I01-9 valere \n", + "9 1 1 I01-10 elise \n", + "10 1 1 I01-11 valere \n", + "11 1 1 I01-12 elise \n", + "12 1 1 I01-13 valere \n", + "13 1 1 I01-14 elise \n", + "14 1 1 I01-15 valere \n", + "15 1 1 I01-16 elise \n", + "16 1 2 I02-1 cleante \n", + "17 1 2 I02-2 elise \n", + "18 1 2 I02-3 cleante \n", + "19 1 2 I02-4 elise \n", + "20 1 2 I02-5 cleante \n", + "21 1 2 I02-6 elise \n", + "22 1 2 I02-7 cleante \n", + "23 1 2 I02-8 elise \n", + "24 1 2 I02-9 cleante \n", + "25 1 2 I02-10 elise \n", + "26 1 2 I02-11 cleante \n", + "27 1 2 I02-12 elise \n", + "28 1 2 I02-13 cleante \n", + "29 1 2 I02-14 elise \n", + ".. .. ... ... ... \n", + "929 5 5 V05-39 harpagon \n", + "930 5 5 V05-40 valere \n", + "931 5 5 V05-41 maitre-jacques \n", + "932 5 5 V05-42 harpagon \n", + "933 5 5 V05-43 valere \n", + "934 5 5 V05-44 harpagon \n", + "935 5 6 V06-1 cleante \n", + "936 5 6 V06-2 harpagon \n", + "937 5 6 V06-3 cleante \n", + "938 5 6 V06-4 harpagon \n", + "939 5 6 V06-5 cleante \n", + "940 5 6 V06-6 mariane \n", + "941 5 6 V06-7 anselme \n", + "942 5 6 V06-8 harpagon \n", + "943 5 6 V06-9 cleante \n", + "944 5 6 V06-10 harpagon \n", + "945 5 6 V06-11 anselme \n", + "946 5 6 V06-12 harpagon \n", + "947 5 6 V06-13 anselme \n", + "948 5 6 V06-14 harpagon \n", + "949 5 6 V06-15 anselme \n", + "950 5 6 V06-16 commissaire \n", + "951 5 6 V06-17 harpagon \n", + "952 5 6 V06-18 commissaire \n", + "953 5 6 V06-19 harpagon \n", + "954 5 6 V06-20 maitre-jacques \n", + "955 5 6 V06-21 anselme \n", + "956 5 6 V06-22 harpagon \n", + "957 5 6 V06-23 anselme \n", + "958 5 6 V06-24 harpagon \n", + "\n", + " text \n", + "0 Hé quoi, charmante Élise, vous devenez mélanco... \n", + "1 Non, Valère, je ne puis pas me repentir de tou... \n", + "2 Hé que pouvez-vous craindre, Élise, dans les b... \n", + "3 Hélas ! cent choses à la fois : L'emportement ... \n", + "4 Ah ! ne me faites pas ce tort, de juger de moi... \n", + "5 Ah ! Valère, chacun tient les mêmes discours.\\... \n", + "6 Puisque les seules actions font connaître ce q... \n", + "7 Hélas ! qu'avec facilité on se laisse persuade... \n", + "8 Mais pourquoi cette inquiétude ? \n", + "9 Je n'aurais rien à craindre, si tout le monde ... \n", + "10 De tout ce que vous avez dit, ce n'est que par... \n", + "11 Ah ! Valère, ne bougez d'ici, je vous prie ; e... \n", + "12 Vous voyez comme je m'y prends, et les adroite... \n", + "13 Mais que ne tâchez-vous aussi à gagner l'appui... \n", + "14 On ne peut pas ménager l'un et l'autre ; et l'... \n", + "15 Je ne sais si j'aurai la force de lui faire ce... \n", + "16 Je suis bien aise de vous trouver seule, ma Sœ... \n", + "17 Me voilà prête à vous ouïr, mon Frère. \\nQu'av... \n", + "18 Bien des choses, ma Sœur, enveloppées dans un ... \n", + "19 Vous aimez ? \n", + "20 Oui, j'aime.\\nMais avant que d'aller plus loin... \n", + "21 Vous êtes-vous engagé, mon Frère, avec celle q... \n", + "22 Non ; mais j'y suis résolu ; et je vous conjur... \n", + "23 Suis-je, mon Frère, une si étrange personne ? \n", + "24 Non, ma Sœur, mais vous n'aimez pas.\\nVous ign... \n", + "25 Hélas ! mon Frère, ne parlons point de ma sage... \n", + "26 Ah ! plût au Ciel que votre âme comme la mienne… \n", + "27 Finissons auparavant votre affaire, et me dite... \n", + "28 Une jeune personne qui loge depuis peu en ces ... \n", + "29 J'en vois beaucoup, mon Frère, dans les choses... \n", + ".. ... \n", + "929 Maître Jacques. \n", + "930 C'est toi qui le dis ? \n", + "931 Vous voyez que je ne dis rien. \n", + "932 Oui. Voilà Monsieur le Commissaire qui a reçu ... \n", + "933 Pouvez-vous me croire capable d'une action si ... \n", + "934 Capable, ou non capable, je veux ravoir mon ar... \n", + "935 Ne vous tourmentez point, mon Père, et n'accus... \n", + "936 Où est-il ? \n", + "937 Ne vous en mettez point en peine. \\nIl est en ... \n", + "938 N'en a-t-on rien ôté ? \n", + "939 Rien du tout. \\nVoyez si c'est votre dessein d... \n", + "940 Mais vous ne savez pas, que ce n'est pas assez... \n", + "941 Le Ciel, mes Enfants, ne me redonne point à vo... \n", + "942 Il faut, pour me donner conseil, que je voie m... \n", + "943 Vous la verrez saine et entière. \n", + "944 Je n'ai point d'argent à donner en mariage à m... \n", + "945 Hé bien, j'en ai pour eux, que cela ne vous in... \n", + "946 Vous obligerez-vous à faire tous les frais de ... \n", + "947 Oui, je m'y oblige.\\nÊtes-vous satisfait ? \n", + "948 Oui, pourvu que pour les Noces vous me fassiez... \n", + "949 D'accord. \\nAllons jouir de l'allégresse que c... \n", + "950 Holà, Messieurs, holà.\\nTout doucement, s'il v... \n", + "951 Nous n'avons que faire de vos écritures. \n", + "952 Oui.\\nMais je ne prétends pas, moi, les avoir ... \n", + "953 Pour votre paiement, voilà un Homme que je vou... \n", + "954 Hélas ! comment faut-il donc faire ? \\nOn me d... \n", + "955 Seigneur Harpagon, il faut lui pardonner cette... \n", + "956 Vous payerez donc le Commissaire ? \n", + "957 Soit. \\nAllons vite faire part de notre joie à... \n", + "958 Et moi, voir ma chère Cassette. \n", + "\n", + "[959 rows x 5 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "namespaces = {\"ns0\": \"http://www.tei-c.org/ns/1.0\", \"xml\": \"http://www.w3.org/XML/1998/namespace\"}\n", + "cols = [\"act\", \"scene\", \"dialog\", \"speaker\", \"text\"]\n", + "rows = []\n", + " \n", + "# Parsing the XML file\n", + "tree = ElementTree.parse(data_file).getroot()\n", + "\n", + "for act in tree.findall(\".//*[@type='act']\"): # Use Xpath\n", + " act_id = act.attrib['n']\n", + " \n", + " for scene in act.findall(\"*[@type='scene']\"):\n", + " scene_id = scene.attrib['n']\n", + " \n", + " for dialog in scene.findall(\"ns0:sp\", namespaces=namespaces):\n", + " dialog_id = dialog.attrib['{http://www.w3.org/XML/1998/namespace}id']\n", + " speaker = dialog.attrib[\"who\"]\n", + " text = '\\n'.join([sentence.text or '' for sentence in dialog.findall(\".//ns0:s\", namespaces=namespaces)])\n", + "\n", + " rows.append({\n", + " \"act\": act_id,\n", + " \"scene\": scene_id,\n", + " \"dialog\": dialog_id,\n", + " \"speaker\": speaker,\n", + " \"text\": text\n", + " })\n", + " \n", + "data = pd.DataFrame(rows, columns=cols)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classification des personnages par temps de paroles\n", + "Nous commençons par indexé l'acte" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
actscenespeakertext
dialog
I01-111valereHé quoi, charmante Élise, vous devenez mélanco...
I01-1011eliseJe n'aurais rien à craindre, si tout le monde ...
I01-1111valereDe tout ce que vous avez dit, ce n'est que par...
I01-1211eliseAh ! Valère, ne bougez d'ici, je vous prie ; e...
I01-1311valereVous voyez comme je m'y prends, et les adroite...
I01-1411eliseMais que ne tâchez-vous aussi à gagner l'appui...
I01-1511valereOn ne peut pas ménager l'un et l'autre ; et l'...
I01-1611eliseJe ne sais si j'aurai la force de lui faire ce...
I01-211eliseNon, Valère, je ne puis pas me repentir de tou...
I01-311valereHé que pouvez-vous craindre, Élise, dans les b...
I01-411eliseHélas ! cent choses à la fois : L'emportement ...
I01-511valereAh ! ne me faites pas ce tort, de juger de moi...
I01-611eliseAh ! Valère, chacun tient les mêmes discours.\\...
I01-711valerePuisque les seules actions font connaître ce q...
I01-811eliseHélas ! qu'avec facilité on se laisse persuade...
I01-911valereMais pourquoi cette inquiétude ?
I02-112cleanteJe suis bien aise de vous trouver seule, ma Sœ...
I02-1012eliseHélas ! mon Frère, ne parlons point de ma sage...
I02-1112cleanteAh ! plût au Ciel que votre âme comme la mienne…
I02-1212eliseFinissons auparavant votre affaire, et me dite...
I02-1312cleanteUne jeune personne qui loge depuis peu en ces ...
I02-1412eliseJ'en vois beaucoup, mon Frère, dans les choses...
I02-1512cleanteJ'ai découvert sous main, qu'elles ne sont pas...
I02-1612eliseOui, je conçois assez, mon Frère, quel doit êt...
I02-1712cleanteAh ! ma Sœur, il est plus grand qu'on ne peut ...
I02-1812eliseIl est bien vrai que tous les jours il nous do...
I02-1912cleanteJ'entends sa voix. \\nÉloignons-nous un peu, po...
I02-212eliseMe voilà prête à vous ouïr, mon Frère. \\nQu'av...
I02-312cleanteBien des choses, ma Sœur, enveloppées dans un ...
I02-412eliseVous aimez ?
...............
V05-4455harpagonCapable, ou non capable, je veux ravoir mon ar...
V05-555anselmeCe n'est pas mon dessein de me faire épouser p...
V05-655harpagonVoilà Monsieur, qui est un honnête Commissaire...
V05-755valereJe ne vois pas quel crime on me peut faire de ...
V05-855harpagonJe me moque de tous ces contes ; et le Monde a...
V05-955valereSachez que j'ai le cœur trop bon, pour me pare...
V06-156cleanteNe vous tourmentez point, mon Père, et n'accus...
V06-1056harpagonJe n'ai point d'argent à donner en mariage à m...
V06-1156anselmeHé bien, j'en ai pour eux, que cela ne vous in...
V06-1256harpagonVous obligerez-vous à faire tous les frais de ...
V06-1356anselmeOui, je m'y oblige.\\nÊtes-vous satisfait ?
V06-1456harpagonOui, pourvu que pour les Noces vous me fassiez...
V06-1556anselmeD'accord. \\nAllons jouir de l'allégresse que c...
V06-1656commissaireHolà, Messieurs, holà.\\nTout doucement, s'il v...
V06-1756harpagonNous n'avons que faire de vos écritures.
V06-1856commissaireOui.\\nMais je ne prétends pas, moi, les avoir ...
V06-1956harpagonPour votre paiement, voilà un Homme que je vou...
V06-256harpagonOù est-il ?
V06-2056maitre-jacquesHélas ! comment faut-il donc faire ? \\nOn me d...
V06-2156anselmeSeigneur Harpagon, il faut lui pardonner cette...
V06-2256harpagonVous payerez donc le Commissaire ?
V06-2356anselmeSoit. \\nAllons vite faire part de notre joie à...
V06-2456harpagonEt moi, voir ma chère Cassette.
V06-356cleanteNe vous en mettez point en peine. \\nIl est en ...
V06-456harpagonN'en a-t-on rien ôté ?
V06-556cleanteRien du tout. \\nVoyez si c'est votre dessein d...
V06-656marianeMais vous ne savez pas, que ce n'est pas assez...
V06-756anselmeLe Ciel, mes Enfants, ne me redonne point à vo...
V06-856harpagonIl faut, pour me donner conseil, que je voie m...
V06-956cleanteVous la verrez saine et entière.
\n", + "

959 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " act scene speaker \\\n", + "dialog \n", + "I01-1 1 1 valere \n", + "I01-10 1 1 elise \n", + "I01-11 1 1 valere \n", + "I01-12 1 1 elise \n", + "I01-13 1 1 valere \n", + "I01-14 1 1 elise \n", + "I01-15 1 1 valere \n", + "I01-16 1 1 elise \n", + "I01-2 1 1 elise \n", + "I01-3 1 1 valere \n", + "I01-4 1 1 elise \n", + "I01-5 1 1 valere \n", + "I01-6 1 1 elise \n", + "I01-7 1 1 valere \n", + "I01-8 1 1 elise \n", + "I01-9 1 1 valere \n", + "I02-1 1 2 cleante \n", + "I02-10 1 2 elise \n", + "I02-11 1 2 cleante \n", + "I02-12 1 2 elise \n", + "I02-13 1 2 cleante \n", + "I02-14 1 2 elise \n", + "I02-15 1 2 cleante \n", + "I02-16 1 2 elise \n", + "I02-17 1 2 cleante \n", + "I02-18 1 2 elise \n", + "I02-19 1 2 cleante \n", + "I02-2 1 2 elise \n", + "I02-3 1 2 cleante \n", + "I02-4 1 2 elise \n", + "... .. ... ... \n", + "V05-44 5 5 harpagon \n", + "V05-5 5 5 anselme \n", + "V05-6 5 5 harpagon \n", + "V05-7 5 5 valere \n", + "V05-8 5 5 harpagon \n", + "V05-9 5 5 valere \n", + "V06-1 5 6 cleante \n", + "V06-10 5 6 harpagon \n", + "V06-11 5 6 anselme \n", + "V06-12 5 6 harpagon \n", + "V06-13 5 6 anselme \n", + "V06-14 5 6 harpagon \n", + "V06-15 5 6 anselme \n", + "V06-16 5 6 commissaire \n", + "V06-17 5 6 harpagon \n", + "V06-18 5 6 commissaire \n", + "V06-19 5 6 harpagon \n", + "V06-2 5 6 harpagon \n", + "V06-20 5 6 maitre-jacques \n", + "V06-21 5 6 anselme \n", + "V06-22 5 6 harpagon \n", + "V06-23 5 6 anselme \n", + "V06-24 5 6 harpagon \n", + "V06-3 5 6 cleante \n", + "V06-4 5 6 harpagon \n", + "V06-5 5 6 cleante \n", + "V06-6 5 6 mariane \n", + "V06-7 5 6 anselme \n", + "V06-8 5 6 harpagon \n", + "V06-9 5 6 cleante \n", + "\n", + " text \n", + "dialog \n", + "I01-1 Hé quoi, charmante Élise, vous devenez mélanco... \n", + "I01-10 Je n'aurais rien à craindre, si tout le monde ... \n", + "I01-11 De tout ce que vous avez dit, ce n'est que par... \n", + "I01-12 Ah ! Valère, ne bougez d'ici, je vous prie ; e... \n", + "I01-13 Vous voyez comme je m'y prends, et les adroite... \n", + "I01-14 Mais que ne tâchez-vous aussi à gagner l'appui... \n", + "I01-15 On ne peut pas ménager l'un et l'autre ; et l'... \n", + "I01-16 Je ne sais si j'aurai la force de lui faire ce... \n", + "I01-2 Non, Valère, je ne puis pas me repentir de tou... \n", + "I01-3 Hé que pouvez-vous craindre, Élise, dans les b... \n", + "I01-4 Hélas ! cent choses à la fois : L'emportement ... \n", + "I01-5 Ah ! ne me faites pas ce tort, de juger de moi... \n", + "I01-6 Ah ! Valère, chacun tient les mêmes discours.\\... \n", + "I01-7 Puisque les seules actions font connaître ce q... \n", + "I01-8 Hélas ! qu'avec facilité on se laisse persuade... \n", + "I01-9 Mais pourquoi cette inquiétude ? \n", + "I02-1 Je suis bien aise de vous trouver seule, ma Sœ... \n", + "I02-10 Hélas ! mon Frère, ne parlons point de ma sage... \n", + "I02-11 Ah ! plût au Ciel que votre âme comme la mienne… \n", + "I02-12 Finissons auparavant votre affaire, et me dite... \n", + "I02-13 Une jeune personne qui loge depuis peu en ces ... \n", + "I02-14 J'en vois beaucoup, mon Frère, dans les choses... \n", + "I02-15 J'ai découvert sous main, qu'elles ne sont pas... \n", + "I02-16 Oui, je conçois assez, mon Frère, quel doit êt... \n", + "I02-17 Ah ! ma Sœur, il est plus grand qu'on ne peut ... \n", + "I02-18 Il est bien vrai que tous les jours il nous do... \n", + "I02-19 J'entends sa voix. \\nÉloignons-nous un peu, po... \n", + "I02-2 Me voilà prête à vous ouïr, mon Frère. \\nQu'av... \n", + "I02-3 Bien des choses, ma Sœur, enveloppées dans un ... \n", + "I02-4 Vous aimez ? \n", + "... ... \n", + "V05-44 Capable, ou non capable, je veux ravoir mon ar... \n", + "V05-5 Ce n'est pas mon dessein de me faire épouser p... \n", + "V05-6 Voilà Monsieur, qui est un honnête Commissaire... \n", + "V05-7 Je ne vois pas quel crime on me peut faire de ... \n", + "V05-8 Je me moque de tous ces contes ; et le Monde a... \n", + "V05-9 Sachez que j'ai le cœur trop bon, pour me pare... \n", + "V06-1 Ne vous tourmentez point, mon Père, et n'accus... \n", + "V06-10 Je n'ai point d'argent à donner en mariage à m... \n", + "V06-11 Hé bien, j'en ai pour eux, que cela ne vous in... \n", + "V06-12 Vous obligerez-vous à faire tous les frais de ... \n", + "V06-13 Oui, je m'y oblige.\\nÊtes-vous satisfait ? \n", + "V06-14 Oui, pourvu que pour les Noces vous me fassiez... \n", + "V06-15 D'accord. \\nAllons jouir de l'allégresse que c... \n", + "V06-16 Holà, Messieurs, holà.\\nTout doucement, s'il v... \n", + "V06-17 Nous n'avons que faire de vos écritures. \n", + "V06-18 Oui.\\nMais je ne prétends pas, moi, les avoir ... \n", + "V06-19 Pour votre paiement, voilà un Homme que je vou... \n", + "V06-2 Où est-il ? \n", + "V06-20 Hélas ! comment faut-il donc faire ? \\nOn me d... \n", + "V06-21 Seigneur Harpagon, il faut lui pardonner cette... \n", + "V06-22 Vous payerez donc le Commissaire ? \n", + "V06-23 Soit. \\nAllons vite faire part de notre joie à... \n", + "V06-24 Et moi, voir ma chère Cassette. \n", + "V06-3 Ne vous en mettez point en peine. \\nIl est en ... \n", + "V06-4 N'en a-t-on rien ôté ? \n", + "V06-5 Rien du tout. \\nVoyez si c'est votre dessein d... \n", + "V06-6 Mais vous ne savez pas, que ce n'est pas assez... \n", + "V06-7 Le Ciel, mes Enfants, ne me redonne point à vo... \n", + "V06-8 Il faut, pour me donner conseil, que je voie m... \n", + "V06-9 Vous la verrez saine et entière. \n", + "\n", + "[959 rows x 4 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data = data.set_index('dialog').sort_index()\n", + "sorted_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On affiche le nombre de dialog par personnages en regarder le nombre de ligne où ils apparaissent " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "harpagon 354\n", + "cleante 161\n", + "valere 101\n", + "maitre-jacques 85\n", + "la-fleche 66\n", + "frosine 60\n", + "elise 51\n", + "mariane 31\n", + "anselme 20\n", + "commissaire 17\n", + "la-merluche 5\n", + "maitre-simon 5\n", + "brindavoine 3\n", + "Name: speaker, dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data['speaker'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On regarde maintenant par acte / scene" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "act scene speaker \n", + "1 1 elise 8\n", + " valere 8\n", + " 2 cleante 10\n", + " elise 9\n", + " 3 harpagon 34\n", + " la-fleche 33\n", + " 4 harpagon 53\n", + " cleante 29\n", + " elise 23\n", + " 5 valere 22\n", + " harpagon 20\n", + " elise 4\n", + "2 1 cleante 21\n", + " la-fleche 20\n", + " 2 harpagon 9\n", + " cleante 6\n", + " maitre-simon 5\n", + " la-fleche 1\n", + " 3 frosine 1\n", + " harpagon 1\n", + " 4 la-fleche 6\n", + " frosine 5\n", + " 5 frosine 35\n", + " harpagon 35\n", + "3 1 harpagon 36\n", + " maitre-jacques 27\n", + " valere 11\n", + " cleante 3\n", + " la-merluche 2\n", + " brindavoine 1\n", + " ..\n", + "4 4 harpagon 8\n", + " 5 cleante 19\n", + " harpagon 18\n", + " 6 la-fleche 6\n", + " cleante 5\n", + " 7 harpagon 1\n", + "5 1 commissaire 7\n", + " harpagon 6\n", + " 2 maitre-jacques 24\n", + " harpagon 19\n", + " commissaire 8\n", + " 3 harpagon 30\n", + " valere 30\n", + " maitre-jacques 2\n", + " 4 harpagon 4\n", + " elise 2\n", + " frosine 1\n", + " maitre-jacques 1\n", + " valere 1\n", + " 5 valere 15\n", + " anselme 14\n", + " harpagon 11\n", + " mariane 3\n", + " maitre-jacques 1\n", + " 6 harpagon 10\n", + " anselme 6\n", + " cleante 4\n", + " commissaire 2\n", + " maitre-jacques 1\n", + " mariane 1\n", + "Name: speaker, Length: 95, dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data.groupby(['act', 'scene'])['speaker'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nombre de mots de chaque personnage\n", + "\n", + "On va rejouté une colonne pour visualiser le nombre de mots de chaque dialogue" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
actscenespeakertextword_count
dialog
I01-111valereHé quoi, charmante Élise, vous devenez mélanco...326
I01-1011eliseJe n'aurais rien à craindre, si tout le monde ...1170
I01-1111valereDe tout ce que vous avez dit, ce n'est que par...727
I01-1211eliseAh ! Valère, ne bougez d'ici, je vous prie ; e...110
I01-1311valereVous voyez comme je m'y prends, et les adroite...1105
I01-1411eliseMais que ne tâchez-vous aussi à gagner l'appui...119
I01-1511valereOn ne peut pas ménager l'un et l'autre ; et l'...446
I01-1611eliseJe ne sais si j'aurai la force de lui faire ce...62
I01-211eliseNon, Valère, je ne puis pas me repentir de tou...325
I01-311valereHé que pouvez-vous craindre, Élise, dans les b...76
I01-411eliseHélas ! cent choses à la fois : L'emportement ...297
I01-511valereAh ! ne me faites pas ce tort, de juger de moi...219
I01-611eliseAh ! Valère, chacun tient les mêmes discours.\\...156
I01-711valerePuisque les seules actions font connaître ce q...392
I01-811eliseHélas ! qu'avec facilité on se laisse persuade...330
I01-911valereMais pourquoi cette inquiétude ?33
I02-112cleanteJe suis bien aise de vous trouver seule, ma Sœ...115
I02-1012eliseHélas ! mon Frère, ne parlons point de ma sage...201
I02-1112cleanteAh ! plût au Ciel que votre âme comme la mienne…48
I02-1212eliseFinissons auparavant votre affaire, et me dite...78
I02-1312cleanteUne jeune personne qui loge depuis peu en ces ...795
I02-1412eliseJ'en vois beaucoup, mon Frère, dans les choses...133
I02-1512cleanteJ'ai découvert sous main, qu'elles ne sont pas...567
I02-1612eliseOui, je conçois assez, mon Frère, quel doit êt...64
I02-1712cleanteAh ! ma Sœur, il est plus grand qu'on ne peut ...1111
I02-1812eliseIl est bien vrai que tous les jours il nous do...117
I02-1912cleanteJ'entends sa voix. \\nÉloignons-nous un peu, po...160
I02-212eliseMe voilà prête à vous ouïr, mon Frère. \\nQu'av...65
I02-312cleanteBien des choses, ma Sœur, enveloppées dans un ...57
I02-412eliseVous aimez ?13
..................
V05-4455harpagonCapable, ou non capable, je veux ravoir mon ar...52
V05-555anselmeCe n'est pas mon dessein de me faire épouser p...191
V05-655harpagonVoilà Monsieur, qui est un honnête Commissaire...193
V05-755valereJe ne vois pas quel crime on me peut faire de ...196
V05-855harpagonJe me moque de tous ces contes ; et le Monde a...243
V05-955valereSachez que j'ai le cœur trop bon, pour me pare...149
V06-156cleanteNe vous tourmentez point, mon Père, et n'accus...232
V06-1056harpagonJe n'ai point d'argent à donner en mariage à m...58
V06-1156anselmeHé bien, j'en ai pour eux, que cela ne vous in...60
V06-1256harpagonVous obligerez-vous à faire tous les frais de ...66
V06-1356anselmeOui, je m'y oblige.\\nÊtes-vous satisfait ?42
V06-1456harpagonOui, pourvu que pour les Noces vous me fassiez...63
V06-1556anselmeD'accord. \\nAllons jouir de l'allégresse que c...76
V06-1656commissaireHolà, Messieurs, holà.\\nTout doucement, s'il v...86
V06-1756harpagonNous n'avons que faire de vos écritures.41
V06-1856commissaireOui.\\nMais je ne prétends pas, moi, les avoir ...63
V06-1956harpagonPour votre paiement, voilà un Homme que je vou...64
V06-256harpagonOù est-il ?12
V06-2056maitre-jacquesHélas ! comment faut-il donc faire ? \\nOn me d...120
V06-2156anselmeSeigneur Harpagon, il faut lui pardonner cette...58
V06-2256harpagonVous payerez donc le Commissaire ?35
V06-2356anselmeSoit. \\nAllons vite faire part de notre joie à...58
V06-2456harpagonEt moi, voir ma chère Cassette.32
V06-356cleanteNe vous en mettez point en peine. \\nIl est en ...229
V06-456harpagonN'en a-t-on rien ôté ?23
V06-556cleanteRien du tout. \\nVoyez si c'est votre dessein d...185
V06-656marianeMais vous ne savez pas, que ce n'est pas assez...170
V06-756anselmeLe Ciel, mes Enfants, ne me redonne point à vo...321
V06-856harpagonIl faut, pour me donner conseil, que je voie m...58
V06-956cleanteVous la verrez saine et entière.33
\n", + "

959 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " act scene speaker \\\n", + "dialog \n", + "I01-1 1 1 valere \n", + "I01-10 1 1 elise \n", + "I01-11 1 1 valere \n", + "I01-12 1 1 elise \n", + "I01-13 1 1 valere \n", + "I01-14 1 1 elise \n", + "I01-15 1 1 valere \n", + "I01-16 1 1 elise \n", + "I01-2 1 1 elise \n", + "I01-3 1 1 valere \n", + "I01-4 1 1 elise \n", + "I01-5 1 1 valere \n", + "I01-6 1 1 elise \n", + "I01-7 1 1 valere \n", + "I01-8 1 1 elise \n", + "I01-9 1 1 valere \n", + "I02-1 1 2 cleante \n", + "I02-10 1 2 elise \n", + "I02-11 1 2 cleante \n", + "I02-12 1 2 elise \n", + "I02-13 1 2 cleante \n", + "I02-14 1 2 elise \n", + "I02-15 1 2 cleante \n", + "I02-16 1 2 elise \n", + "I02-17 1 2 cleante \n", + "I02-18 1 2 elise \n", + "I02-19 1 2 cleante \n", + "I02-2 1 2 elise \n", + "I02-3 1 2 cleante \n", + "I02-4 1 2 elise \n", + "... .. ... ... \n", + "V05-44 5 5 harpagon \n", + "V05-5 5 5 anselme \n", + "V05-6 5 5 harpagon \n", + "V05-7 5 5 valere \n", + "V05-8 5 5 harpagon \n", + "V05-9 5 5 valere \n", + "V06-1 5 6 cleante \n", + "V06-10 5 6 harpagon \n", + "V06-11 5 6 anselme \n", + "V06-12 5 6 harpagon \n", + "V06-13 5 6 anselme \n", + "V06-14 5 6 harpagon \n", + "V06-15 5 6 anselme \n", + "V06-16 5 6 commissaire \n", + "V06-17 5 6 harpagon \n", + "V06-18 5 6 commissaire \n", + "V06-19 5 6 harpagon \n", + "V06-2 5 6 harpagon \n", + "V06-20 5 6 maitre-jacques \n", + "V06-21 5 6 anselme \n", + "V06-22 5 6 harpagon \n", + "V06-23 5 6 anselme \n", + "V06-24 5 6 harpagon \n", + "V06-3 5 6 cleante \n", + "V06-4 5 6 harpagon \n", + "V06-5 5 6 cleante \n", + "V06-6 5 6 mariane \n", + "V06-7 5 6 anselme \n", + "V06-8 5 6 harpagon \n", + "V06-9 5 6 cleante \n", + "\n", + " text word_count \n", + "dialog \n", + "I01-1 Hé quoi, charmante Élise, vous devenez mélanco... 326 \n", + "I01-10 Je n'aurais rien à craindre, si tout le monde ... 1170 \n", + "I01-11 De tout ce que vous avez dit, ce n'est que par... 727 \n", + "I01-12 Ah ! Valère, ne bougez d'ici, je vous prie ; e... 110 \n", + "I01-13 Vous voyez comme je m'y prends, et les adroite... 1105 \n", + "I01-14 Mais que ne tâchez-vous aussi à gagner l'appui... 119 \n", + "I01-15 On ne peut pas ménager l'un et l'autre ; et l'... 446 \n", + "I01-16 Je ne sais si j'aurai la force de lui faire ce... 62 \n", + "I01-2 Non, Valère, je ne puis pas me repentir de tou... 325 \n", + "I01-3 Hé que pouvez-vous craindre, Élise, dans les b... 76 \n", + "I01-4 Hélas ! cent choses à la fois : L'emportement ... 297 \n", + "I01-5 Ah ! ne me faites pas ce tort, de juger de moi... 219 \n", + "I01-6 Ah ! Valère, chacun tient les mêmes discours.\\... 156 \n", + "I01-7 Puisque les seules actions font connaître ce q... 392 \n", + "I01-8 Hélas ! qu'avec facilité on se laisse persuade... 330 \n", + "I01-9 Mais pourquoi cette inquiétude ? 33 \n", + "I02-1 Je suis bien aise de vous trouver seule, ma Sœ... 115 \n", + "I02-10 Hélas ! mon Frère, ne parlons point de ma sage... 201 \n", + "I02-11 Ah ! plût au Ciel que votre âme comme la mienne… 48 \n", + "I02-12 Finissons auparavant votre affaire, et me dite... 78 \n", + "I02-13 Une jeune personne qui loge depuis peu en ces ... 795 \n", + "I02-14 J'en vois beaucoup, mon Frère, dans les choses... 133 \n", + "I02-15 J'ai découvert sous main, qu'elles ne sont pas... 567 \n", + "I02-16 Oui, je conçois assez, mon Frère, quel doit êt... 64 \n", + "I02-17 Ah ! ma Sœur, il est plus grand qu'on ne peut ... 1111 \n", + "I02-18 Il est bien vrai que tous les jours il nous do... 117 \n", + "I02-19 J'entends sa voix. \\nÉloignons-nous un peu, po... 160 \n", + "I02-2 Me voilà prête à vous ouïr, mon Frère. \\nQu'av... 65 \n", + "I02-3 Bien des choses, ma Sœur, enveloppées dans un ... 57 \n", + "I02-4 Vous aimez ? 13 \n", + "... ... ... \n", + "V05-44 Capable, ou non capable, je veux ravoir mon ar... 52 \n", + "V05-5 Ce n'est pas mon dessein de me faire épouser p... 191 \n", + "V05-6 Voilà Monsieur, qui est un honnête Commissaire... 193 \n", + "V05-7 Je ne vois pas quel crime on me peut faire de ... 196 \n", + "V05-8 Je me moque de tous ces contes ; et le Monde a... 243 \n", + "V05-9 Sachez que j'ai le cœur trop bon, pour me pare... 149 \n", + "V06-1 Ne vous tourmentez point, mon Père, et n'accus... 232 \n", + "V06-10 Je n'ai point d'argent à donner en mariage à m... 58 \n", + "V06-11 Hé bien, j'en ai pour eux, que cela ne vous in... 60 \n", + "V06-12 Vous obligerez-vous à faire tous les frais de ... 66 \n", + "V06-13 Oui, je m'y oblige.\\nÊtes-vous satisfait ? 42 \n", + "V06-14 Oui, pourvu que pour les Noces vous me fassiez... 63 \n", + "V06-15 D'accord. \\nAllons jouir de l'allégresse que c... 76 \n", + "V06-16 Holà, Messieurs, holà.\\nTout doucement, s'il v... 86 \n", + "V06-17 Nous n'avons que faire de vos écritures. 41 \n", + "V06-18 Oui.\\nMais je ne prétends pas, moi, les avoir ... 63 \n", + "V06-19 Pour votre paiement, voilà un Homme que je vou... 64 \n", + "V06-2 Où est-il ? 12 \n", + "V06-20 Hélas ! comment faut-il donc faire ? \\nOn me d... 120 \n", + "V06-21 Seigneur Harpagon, il faut lui pardonner cette... 58 \n", + "V06-22 Vous payerez donc le Commissaire ? 35 \n", + "V06-23 Soit. \\nAllons vite faire part de notre joie à... 58 \n", + "V06-24 Et moi, voir ma chère Cassette. 32 \n", + "V06-3 Ne vous en mettez point en peine. \\nIl est en ... 229 \n", + "V06-4 N'en a-t-on rien ôté ? 23 \n", + "V06-5 Rien du tout. \\nVoyez si c'est votre dessein d... 185 \n", + "V06-6 Mais vous ne savez pas, que ce n'est pas assez... 170 \n", + "V06-7 Le Ciel, mes Enfants, ne me redonne point à vo... 321 \n", + "V06-8 Il faut, pour me donner conseil, que je voie m... 58 \n", + "V06-9 Vous la verrez saine et entière. 33 \n", + "\n", + "[959 rows x 5 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data['word_count'] = sorted_data['text'].str.len()\n", + "sorted_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On affiche a nouveau le tableau des dialogues par acte / scene mais en ajoutant le nombre de mots" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "act scene speaker \n", + "1 1 elise 2569\n", + " valere 3324\n", + " 2 cleante 3985\n", + " elise 779\n", + " 3 harpagon 2281\n", + " la-fleche 1337\n", + " 4 cleante 1143\n", + " elise 825\n", + " harpagon 5768\n", + " 5 elise 209\n", + " harpagon 1369\n", + " valere 3486\n", + "2 1 cleante 1872\n", + " la-fleche 4869\n", + " 2 cleante 711\n", + " harpagon 901\n", + " la-fleche 65\n", + " maitre-simon 977\n", + " 3 frosine 9\n", + " harpagon 106\n", + " 4 frosine 695\n", + " la-fleche 1397\n", + " 5 frosine 7686\n", + " harpagon 2803\n", + "3 1 brindavoine 117\n", + " cleante 393\n", + " elise 15\n", + " harpagon 3949\n", + " la-merluche 152\n", + " maitre-jacques 4005\n", + " ... \n", + "4 4 maitre-jacques 1531\n", + " 5 cleante 847\n", + " harpagon 655\n", + " 6 cleante 74\n", + " la-fleche 252\n", + " 7 harpagon 1980\n", + "5 1 commissaire 607\n", + " harpagon 476\n", + " 2 commissaire 825\n", + " harpagon 869\n", + " maitre-jacques 1720\n", + " 3 harpagon 2318\n", + " maitre-jacques 69\n", + " valere 3251\n", + " 4 elise 747\n", + " frosine 27\n", + " harpagon 632\n", + " maitre-jacques 34\n", + " valere 111\n", + " 5 anselme 2114\n", + " harpagon 1369\n", + " maitre-jacques 31\n", + " mariane 1042\n", + " valere 1903\n", + " 6 anselme 615\n", + " cleante 679\n", + " commissaire 149\n", + " harpagon 452\n", + " maitre-jacques 120\n", + " mariane 170\n", + "Name: word_count, Length: 95, dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "word_count_by_speaker_by_scene = sorted_data.groupby(['act', 'scene', 'speaker'])['word_count'].sum()\n", + "word_count_by_speaker_by_scene" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On souhaite faire un histogramme par acte, on commence par transformer les données sous forme de table" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speakeranselmebrindavoinecleantecommissaireelisefrosineharpagonla-flechela-merluchemaitre-jacquesmaitre-simonmarianevalere
actscene
11NaNNaNNaNNaN2569.0NaNNaNNaNNaNNaNNaNNaN3324.0
2NaNNaN3985.0NaN779.0NaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaNNaNNaN2281.01337.0NaNNaNNaNNaNNaN
4NaNNaN1143.0NaN825.0NaN5768.0NaNNaNNaNNaNNaNNaN
5NaNNaNNaNNaN209.0NaN1369.0NaNNaNNaNNaNNaN3486.0
21NaNNaN1872.0NaNNaNNaNNaN4869.0NaNNaNNaNNaNNaN
2NaNNaN711.0NaNNaNNaN901.065.0NaNNaN977.0NaNNaN
3NaNNaNNaNNaNNaN9.0106.0NaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaN695.0NaN1397.0NaNNaNNaNNaNNaN
5NaNNaNNaNNaNNaN7686.02803.0NaNNaNNaNNaNNaNNaN
31NaN117.0393.0NaN15.0NaN3949.0NaN152.04005.0NaNNaN1273.0
2NaNNaNNaNNaNNaNNaNNaNNaNNaN943.0NaNNaN511.0
3NaNNaNNaNNaNNaN105.0NaNNaNNaN47.0NaNNaNNaN
4NaNNaNNaNNaNNaN1022.0NaNNaNNaNNaNNaN933.0NaN
5NaNNaNNaNNaNNaN128.0546.0NaNNaNNaNNaNNaNNaN
6NaNNaNNaNNaN83.060.0368.0NaNNaNNaNNaN189.0NaN
7NaNNaN2922.0NaNNaN209.0972.0NaNNaNNaNNaN1176.020.0
8NaN90.0NaNNaNNaNNaN115.0NaNNaNNaNNaNNaNNaN
9NaNNaN216.0NaNNaNNaN368.0NaN128.0NaNNaNNaN32.0
41NaNNaN1384.0NaN315.02222.0NaNNaNNaNNaNNaN1240.0NaN
2NaNNaN65.0NaN16.0NaN294.0NaNNaNNaNNaNNaNNaN
3NaNNaN2109.0NaNNaNNaN1987.0NaNNaNNaNNaNNaNNaN
4NaNNaN846.0NaNNaNNaN748.0NaNNaN1531.0NaNNaNNaN
5NaNNaN847.0NaNNaNNaN655.0NaNNaNNaNNaNNaNNaN
6NaNNaN74.0NaNNaNNaNNaN252.0NaNNaNNaNNaNNaN
7NaNNaNNaNNaNNaNNaN1980.0NaNNaNNaNNaNNaNNaN
51NaNNaNNaN607.0NaNNaN476.0NaNNaNNaNNaNNaNNaN
2NaNNaNNaN825.0NaNNaN869.0NaNNaN1720.0NaNNaNNaN
3NaNNaNNaNNaNNaNNaN2318.0NaNNaN69.0NaNNaN3251.0
4NaNNaNNaNNaN747.027.0632.0NaNNaN34.0NaNNaN111.0
52114.0NaNNaNNaNNaNNaN1369.0NaNNaN31.0NaN1042.01903.0
6615.0NaN679.0149.0NaNNaN452.0NaNNaN120.0NaN170.0NaN
\n", + "
" + ], + "text/plain": [ + "speaker anselme brindavoine cleante commissaire elise frosine \\\n", + "act scene \n", + "1 1 NaN NaN NaN NaN 2569.0 NaN \n", + " 2 NaN NaN 3985.0 NaN 779.0 NaN \n", + " 3 NaN NaN NaN NaN NaN NaN \n", + " 4 NaN NaN 1143.0 NaN 825.0 NaN \n", + " 5 NaN NaN NaN NaN 209.0 NaN \n", + "2 1 NaN NaN 1872.0 NaN NaN NaN \n", + " 2 NaN NaN 711.0 NaN NaN NaN \n", + " 3 NaN NaN NaN NaN NaN 9.0 \n", + " 4 NaN NaN NaN NaN NaN 695.0 \n", + " 5 NaN NaN NaN NaN NaN 7686.0 \n", + "3 1 NaN 117.0 393.0 NaN 15.0 NaN \n", + " 2 NaN NaN NaN NaN NaN NaN \n", + " 3 NaN NaN NaN NaN NaN 105.0 \n", + " 4 NaN NaN NaN NaN NaN 1022.0 \n", + " 5 NaN NaN NaN NaN NaN 128.0 \n", + " 6 NaN NaN NaN NaN 83.0 60.0 \n", + " 7 NaN NaN 2922.0 NaN NaN 209.0 \n", + " 8 NaN 90.0 NaN NaN NaN NaN \n", + " 9 NaN NaN 216.0 NaN NaN NaN \n", + "4 1 NaN NaN 1384.0 NaN 315.0 2222.0 \n", + " 2 NaN NaN 65.0 NaN 16.0 NaN \n", + " 3 NaN NaN 2109.0 NaN NaN NaN \n", + " 4 NaN NaN 846.0 NaN NaN NaN \n", + " 5 NaN NaN 847.0 NaN NaN NaN \n", + " 6 NaN NaN 74.0 NaN NaN NaN \n", + " 7 NaN NaN NaN NaN NaN NaN \n", + "5 1 NaN NaN NaN 607.0 NaN NaN \n", + " 2 NaN NaN NaN 825.0 NaN NaN \n", + " 3 NaN NaN NaN NaN NaN NaN \n", + " 4 NaN NaN NaN NaN 747.0 27.0 \n", + " 5 2114.0 NaN NaN NaN NaN NaN \n", + " 6 615.0 NaN 679.0 149.0 NaN NaN \n", + "\n", + "speaker harpagon la-fleche la-merluche maitre-jacques maitre-simon \\\n", + "act scene \n", + "1 1 NaN NaN NaN NaN NaN \n", + " 2 NaN NaN NaN NaN NaN \n", + " 3 2281.0 1337.0 NaN NaN NaN \n", + " 4 5768.0 NaN NaN NaN NaN \n", + " 5 1369.0 NaN NaN NaN NaN \n", + "2 1 NaN 4869.0 NaN NaN NaN \n", + " 2 901.0 65.0 NaN NaN 977.0 \n", + " 3 106.0 NaN NaN NaN NaN \n", + " 4 NaN 1397.0 NaN NaN NaN \n", + " 5 2803.0 NaN NaN NaN NaN \n", + "3 1 3949.0 NaN 152.0 4005.0 NaN \n", + " 2 NaN NaN NaN 943.0 NaN \n", + " 3 NaN NaN NaN 47.0 NaN \n", + " 4 NaN NaN NaN NaN NaN \n", + " 5 546.0 NaN NaN NaN NaN \n", + " 6 368.0 NaN NaN NaN NaN \n", + " 7 972.0 NaN NaN NaN NaN \n", + " 8 115.0 NaN NaN NaN NaN \n", + " 9 368.0 NaN 128.0 NaN NaN \n", + "4 1 NaN NaN NaN NaN NaN \n", + " 2 294.0 NaN NaN NaN NaN \n", + " 3 1987.0 NaN NaN NaN NaN \n", + " 4 748.0 NaN NaN 1531.0 NaN \n", + " 5 655.0 NaN NaN NaN NaN \n", + " 6 NaN 252.0 NaN NaN NaN \n", + " 7 1980.0 NaN NaN NaN NaN \n", + "5 1 476.0 NaN NaN NaN NaN \n", + " 2 869.0 NaN NaN 1720.0 NaN \n", + " 3 2318.0 NaN NaN 69.0 NaN \n", + " 4 632.0 NaN NaN 34.0 NaN \n", + " 5 1369.0 NaN NaN 31.0 NaN \n", + " 6 452.0 NaN NaN 120.0 NaN \n", + "\n", + "speaker mariane valere \n", + "act scene \n", + "1 1 NaN 3324.0 \n", + " 2 NaN NaN \n", + " 3 NaN NaN \n", + " 4 NaN NaN \n", + " 5 NaN 3486.0 \n", + "2 1 NaN NaN \n", + " 2 NaN NaN \n", + " 3 NaN NaN \n", + " 4 NaN NaN \n", + " 5 NaN NaN \n", + "3 1 NaN 1273.0 \n", + " 2 NaN 511.0 \n", + " 3 NaN NaN \n", + " 4 933.0 NaN \n", + " 5 NaN NaN \n", + " 6 189.0 NaN \n", + " 7 1176.0 20.0 \n", + " 8 NaN NaN \n", + " 9 NaN 32.0 \n", + "4 1 1240.0 NaN \n", + " 2 NaN NaN \n", + " 3 NaN NaN \n", + " 4 NaN NaN \n", + " 5 NaN NaN \n", + " 6 NaN NaN \n", + " 7 NaN NaN \n", + "5 1 NaN NaN \n", + " 2 NaN NaN \n", + " 3 NaN 3251.0 \n", + " 4 NaN 111.0 \n", + " 5 1042.0 1903.0 \n", + " 6 170.0 NaN " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "word_count_table = word_count_by_speaker_by_scene.unstack(level=2)\n", + "word_count_table" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On trace l'histogramme" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "word_count_table.plot.bar(stacked=True, figsize = (15,20))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Le graphique montre la repartition du nombre de mots par personnage au cours des scenes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- 2.18.1