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 @@
},
{
"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",
......
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