@@ -163,3 +163,137 @@ Pour finir, j'ai fait un gros diagramme pour montrer la proportion des intervent
Pour voir tous les graphiques, cf fichier jupyter.
# Mission 5: 21/11/23
Sujet 5 : Analyse des dialogues dans l'Avare de Molière.
J'avais déjà un peu expliqué les étapes pour la mission 4, donc voici les étapes plus détaillées.
Objectifs du projet:
- Classer les personnages selon la quantité de parole grâce à une analyse syntaxique du texte (scènes / répliques / mots). En particulier, quel est celui qui parle le plus ? Quel est celui qui ne parle pas du tout ?
- Réaliser un graphique qui montrera le nombre de mots que chaque acteur prononce dans chaque scène en s'inspirant de l'étude de l'Avare de Molière réalisée par l'OBVIL.
## Importation des données
Pour utiliser n'importe quelle donnée, il faut évidemment y avoir accès. Il faut alors importer le texte de la pièce dans le code.
## Compter le nombre d'interventions de chaque personnage
La variable suivante est le compteur pour stocker le nombre d'occurrences du mot. Le "[]" signifie que c'est un tableau vide pour l'instant.
```
compteurs_occurrences = []
```
Les scènes de la pièce sont séparées par des "###" dans le fichier texte. Donc on va séparer les scènes en utilisant cela: le "split("###")" sépare donc les scènes:
Une fois que les scènes sont séparées (on appellera une scène une "partie" à partir de maintenant), on doit trouver combien de fois chaque personnage parle pour chaque partie.
On ne peut pas juste rechercher combien de fois le nom du personnage apparaît, puisqu'il peut être mentionné par un autre sans pour autant parler.
Quand un personnage parle, il est noté **seul sur une ligne** de cette façon: **"HARPAGON."** (ne pas oublier le point).
Donc on doit parcourir chaque partie du texte, et on compte combien de fois le mot apparaît seul sur une ligne:
```
mot_a_chercher = "HARPAGON." # C'est un exemple, mais il faudra faire cela pour tous les personnages. Dans le code il y a une liste de tous les personnages commentés
for partie in parties_texte: # = "Pour chaque partie du texte:"
lignes = partie.strip().splitlines() # on divise la partie en lignes
compteur_occurrences = 0 # On définit le "Compteur d'occurrences" pour cette partie, il est égal à 0 pour l'instant.
for ligne in lignes: # = "Pour chaque ligne de la partie en question:"
if ligne.strip() == mot_a_chercher: # Si le mot apparaît seul sur la ligne (par exemple si la ligne = "HARPAGON."),
compteur_occurrences += 1 # On ajoute +1 au décompte du total de combien de fois le mot apparaît dans la partie
compteurs_occurrences.append(compteur_occurrences) # Ajoute le compteur d'occurrences de cette partie à la liste des compteurs
```
Si on veut savoir le résultat de cette boucle, on peut afficher le nombre d'occurrences du mot dans chaque partie du texte:
```
for i, occurrences in enumerate(compteurs_occurrences, start=1): # Pour chaque valeur de "compteurs_occurences",
print(f"Le mot '{mot_a_chercher}' apparaît {occurrences} fois dans la partie {i} du texte.") # Ecrire "Le mot 'HARPAGON.' apparaît 6 fois dans la partie 2 du texte." (exemple)
```
Autrement dit, le résultat du print est que le nom "HARPAGON." apparaît x fois dans la partie 1, y fois dans la partie 2, etc.
Mais pour stocker ces résultats, on va les mettre dans des tableaux.
# Stocker les données du nombre d'interventions de chaque personnage
D'abord, on fait un tableau avec chaque personnage. Ce sera la base du tableau qu'on va construire.
```
personnages=["HARPAGON", "VALÈRE", "ÉLISE", "CLÉANTE", "LA FLÈCHE", "MARIANE", "ANSELME", "FROSINE", "MAÎTRE SIMON", "MAÎTRE JACQUES", "BRINDAVOINE", "LA MERLUCHE", "LE COMMISSAIRE"]
```
J'ai alors recopié les résultats des compteurs pour chaque personnage et chaque scène dans des tableaux sous cette forme:
Comme il y a 32 scènes et 13 personnages (14 mais yen a un qui parle pas), cela donne quelque chose comme ça (Les 0 signifient que les personnages ne parlent pas de toute la scène):
Le premier chiffre correspond au nombre d'interventions d'Harpagon, le deuxième chiffre pour Valère, etc: