Add work on character analysis

parent c0fb1b7d
...@@ -166,7 +166,7 @@ ...@@ -166,7 +166,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"En effet, le résultats obtenus n'est pas un objet null, valeur None python" "En effet, le résultats obtenus n'est pas un objet null, à savoir une valeur None en python"
] ]
}, },
{ {
...@@ -230,16 +230,52 @@ ...@@ -230,16 +230,52 @@
" isStartPersoListLine = True\n", " isStartPersoListLine = True\n",
" currentLine = fileToAnalyse.readline()\n", " currentLine = fileToAnalyse.readline()\n",
" \n", " \n",
" # La lecture s'est arrêtée car la ligne de début de définition\n", " # La lecture s'est arrêtée car la ligne de début de définition de la liste des personnages a été rencontrée.\n",
" # de la liste des personnages a été rencontrée.\n", " # Nous avons néanmoins lue la ligne suivante. Nous devons maintenant lire ligne par ligne,\n",
" # Nous avons néanmoins lue la ligne suivante.\n",
" # Nous devons maintenant lire ligne par ligne,\n",
" # la liste des personnages au format suivant:\n", " # la liste des personnages au format suivant:\n",
" # \"- NomPersonnage, lien, lien, ...\"\n", " # \"- NomPersonnage, lien, lien, ...\"\n",
" # Ainsi dès que la ligne ne commence plus par un tiret\n", " # Ainsi dès que la ligne ne commence plus par un tiret nous pouvons arrêter la lecture et le remplissage\n",
" # nous pouvons arrêter la lecture et le remplissage\n",
" # du dictionnaire.\n", " # du dictionnaire.\n",
" " " isAPersoLine = True\n",
" while (currentLine and isAPersoLine):\n",
" # Traitement de la ligne courante qui est obligatoirement\n",
" # une ligne listant un personnage de la pièce.\n",
" # Comme le montre l'exemple au-dessus, le nom ainsi que\n",
" # les différents types de liens sont séparés par une virgule.\n",
" parts = currentLine.split(',')\n",
" # La ligne au-dessus crée une liste dont chaque élément\n",
" # est séparé par des virgules\n",
" # typiquement \"tata, titi, toto\".split(',') --> ['tata', ' titi', ' toto']\n",
" # Création d'un dictionnaire vide temporaire pour enregistrer les liens\n",
" # ainsi que la couleur à paramétrer\n",
" persoCaracs = {\"links\":[],\"color\":None}\n",
" # Le premier élément donne le nom du personnage, indice 0 de la liste\n",
" # Les éléments suivants donnent les liens avec les autres personnages\n",
" # On parcours le reste de ces derniers\n",
" for elt in parts[1,:]:\n",
" # En regardant cette partie dans le fichier,\n",
" # on voit que soit les parties commencent\n",
" # par un espace et une lettre,\n",
" # soit un espace et un \"et\" que l'on ne\n",
" # souhaite pas capturer\n",
" # On vérifie si l'élément commence par \" et \" ou non\n",
" if elt.startswith(\" et \"):\n",
" # L'élément commence bien par \" et \"\n",
" # on enlève cette partie\n",
" currentLink = elt[4:]\n",
" else:\n",
" # Ce n'est pas le cas, on enlève juste\n",
" # l'espace\n",
" currentLink = elt[1:]\n",
" persoCaracs[\"links\"].append(currentLink)\n",
" # On enregistre le dictionnaire temporaire des caractéristiques\n",
" # du personnage courant rempli, dans le dictionnaire\n",
" # global des personnages\n",
" emptyPersoDict[parts[0]] = perso\n",
" currentLine = fileToAnalyse.readline()\n",
" m = re.search('(?<=\\s–\\s)[A-ZÀ-Ÿ]{1}[a-zA-ZÀ-ÿ\\s,\\']+', currentLine)\n",
" if m is None:\n",
" isAPersoLine = False"
] ]
}, },
{ {
......
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