Aan de slagBegin gratis

Oefenen met grafieken

Gebruik je nieuwe skills om het aantal woorden per regel in het script te bepalen en te visualiseren met matplotlib. Het Holy Grail-script is voor je geladen, en je moet regex gebruiken om de woorden per regel te vinden.

List comprehensions versnellen hier je berekeningen. Bijvoorbeeld: my_lines = [tokenize(l) for l in lines] roept een functie tokenize aan op elke regel in de lijst lines. De nieuwe getransformeerde lijst wordt opgeslagen in de variabele my_lines.

Je hebt toegang tot het volledige script in de variabele holy_grail. Succes!

Deze oefening maakt deel uit van de cursus

Introductie tot Natural Language Processing in Python

Bekijk cursus

Oefeninstructies

  • Split het script holy_grail in regels met het regeleinde-teken ('\n').
  • Gebruik re.sub() binnen een list comprehension om aanwijzingen zoals ARTHUR: en SOLDIER #1 te vervangen. Het patroon is al voor je geschreven.
  • Gebruik een list comprehension om lines te tokenizen met regexp_tokenize(), waarbij je alleen woorden behoudt. Onthoud dat het patroon voor woorden "\w+" is.
  • Gebruik een list comprehension om een lijst met regellengtes te maken, line_num_words genoemd.
    • Gebruik t_line als je iteratorvariabele om over tokenized_lines te itereren, en gebruik vervolgens de functie len() om de regellengtes te berekenen.
  • Plot een histogram van line_num_words met plt.hist(). Vergeet ook niet plt.show() te gebruiken om de plot weer te geven.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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
____
Code bewerken en uitvoeren