Charting Praxis
Nutze deine neuen Fähigkeiten, um die Anzahl der Wörter pro Zeile im Skript mit matplotlib zu finden und zu berechnen. Das Holy Grail-Skript wird für dich geladen, und du musst Regex verwenden, um die Wörter pro Zeile zu finden.
Die Verwendung von List Comprehensions wird deine Berechnungen beschleunigen. Zum Beispiel: my_lines = [tokenize(l) for l in lines] ruft in jeder Zeile der Liste lines eine Funktion tokenize auf. Die neue transformierte Liste wird in der Variablen my_lines gespeichert.
Du hast Zugriff auf das gesamte Skript in der Variable holy_grail. Los geht‘s!
Diese Übung ist Teil des Kurses
Einführung in die natürliche Sprachverarbeitung in Python
Anleitung zur Übung
Teile das Skript
holy_grailmit dem Zeilenumbruchzeichen ('\n') in Zeilen auf.Verwende
re.sub()in einem Listenverständnis, um die Aufforderungen wieARTHUR:undSOLDIER #1zu ersetzen. Das Muster ist für dich geschrieben worden.Verwende ein Listenverständnis, um
linesmitregexp_tokenize()zu tokenisieren und nur Wörter zu behalten. Erinnere dich daran, dass das Muster für Wörter"\w+"ist.Verwende ein Listenverständnis, um eine Liste von Zeilenlängen mit dem Namen
line_num_wordszu erstellen.- Verwende
t_lineals Iteratorvariable, um übertokenized_lineszu iterieren, und dann die Funktionlen(), um die Zeilenlängen zu berechnen.
- Verwende
Zeichne ein Histogramm von
line_num_wordsmitplt.hist(). Vergiss nicht, auchplt.show()zu verwenden, um den Plot anzuzeigen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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
____