Aan de slagGa gratis aan de slag

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

Cursus bekijken

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.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in 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