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 do exercício
Divida o script
holy_grailem 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
linescomregexp_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_linecomo sua variável de iteração para iterar sobretokenized_linese, em seguida, a funçãolen()para calcular os comprimentos de linha.
- Use
Trace um histograma de
line_num_wordsusandoplt.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 completando 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
____