CommencerCommencer gratuitement

Pratique de la cartographie

Essayez d'utiliser vos nouvelles compétences pour trouver et représenter le nombre de mots par ligne dans le script à l'aide de matplotlib. Le script Holy Grail est chargé pour vous, et vous devez utiliser des expressions rationnelles pour trouver les mots par ligne.

L'utilisation de la compréhension des 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 script dans la variable holy_grail. Allez-y !

Cet exercice fait partie du cours

Introduction au traitement du langage naturel en Python

Afficher le cours

Instructions

  • Divisez le script holy_grail en lignes à l'aide du caractère de nouvelle ligne ('\n').

  • Utilisez re.sub() à l'intérieur d'une liste de compréhension pour remplacer les invites telles que ARTHUR: et SOLDIER #1. Le modèle a été écrit pour vous.

  • Utilisez une compréhension de liste pour donner un sens à lines avec regexp_tokenize(), en ne gardant que les mots. Rappelez-vous que le modèle des 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 itératrice pour itérer sur tokenized_lines, puis sur la fonction len() pour calculer la longueur des lignes.
  • Tracez un histogramme de line_num_words à l'aide de plt.hist(). N'oubliez pas d'utiliser plt.show() pour afficher le tracé.

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
____
Modifier et exécuter le code