Prática de gráficos
Experimente usar suas novas habilidades para encontrar e traçar o número de palavras por linha no script usando matplotlib
. O script do Santo Graal é carregado para você, e você precisa usar o regex para localizar as palavras por linha.
O uso de compreensões de lista aqui acelerará seus cálculos. Por exemplo: my_lines = [tokenize(l) for l in lines]
chamará uma função tokenize
em cada linha da lista lines
. A nova lista transformada será salva na variável my_lines
.
Você tem acesso a todo o script na variável holy_grail
. Você pode ir em frente!
Este exercício faz parte do curso
Introdução ao processamento de linguagem natural em Python
Instruções de exercício
Divida o script
holy_grail
em linhas usando o caractere de nova linha ('\n'
).Use
re.sub()
dentro de uma compreensão de lista para substituir prompts comoARTHUR:
eSOLDIER #1
. O padrão foi escrito para você.Use uma compreensão de lista para tokenizar
lines
comregexp_tokenize()
, mantendo apenas as palavras. Lembre-se de que o padrão para palavras é"\w+"
.Use uma compreensão de lista para criar uma lista de comprimentos de linha chamada
line_num_words
.- Use
t_line
como sua variável de iteração para iterar sobretokenized_lines
e, em seguida, a funçãolen()
para calcular os comprimentos de linha.
- Use
Trace um histograma de
line_num_words
usandoplt.hist()
. Não se esqueça de usarplt.show()
também para exibir o gráfico.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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
____