Práctica de gráficos
Pon en práctica tus nuevas habilidades para calcular y graficar el número de palabras por línea del guion usando matplotlib. El guion de The Holy Grail ya está cargado y necesitarás usar regex para encontrar las palabras por línea.
Usar comprensiones de listas acelerará tus cálculos. Por ejemplo: my_lines = [tokenize(l) for l in lines] llamará a una función tokenize en cada línea de la lista lines. La nueva lista transformada se guardará en la variable my_lines.
Tienes acceso al guion completo en la variable holy_grail. ¡Adelante!
Este ejercicio forma parte del curso
Introducción al Natural Language Processing en Python
Instrucciones del ejercicio
- Divide el guion
holy_grailen líneas usando el carácter de nueva línea ('\n'). - Usa
re.sub()dentro de una comprensión de listas para reemplazar indicaciones comoARTHUR:ySOLDIER #1. El patrón ya está escrito para ti. - Usa una comprensión de listas para tokenizar
linesconregexp_tokenize(), conservando solo palabras. Recuerda que el patrón para palabras es"\w+". - Usa una comprensión de listas para crear una lista de longitudes de línea llamada
line_num_words.- Usa
t_linecomo tu variable iteradora para recorrertokenized_linesy luego la funciónlen()para calcular las longitudes de las líneas.
- Usa
- Traza un histograma de
line_num_wordsusandoplt.hist(). No te olvides de usar tambiénplt.show()para mostrar la gráfica.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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
____