LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Teile das Skript holy_grail mit dem Zeilenumbruch ('\n') in einzelne Zeilen auf.
  • Verwende re.sub() in einer Listenabstraktion, um Sprechernamen wie ARTHUR: und SOLDIER #1 zu entfernen. Das Muster wurde bereits für dich geschrieben.
  • Tokenisiere lines mit regexp_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_line als Iteratorvariable für tokenized_lines und dann die Funktion len(), um die Zeilenlängen zu berechnen.
  • Zeichne ein Histogramm von line_num_words mit plt.hist(). Vergiss nicht, zusätzlich plt.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
____
Code bearbeiten und ausführen