{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyse des dialogues dans l'Avare de Molière" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import os \n", "import urllib.request\n", "import linecache\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On récupère le texte de \"l'Avare de Molière\" sous format markdown. Pour éviter d'éventuels problèmes, on fait une copie locale du fichier.Il est dangereux de télécharger les données à chaque exécution, car il est possible que nous les remplacions par un fichier défectueux dans le cas d'une panne. Pour cette raison, nous téléchargeons le fichier uniquement si la copie locale n'existe pas." ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [], "source": [ "texte_url = \"http://dramacode.github.io/markdown/moliere_avare.txt\"\n", "texte_file = \"moliere_avare.txt\"\n", "if not os.path.exists(texte_file):\n", " urllib.request.urlretrieve(texte_url,texte_file)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On cherche à classez les personnages selon la quantité de parole. Pour se faire, nous allons réaliser une analyse syntaxique du texte. Celui-ci est représenté de la façon suivante:\n", "*les 40 premières lignes nous donne les informations liée à la piéce ainsi que le nom et rôle de chaque personnage.\n", "*les actes sont représentés sous forme de Titre 2 (##).\n", "*les scénes sont représentés sous forme de Titre 3 (###).\n", "*Pour chaque réplique, le nom du personnage est écrit en majuscule et sa réplique est écrite en dessous.\n", "\n", "Pour commencer, nous allons regarder la quantité de parole par scénes, puis par répliques et enfin par mots." ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Valère, Élise\n", "\n", "Cléante, Élise\n", "\n", "Harpagon, La Flèche\n", "\n", "Élise, Cléante, Harpagon\n", "\n", "Valère, Harpagon, Élise\n", "\n", "Cléante, La Flèche\n", "\n", "Maître Simon, Harpagon, Cléante, La Flèche\n", "\n", "Frosine, Harpagon\n", "\n", "La Flèche, Frosine\n", "\n", "Harpagon, Frosine\n", "\n", "Harpagon, Cléante, Élise, Valère, Dame Claude, Maître Jacques, Brindavoine, La Merluche\n", "\n", "Maître Jacques, Valère\n", "\n", "Frosine, Mariane, Maître Jacques\n", "\n", "Mariane, Frosine\n", "\n", "Harpagon, Frosine, Mariane\n", "\n", "Élise, Harpagon, Mariane, Frosine\n", "\n", "Cléante, Harpagon, Élise, Mariane, Frosine\n", "\n", "Harpagon, Mariane, Frosine, Cléante, Brindavoine, Élise\n", "\n", "Harpagon, Mariane, Cléante, Élise, Frosine, La Merluche\n", "\n", "Cléante, Mariane, Élise, Frosine\n", "\n", "Harpagon, Cléante, Mariane, Élise, Frosine\n", "\n", "Harpagon, Cléante\n", "\n", "Maître Jacques, Harpagon, Cléante\n", "\n", "Cléante, Harpagon\n", "\n", "La Flèche, Cléante\n", "\n", "\n", "\n", "Harpagon, Le Commissaire, son Clerc\n", "\n", "Maître Jacques, Harpagon, Le Commissaire, son Clerc\n", "\n", "Valère, Harpagon, le Commissaire, son Clerc, Maître Jacques\n", "\n", "Élise, Mariane, Frosine, Harpagon, Valère, Maître Jacques, le Commissaire, son Clerc\n", "\n", "Anselme, Harpagon, Élise, Mariane, Frosine, Valère, Maître Jacques, le Commissaire, son Clerc\n", "\n", "Cléante, Valère, Mariane, Élise, Frosine, Harpagon, Anselme, Maître Jacques, La Flèche, le Commissaire, son Clerc\n", "\n", "8\n", "14\n", "15\n", "23\n", "6\n", "1\n", "15\n", "9\n", "2\n", "2\n", "12\n", "2\n", "2\n", "1\n", "6\n" ] } ], "source": [ "scene=\"###\"\n", "nbscenevalere=0\n", "nbsceneelise=0\n", "nbscenecleante=0\n", "nbsceneharpagon=0\n", "nbscenefleche=0\n", "nbscenesimon=0\n", "nbscenefrosine=0\n", "nbscenejacques=0\n", "nbscenemerluche=0\n", "nbscenebrindavoine=0\n", "nbscenemariane=0\n", "nbscenecommissaire=0\n", "nbsceneanselme=0\n", "nbscenedame=0\n", "nbsceneclerc=0\n", "nbligne=0\n", "\n", "with open(texte_file,'r') as file: \n", " for ligne in file:\n", " nbligne+=1\n", " if scene in ligne:\n", " nompersonnages = linecache.getline(texte_file, nbligne+1)\n", " print(nompersonnages)\n", " \n", " if \"Valère\" in nompersonnages:\n", " nbscenevalere+=1\n", " if \"Élise\" in nompersonnages:\n", " nbsceneelise+=1\n", " if \"Cléante\" in nompersonnages:\n", " nbscenecleante+=1\n", " if \"Harpagon\" in nompersonnages:\n", " nbsceneharpagon+=1\n", " if \"La Flèche\" in nompersonnages:\n", " nbscenefleche+=1\n", " if \"Maître Simon\" in nompersonnages:\n", " nbscenesimon+=1\n", " if \"Frosine\" in nompersonnages:\n", " nbscenefrosine+=1\n", " if \"Maître Jacques\" in nompersonnages:\n", " nbscenejacques+=1\n", " if \"La Merluche\" in nompersonnages:\n", " nbscenemerluche+=1\n", " if \"Brindavoine\" in nompersonnages:\n", " nbscenebrindavoine+=1\n", " if \"Mariane\" in nompersonnages:\n", " nbscenemariane+=1\n", " if \"Le Commissaire\" in nompersonnages:\n", " nbscenecommissaire+=1\n", " if \"Anselme\" in nompersonnages:\n", " nbsceneanselme+=1\n", " if \"Dame Claude\" in nompersonnages:\n", " nbscenedame+=1\n", " if \"son Clerc\" in nompersonnages:\n", " nbsceneclerc+=1\n", " \n", " print(nbscenevalere)\n", " print(nbsceneelise)\n", " print(nbscenecleante)\n", " print(nbsceneharpagon+1)\n", " print(nbscenefleche)\n", " print(nbscenesimon)\n", " print(nbscenefrosine)\n", " print(nbscenejacques)\n", " print(nbscenemerluche)\n", " print(nbscenebrindavoine)\n", " print(nbscenemariane)\n", " print(nbscenecommissaire)\n", " print(nbsceneanselme)\n", " print(nbscenedame)\n", " print(nbsceneclerc)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "101\n", "51\n", "161\n", "354\n", "66\n", "5\n", "60\n", "85\n", "5\n", "3\n", "31\n", "17\n", "20\n", "0\n", "0\n" ] } ], "source": [ "nbacte=0\n", "nbscene=0\n", "nbrepliquevalere=0\n", "nbrepliqueelise=0\n", "nbrepliquecleante=0\n", "nbrepliqueharpagon=0\n", "nbrepliquefleche=0\n", "nbrepliquesimon=0\n", "nbrepliquefrosine=0\n", "nbrepliquejacques=0\n", "nbrepliquemerluche=0\n", "nbrepliquebrindavoine=0\n", "nbrepliquemariane=0\n", "nbrepliquecommissaire=0\n", "nbrepliqueanselme=0\n", "nbrepliquedame=0\n", "nbrepliqueclerc=0\n", "with open(texte_file,'r') as file: \n", " for ligne in file: \n", " if nbacte<2:\n", " if ligne[0]==\"#\" and ligne[1]==\"#\" and ligne[2]!=\"#\":\n", " nbacte+=1\n", " if nbscene<2:\n", " if scene in ligne:\n", " nbscene+=1\n", " if \"VALÈRE\" in ligne:\n", " nbrepliquevalere+=1\n", " if \"ÉLISE\" in ligne:\n", " nbrepliqueelise+=1\n", " if \"CLÉANTE\" in ligne:\n", " nbrepliquecleante+=1\n", " if \"HARPAGON\" in ligne:\n", " nbrepliqueharpagon+=1\n", " if \"LA FLÈCHE\" in ligne:\n", " nbrepliquefleche+=1\n", " if \"MAÎTRE SIMON\" in ligne:\n", " nbrepliquesimon+=1\n", " if \"FROSINE\" in ligne:\n", " nbrepliquefrosine+=1\n", " if \"MAÎTRE JACQUES\" in ligne:\n", " nbrepliquejacques+=1\n", " if \"LA MERLUCHE\" in ligne:\n", " nbrepliquemerluche+=1\n", " if \"BRINDAVOINE\" in ligne:\n", " nbrepliquebrindavoine+=1\n", " if \"MARIANE\" in ligne:\n", " nbrepliquemariane+=1\n", " if \"LE COMMISSAIRE\" in ligne:\n", " nbrepliquecommissaire+=1\n", " if \"ANSELME\" in ligne:\n", " nbrepliqueanselme+=1\n", " if \"DAME CLAUDE\" in ligne:\n", " nbrepliquedame+=1\n", " if \"SON CLERC\" in ligne:\n", " nbrepliqueclerc+=1\n", " nbscene=1\n", " nbacte=1\n", " print(nbrepliquevalere)\n", " print(nbrepliqueelise)\n", " print(nbrepliquecleante)\n", " print(nbrepliqueharpagon)\n", " print(nbrepliquefleche)\n", " print(nbrepliquesimon)\n", " print(nbrepliquefrosine)\n", " print(nbrepliquejacques)\n", " print(nbrepliquemerluche)\n", " print(nbrepliquebrindavoine)\n", " print(nbrepliquemariane)\n", " print(nbrepliquecommissaire)\n", " print(nbrepliqueanselme)\n", " print(nbrepliquedame)\n", " print(nbrepliqueclerc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2559\n", "1023\n", "3177\n", "5218\n", "1436\n", "186\n", "2036\n", "1414\n", "49\n", "38\n", "878\n", "281\n", "488\n", "0\n", "0\n" ] } ], "source": [ "nbligne=0\n", "nbmotsvalere=0\n", "nbmotselise=0\n", "nbmotscleante=0\n", "nbmotsharpagon=0\n", "nbmotsfleche=0\n", "nbmotssimon=0\n", "nbmotsfrosine=0\n", "nbmotsjacques=0\n", "nbmotsmerluche=0\n", "nbmotsbrindavoine=0\n", "nbmotsmariane=0\n", "nbmotscommissaire=0\n", "nbmotsanselme=0\n", "nbmotsclaude=0\n", "nbmotsclerc=0\n", "\n", "with open(texte_file,'r') as file:\n", " for ligne in file:\n", " nbligne+=1\n", " if \"VALÈRE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsvalere+=1\n", " if \"ÉLISE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotselise+=1\n", " if \"CLÉANTE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotscleante+=1\n", " if \"HARPAGON\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsharpagon+=1\n", " if \"LA FLÈCHE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsfleche+=1\n", " if \"MAÎTRE SIMON\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotssimon+=1\n", " if \"FROSINE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsfrosine+=1\n", " if \"MAÎTRE JACQUES\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsjacques+=1\n", " if \"LA MERLUCHE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsmerluche+=1\n", " if \"BRINDAVOINE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsbrindavoine+=1\n", " if \"MARIANE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsmariane+=1\n", " if \"LE COMMISSAIRE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotscommissaire+=1\n", " if \"ANSELME\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsanselme+=1\n", " if \"DAME CLAUDE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsclaude+=1\n", " if \"SON CLERC\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsclerc+=1\n", " \n", " print(nbmotsvalere)\n", " print(nbmotselise)\n", " print(nbmotscleante)\n", " print(nbmotsharpagon)\n", " print(nbmotsfleche)\n", " print(nbmotssimon)\n", " print(nbmotsfrosine)\n", " print(nbmotsjacques)\n", " print(nbmotsmerluche)\n", " print(nbmotsbrindavoine)\n", " print(nbmotsmariane)\n", " print(nbmotscommissaire)\n", " print(nbmotsanselme)\n", " print(nbmotsclaude)\n", " print(nbmotsclerc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [], "source": [ "nbligne=0\n", "nbscene=0\n", "nbacte=0\n", "nbmotsvalere=0\n", "nbmotselise=0\n", "nbmotscleante=0\n", "nbmotsharpagon=0\n", "nbmotsfleche=0\n", "nbmotssimon=0\n", "nbmotsfrosine=0\n", "nbmotsjacques=0\n", "nbmotsmerluche=0\n", "nbmotsbrindavoine=0\n", "nbmotsmariane=0\n", "nbmotscommissaire=0\n", "nbmotsanselme=0\n", "nbmotsclaude=0\n", "nbmotsclerc=0\n", "\n", "listacte=[]\n", "\n", "with open(texte_file,'r') as file: \n", " for ligne in file:\n", " nbligne+=1\n", " if ligne[0]==\"#\" and ligne[1]==\"#\" and ligne[2]!=\"#\":\n", " nbacte+=1\n", " if scene in ligne:\n", " nbscene+=1\n", " listescene=[]\n", " if \"VALÈRE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsvalere+=1\n", " listescene[0]=nbmotsvalere\n", " listeacte[nbacte-1]=listescene\n", " if \"ÉLISE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotselise+=1\n", " if \"CLÉANTE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotscleante+=1\n", " if \"HARPAGON\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsharpagon+=1\n", " if \"LA FLÈCHE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsfleche+=1\n", " if \"MAÎTRE SIMON\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotssimon+=1\n", " if \"FROSINE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsfrosine+=1\n", " if \"MAÎTRE JACQUES\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsjacques+=1\n", " if \"LA MERLUCHE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsmerluche+=1\n", " if \"BRINDAVOINE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsbrindavoine+=1\n", " if \"MARIANE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsmariane+=1\n", " if \"LE COMMISSAIRE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotscommissaire+=1\n", " if \"ANSELME\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsanselme+=1\n", " if \"DAME CLAUDE\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsclaude+=1\n", " if \"SON CLERC\" in ligne:\n", " replique = linecache.getline(texte_file, nbligne+1)\n", " if replique!=\"\":\n", " for mot in replique.split():\n", " nbmotsclerc+=1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nbmots = [1, 2, 2, 3, 4, 4, 4, 4, 4, 5, 5]\n", "x2 = [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5]\n", "bins = [x + 0.5 for x in range(0, 6)]\n", "plt.hist([x1, x2], bins = bins, color = ['yellow', 'green'],\n", " edgecolor = 'red', hatch = '/', label = ['x1', 'x2'],\n", " histtype = 'bar') # bar est le defaut\n", "plt.ylabel('valeurs')\n", "plt.xlabel('nombres')\n", "plt.title('2 series')\n", "plt.legend()" ] }, { "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 }