IniziaInizia gratis

Esercizio di grafici

Metti in pratica le nuove abilità per trovare e rappresentare con un grafico il numero di parole per riga nello script usando matplotlib. Lo script di The Holy Grail è già caricato per te e dovrai usare le regex per trovare le parole per riga.

Usare le list comprehension qui velocizzerà i calcoli. Per esempio: my_lines = [tokenize(l) for l in lines] chiamerà la funzione tokenize su ogni riga nella lista lines. La nuova lista trasformata verrà salvata nella variabile my_lines.

Hai accesso all'intero script nella variabile holy_grail. Vai!

Questo esercizio fa parte del corso

Introduzione al Natural Language Processing in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Dividi lo script holy_grail in righe usando il carattere di nuova riga ('\n').
  • Usa re.sub() dentro una list comprehension per sostituire i prompt come ARTHUR: e SOLDIER #1. Il pattern è già scritto per te.
  • Usa una list comprehension per tokenizzare lines con regexp_tokenize(), mantenendo solo le parole. Ricorda che il pattern per le parole è "\w+".
  • Usa una list comprehension per creare una lista delle lunghezze delle righe chiamata line_num_words.
    • Usa t_line come variabile iteratrice per iterare su tokenized_lines, e poi la funzione len() per calcolare le lunghezze delle righe.
  • Traccia un istogramma di line_num_words usando plt.hist(). Non dimenticare di usare anche plt.show() per visualizzare il grafico.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
____
Modifica ed esegui il codice