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
Istruzioni dell'esercizio
- Dividi lo script
holy_grailin righe usando il carattere di nuova riga ('\n'). - Usa
re.sub()dentro una list comprehension per sostituire i prompt comeARTHUR:eSOLDIER #1. Il pattern è già scritto per te. - Usa una list comprehension per tokenizzare
linesconregexp_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_linecome variabile iteratrice per iterare sutokenized_lines, e poi la funzionelen()per calcolare le lunghezze delle righe.
- Usa
- Traccia un istogramma di
line_num_wordsusandoplt.hist(). Non dimenticare di usare ancheplt.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
____