corrections of problems with startswith, replacement by working regex to...

corrections of problems with startswith, replacement by working regex to detect acts and scenes lines
parent 8a8363da
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8, "execution_count": 23,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -314,7 +314,7 @@ ...@@ -314,7 +314,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 35,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -332,6 +332,12 @@ ...@@ -332,6 +332,12 @@
" :return: dataframe pandas dont le template est donné par le dictionnaire\n", " :return: dataframe pandas dont le template est donné par le dictionnaire\n",
" \"\"\"\n", " \"\"\"\n",
" currentLine = fileToAnalyse.readline()\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", " # Variable pour enregistrer le numéro de l'acte courant\n",
" actNum = 0\n", " actNum = 0\n",
" # Variable pour enregistrer le numéro de la scène courante\n", " # Variable pour enregistrer le numéro de la scène courante\n",
...@@ -341,13 +347,15 @@ ...@@ -341,13 +347,15 @@
" \n", " \n",
" # Boucle principale de parcours du fichier texte\n", " # Boucle principale de parcours du fichier texte\n",
" while (currentLine):\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", " # Déclaration d'un acte de la pièce\n",
" # On incrémente le numéro d'acte\n", " # On incrémente le numéro d'acte\n",
" actNum += 1\n", " actNum += 1\n",
" # On remet à zéro le numéro de la scène\n", " # On remet à zéro le numéro de la scène\n",
" sceneNum = 0\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", " # Déclaration d'une scène de la pièce\n",
" # On incrémente le numéro de scène\n", " # On incrémente le numéro de scène\n",
" sceneNum += 1\n", " sceneNum += 1\n",
...@@ -372,12 +380,13 @@ ...@@ -372,12 +380,13 @@
" # qui sont leur nom.\n", " # qui sont leur nom.\n",
" for namePerso in persoDict:\n", " for namePerso in persoDict:\n",
" # On vérifie si namePerso fait partie des protagonistes\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", " if m is not None:\n",
" # Le résultat de la recherche n'est pas vide,\n", " # Le résultat de la recherche n'est pas vide,\n",
" # le personnage fait partie des protagonistes\n", " # le personnage fait partie des protagonistes\n",
" # on l'ajoute à la liste des personnages de la scène\n", " # on l'ajoute à la liste des personnages de la scène\n",
" scenePersoList.append(m.group(0))\n", " scenePersoList.append(m.group(0))\n",
" print(scenePersoList)\n",
" previousLineIsScene = False\n", " previousLineIsScene = False\n",
" \n", " \n",
" \n", " \n",
...@@ -444,7 +453,7 @@ ...@@ -444,7 +453,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": 36,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
...@@ -457,7 +466,145 @@ ...@@ -457,7 +466,145 @@
"\n", "\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", "{'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" "##################################################\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 @@ ...@@ -480,7 +627,7 @@
" print(\"##################################################\\n\")\n", " print(\"##################################################\\n\")\n",
" print(avarePersoDict)\n", " print(avarePersoDict)\n",
" print(\"\\n##################################################\")\n", " print(\"\\n##################################################\")\n",
"\n", " \n",
" textDataSynthesisTableDf = generate_text_synthesis_data_table(avareFile, avarePersoDict, avareAnalysisDict)\n", " textDataSynthesisTableDf = generate_text_synthesis_data_table(avareFile, avarePersoDict, avareAnalysisDict)\n",
"\n", "\n",
"# Le tableau de données récapitulatif est maintenant prêt à être utilisé\n", "# Le tableau de données récapitulatif est maintenant prêt à être utilisé\n",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment