{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyse de l'Avare de Molière" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get the text" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import urllib.request\n", "response = urllib.request.urlopen(\"http://dramacode.github.io/markdown/moliere_avare.txt\")\n", "html = response.read()\n", "text = html.decode(\"utf-8\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parse it" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prepare a function to uniformize date" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import unicodedata\n", "def decode(str) :\n", " return unicodedata.normalize('NFKD', str).lower().encode('ASCII', 'ignore').decode()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get name of characters" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['harpagon',\n", " 'cleante',\n", " 'elise',\n", " 'valere',\n", " 'mariane',\n", " 'anselme',\n", " 'frosine',\n", " 'maitre simon',\n", " 'maitre jacques',\n", " 'la fleche',\n", " 'dame claude',\n", " 'brindavoine',\n", " 'la merluche',\n", " 'le commissaire']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "body = text.split(\"\\n# \")[2]\n", "acts = body.split(\"\\n## \")[1:]\n", "\n", "actors = text.split(\"\\n#\")[1].strip().split(\"\\n\")\n", "name_actors = []\n", "for i in range(len(actors)):\n", " if actors[i][:3]==\" – \":\n", " name_actors.append(decode(actors[i][3:actors[i].find(\",\")].lower()))\n", "\n", "name_actors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extract replicas with context informations : act, scene and character" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "data = []\n", "for act in acts : \n", " title_act = act[:act.find(\"\\n\")]\n", " body_act = act[len(title_act)+1:]\n", " \n", " scenes= body_act.split(\"\\n### \")\n", " for scene in scenes : \n", " title_scene = scene[:scene.find(\"\\n\")]\n", " body_scene = scene[len(title_scene)+1:]\n", " if len(title_scene) >0:\n", " replicas= body_scene.split(\"\\n \")[1:]\n", " for rep in replicas : \n", " name =rep[:rep.find(\".\\n\")].strip().lower()\n", " body_replica= rep[len(name)+1:].strip()\n", " # scenes_dict[title_act][title_scene][name].append(body_replica)\n", " data.append([title_act,title_scene,decode(name.split(\"*\")[0].split(\",\")[0].strip()),body_replica,len(body_replica.split(\" \"))])\n", " \n", "# Create the pandas DataFrame\n", "df = pd.DataFrame(data, columns=['Act', 'Scene',\"Character\",\"replica\",\"length\"])\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Observe number of word per character (and sort according to it)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('harpagon', 5862),\n", " ('cleante', 3166),\n", " ('valere', 2594),\n", " ('frosine', 2223),\n", " ('maitre jacques', 1579),\n", " ('la fleche', 1435),\n", " ('elise', 1021),\n", " ('mariane', 857),\n", " ('anselme', 483),\n", " ('le commissaire', 277),\n", " ('maitre simon', 186),\n", " ('la merluche', 49),\n", " ('brindavoine', 38),\n", " ('dame claude', 0)]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from collections import Counter\n", "number_of_words = Counter()\n", "for char in name_actors:\n", " select_replicas = df.loc[df[\"Character\"]==char]\n", " number_of_words[char]= sum(select_replicas[\"length\"])\n", "number_of_words.most_common()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Réalisez un graphique qui montrera le nombre de mots que chaque acteur prononce dans chaque scène. Pour cela, vous pouvez vous inspirer de l'étude de l'Avare de Molière réalisée par l'OBVIL (graphe de gauche). Dans ce graphique, les lignes sont de longueur égale et la hauteur représente le nombre de mots prononcés au total dans la scène. La largeur de chaque rectangle indique le pourcentage de la scène qu’un acteur occupe." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "from matplotlib.patches import Rectangle\n", "import matplotlib.colors as mcolors\n", "%matplotlib inline \n", "\n", "map_colors= dict()\n", "for i,char in enumerate(name_actors): \n", " map_colors[char]=list(mcolors.XKCD_COLORS)[i]\n", " i+=1\n", "\n", "\n", "acts = []\n", "for act in df[\"Act\"] :\n", " if act not in acts :\n", " acts.append(act)\n", " \n", " plt.subplot()\n", " # plt.axis(\"off\")\n", " plt.title(act)\n", " ax = plt.gca()\n", " \n", "\n", " this_act = df.loc[df[\"Act\"]==act]\n", " y=0\n", " already_seen =[]\n", " for scene in this_act[\"Scene\"]:\n", " \n", " if scene not in already_seen :\n", " \n", " df_of_this_scene = this_act.loc[this_act[\"Scene\"]==scene]\n", " number_of_words= Counter()\n", " for char in set(df_of_this_scene[\"Character\"] ) :\n", " select_replicas = df_of_this_scene.loc[df[\"Character\"]==char]\n", " number_of_words[char]= sum(select_replicas[\"length\"])\n", " s = sum(number_of_words.values())\n", " x=0\n", " for char in set(df_of_this_scene[\"Character\"] ) :\n", " \n", " ax.add_patch(Rectangle((x,y),number_of_words[char]*10.0/s,-s/100.0,facecolor = map_colors[char],edgecolor=\"black\"))\n", " x+= number_of_words[char]*10.0/s\n", "\n", " plt.text(10.2,y-s/200.0,scene)\n", " y-=s/100.0\n", " already_seen.append(scene)\n", " ax.set(xlim=(0, 10), ylim=(y, 0))\n", " ax.axes.get_xaxis().set_visible(False)\n", " ax.axes.get_yaxis().set_visible(False)\n", " plt.show()\n", " \n", " " ] } ], "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 }