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
Oefeninstructies
- Split het script
holy_grailin regels met het regeleinde-teken ('\n'). - Gebruik
re.sub()binnen een list comprehension om aanwijzingen zoalsARTHUR:enSOLDIER #1te vervangen. Het patroon is al voor je geschreven. - Gebruik een list comprehension om
lineste tokenizen metregexp_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_wordsgenoemd.- Gebruik
t_lineals je iteratorvariabele om overtokenized_lineste itereren, en gebruik vervolgens de functielen()om de regellengtes te berekenen.
- Gebruik
- Plot een histogram van
line_num_wordsmetplt.hist(). Vergeet ook nietplt.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
____