Diagramm-Übung
Nutze deine neuen Skills, um mit matplotlib die Anzahl der Wörter pro Zeile im Skript zu ermitteln und zu visualisieren. Das Holy-Grail-Skript wurde bereits für dich geladen. Nutzer Regex, um die Wörter pro Zeile finden.
Listenabstraktionen beschleunigen hier die Berechnungen. Zum Beispiel ruft my_lines = [tokenize(l) for l in lines] die Funktion tokenize für jede Zeile in der Liste lines auf. Die transformierte Liste wird in der Variablen my_lines gespeichert.
Du hast über die Variable holy_grail Zugriff auf das gesamte Skript. Leg los!
Diese Übung ist Teil des Kurses
Einführung in Natural Language Processing mit Python
Anleitung zur Übung
- Teile das Skript
holy_grailmit dem Zeilenumbruch ('\n') in einzelne Zeilen auf. - Verwende
re.sub()in einer Listenabstraktion, um Sprechernamen wieARTHUR:undSOLDIER #1zu entfernen. Das Muster wurde bereits für dich geschrieben. - Tokenisiere
linesmitregexp_tokenize()in einer Listenabstraktion und behalte nur Wörter (Buchstaben und Zahlen). Erinnere dich: Das Muster für Wörter ist"\w+". - Erstelle per Listenabstraktion eine Liste der Zeilenlängen namens
line_num_words.- Verwende
t_lineals Iteratorvariable fürtokenized_linesund dann die Funktionlen(), um die Zeilenlängen zu berechnen.
- Verwende
- Zeichne ein Histogramm von
line_num_wordsmitplt.hist(). Vergiss nicht, zusätzlichplt.show()zu verwenden, um die Grafik 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
____