CommencezCommencez gratuitement

Mise en graphique – pratique

Mettez en pratique vos nouvelles compétences pour trouver et représenter le nombre de mots par ligne dans le scénario à l'aide de matplotlib. Le scénario de The Holy Grail est déjà chargé pour vous, et vous devez utiliser des expressions régulières pour trouver les mots par ligne.

L'utilisation de compréhensions de listes accélérera vos calculs. Par exemple : my_lines = [tokenize(l) for l in lines] appellera une fonction tokenize sur chaque ligne de la liste lines. La nouvelle liste transformée sera enregistrée dans la variable my_lines.

Vous avez accès à l'ensemble du scénario dans la variable holy_grail. À vous de jouer !

Cette activité fait partie du cours

Introduction au traitement du langage naturel en Python

Voir le cours

Instructions de l’exercice

  • Scindez le scénario holy_grail en lignes à l'aide du caractère de saut de ligne ('\n').
  • Utilisez re.sub() dans une compréhension de liste pour remplacer les répliques comme ARTHUR: et SOLDIER #1. Le motif a été écrit pour vous.
  • Utilisez une compréhension de liste pour tokeniser lines avec regexp_tokenize(), en gardant uniquement les mots. Rappelez-vous que le motif pour les mots est "\w+".
  • Utilisez une compréhension de liste pour créer une liste de longueurs de lignes appelée line_num_words.
    • Utilisez t_line comme variable d'itération pour parcourir tokenized_lines, puis la fonction len() pour calculer les longueurs de lignes.
  • Tracez un histogramme de line_num_words avec plt.hist(). N'oubliez pas d'utiliser aussi plt.show() pour afficher le graphique.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Split the script into lines: lines
lines = ____.____('\n')

# Replace all script lines for speaker
pattern = "[A-Z]{2,}(\s)?(#\d)?([A-Z]{2,})?:"
lines = [re.____(____, '', l) for l in lines]

# Tokenize each line: tokenized_lines
tokenized_lines = [____ for s in lines]

# Make a frequency list of lengths: line_num_words
line_num_words = [____ for t_line in tokenized_lines]

# Plot a histogram of the line lengths
____

# Show the plot
____
Modifier et exécuter le code