{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyse des dialogues dans l'Avare de Molière" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import os \n", "import urllib.request" ] }, { "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": null, "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": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "101\n", "51\n" ] } ], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 72, "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": [ "scene=\"###\"\n", "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", "\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": "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 }