Exercice de visualisation
Mettez en pratique vos nouvelles compétences pour trouver et tracer le nombre de mots par ligne dans le script à l’aide de matplotlib. Le script 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.
Les compréhensions de listes accéléreront 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’intégralité du script dans la variable holy_grail. Lancez-vous !
Cet exercice fait partie du cours
Introduction au Natural Language Processing (NLP) en Python
Instructions
- Scindez le script
holy_grailen lignes en utilisant le caractère de nouvelle ligne ('\n'). - Utilisez
re.sub()dans une compréhension de liste pour remplacer les indications commeARTHUR:etSOLDIER #1. Le motif a été écrit pour vous. - Utilisez une compréhension de liste pour tokeniser
linesavecregexp_tokenize(), en ne gardant que 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_linecomme variable d’itération pour parcourirtokenized_lines, puis la fonctionlen()pour calculer les longueurs des lignes.
- Utilisez
- Tracez un histogramme de
line_num_wordsavecplt.hist(). N’oubliez pas d’utiliser aussiplt.show()pour afficher le graphique.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
____