diff --git a/module3/exo3/exercice_fr.ipynb b/module3/exo3/exercice_fr.ipynb index ef7096da4c16b3fee07e54a4802ab9dc1d4d565e..f73784c6bcb7d2c8c0c1e20ea518cb11dfb5b0c2 100644 --- a/module3/exo3/exercice_fr.ipynb +++ b/module3/exo3/exercice_fr.ipynb @@ -230,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -332,6 +332,12 @@ " :return: dataframe pandas dont le template est donné par le dictionnaire\n", " \"\"\"\n", " currentLine = fileToAnalyse.readline()\n", + " # Expression régulière de détection de déclaration des actes\n", + " # Ligne qui commence par exactement 2 #, ni plus ni moins, donc tout autre caractère qu'un #\n", + " actLinePattern = re.compile('^#{2}[^#]')\n", + " # Expression régulière de détection de déclaration des scènes\n", + " # Ligne qui commence par exactement 3 #, ni plus ni moins, donc tout autre caractère qu'un #\n", + " sceneLinePattern = re.compile('^#{3}[^#]')\n", " # Variable pour enregistrer le numéro de l'acte courant\n", " actNum = 0\n", " # Variable pour enregistrer le numéro de la scène courante\n", @@ -341,13 +347,15 @@ " \n", " # Boucle principale de parcours du fichier texte\n", " while (currentLine):\n", - " if currentLine.startswith('##'):\n", + " if actLinePattern.match(currentLine):\n", + " print(currentLine)\n", " # Déclaration d'un acte de la pièce\n", " # On incrémente le numéro d'acte\n", " actNum += 1\n", " # On remet à zéro le numéro de la scène\n", " sceneNum = 0\n", - " elif currentLine.startswith('###'):\n", + " elif sceneLinePattern.match(currentLine):\n", + " print(currentLine)\n", " # Déclaration d'une scène de la pièce\n", " # On incrémente le numéro de scène\n", " sceneNum += 1\n", @@ -372,12 +380,13 @@ " # qui sont leur nom.\n", " for namePerso in persoDict:\n", " # On vérifie si namePerso fait partie des protagonistes\n", - " m = re.search(namePerso, currentLine)\n", + " m = re.search(namePerso, currentLine, re.IGNORECASE)\n", " if m is not None:\n", " # Le résultat de la recherche n'est pas vide,\n", " # le personnage fait partie des protagonistes\n", " # on l'ajoute à la liste des personnages de la scène\n", " scenePersoList.append(m.group(0))\n", + " print(scenePersoList)\n", " previousLineIsScene = False\n", " \n", " \n", @@ -444,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -457,7 +466,145 @@ "\n", "{'Harpagon': {'links': [\"Père de Cléante et d'Élise\", 'Amoureux de Mariane'], 'color': None}, 'Cléante': {'links': [\"Fils d'Harpagon\", 'Amant de Mariane'], 'color': None}, 'Élise': {'links': [\"Fille d'Harpagon\", 'Amante de Valère'], 'color': None}, 'Valère': {'links': [\"Fils d'Anselme\", \"Amant d'Élise\"], 'color': None}, 'Mariane': {'links': ['Amante de Cléante', \"aimée d'Harpagon\"], 'color': None}, 'Anselme': {'links': ['Père de Valère et de Mariane'], 'color': None}, 'Frosine': {'links': [\"Femme d'Intrigue\"], 'color': None}, 'Maitre Simon': {'links': ['Courtier'], 'color': None}, 'Maitre Jacques': {'links': [\"Cuisinier et Cocher d'Harpagon\"], 'color': None}, 'La Flèche': {'links': ['Valet de Cléante'], 'color': None}, 'Dame Claude': {'links': [\"Servante d'Harpagon\"], 'color': None}, 'Brindavoine': {'links': [\"laquais d'Harpagon\"], 'color': None}, 'La Merluche': {'links': [\"laquais d'Harpagon\"], 'color': None}, 'Le commissaire': {'links': ['son clerc'], 'color': None}}\n", "\n", - "##################################################\n" + "##################################################\n", + "## Acte Premier.\n", + "\n", + "### Scène Première.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Élise', 'Valère']\n", + "### Scène II.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Cléante', 'Élise']\n", + "### Scène III.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'La Flèche']\n", + "### Scène IV.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise']\n", + "### Scène V.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Élise', 'Valère']\n", + "## Acte II.\n", + "\n", + "### Scène Première.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Cléante', 'La Flèche']\n", + "### Scène II.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'La Flèche']\n", + "### Scène III.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Frosine']\n", + "### Scène IV.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Frosine', 'La Flèche']\n", + "### Scène V.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Frosine']\n", + "## Acte III.\n", + "\n", + "### Scène Première.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Valère', 'Dame Claude', 'Brindavoine', 'La Merluche']\n", + "### Scène II.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Valère']\n", + "### Scène III.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Mariane', 'Frosine']\n", + "### Scène IV.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Mariane', 'Frosine']\n", + "### Scène V.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Mariane', 'Frosine']\n", + "### Scène VI.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Élise', 'Mariane', 'Frosine']\n", + "### Scène VII.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Mariane', 'Frosine']\n", + "### Scène VIII.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Mariane', 'Frosine', 'Brindavoine']\n", + "### Scène IX.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Mariane', 'Frosine', 'La Merluche']\n", + "## Acte IV.\n", + "\n", + "### Scène Première.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Cléante', 'Élise', 'Mariane', 'Frosine']\n", + "### Scène II.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Mariane', 'Frosine']\n", + "### Scène III.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante']\n", + "### Scène IV.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante']\n", + "### Scène V.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante']\n", + "### Scène VI.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Cléante', 'La Flèche']\n", + "### Scène VII.\n", + "\n", + "Set previousLineIsScene to True\n", + "[]\n", + "## Acte V.\n", + "\n", + "### Scène Première.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Le Commissaire']\n", + "### Scène II.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Le Commissaire']\n", + "### Scène III.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Valère', 'le Commissaire']\n", + "### Scène IV.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Élise', 'Valère', 'Mariane', 'Frosine', 'le Commissaire']\n", + "### Scène V.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Élise', 'Valère', 'Mariane', 'Anselme', 'Frosine', 'le Commissaire']\n", + "### Scène VI.\n", + "\n", + "Set previousLineIsScene to True\n", + "['Harpagon', 'Cléante', 'Élise', 'Valère', 'Mariane', 'Anselme', 'Frosine', 'La Flèche', 'le Commissaire']\n" ] } ], @@ -480,7 +627,7 @@ " print(\"##################################################\\n\")\n", " print(avarePersoDict)\n", " print(\"\\n##################################################\")\n", - "\n", + " \n", " textDataSynthesisTableDf = generate_text_synthesis_data_table(avareFile, avarePersoDict, avareAnalysisDict)\n", "\n", "# Le tableau de données récapitulatif est maintenant prêt à être utilisé\n",