Začněte nyníZačněte zdarma

Procvičení: vizualizace dat

Zkus využít nově nabyté dovednosti a pomocí matplotlib zjistit a zobrazit počet slov na každém řádku skriptu. Skript Monty Python a Svatý Grál je již načtený – stačí použít regex k nalezení slov na každém řádku.

List comprehensions ti výpočty výrazně urychlí. Například: my_lines = [tokenize(l) for l in lines] zavolá funkci tokenize na každý řádek ze seznamu lines a výsledek uloží do proměnné my_lines.

Celý skript máš k dispozici v proměnné holy_grail. Pusť se do toho!

Toto cvičení je součástí kurzu

Úvod do zpracování přirozeného jazyka v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Rozděl skript holy_grail na řádky pomocí znaku nového řádku ('\n').
  • Uvnitř list comprehension použij re.sub() k odstranění poznámek jako ARTHUR: nebo SOLDIER #1. Vzor je již připravený.
  • Pomocí list comprehension tokenizuj lines funkcí regexp_tokenize() tak, aby zůstala pouze slova. Vzor pro slova je "\w+".
  • Pomocí list comprehension vytvoř seznam délek řádků s názvem line_num_words.
    • Jako proměnnou iterátoru použij t_line pro průchod přes tokenized_lines a délku každého řádku zjisti pomocí funkce len().
  • Vykresli histogram line_num_words pomocí plt.hist(). Nezapomeň přidat také plt.show() pro zobrazení grafu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
____
Upravit a spustit kód