Práctica de representación
Intenta utilizar tus nuevas habilidades para encontrar y trazar el número de palabras por línea en el guión utilizando matplotlib. El script Santo Grial se carga por ti, y tienes que utilizar regex para encontrar las palabras por línea.
Utilizar aquí la comprensión 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 a todo el guión en la variable holy_grail. ¡A por ello!
Este ejercicio forma parte del curso
Introducción al procesamiento de lenguaje natural en Python
Instrucciones del ejercicio
Divide el script
holy_grailen líneas utilizando el carácter de nueva línea ('\n').Utiliza
re.sub()dentro de una comprensión de lista para sustituir las indicaciones comoARTHUR:ySOLDIER #1. El patrón se ha escrito para ti.Utiliza una comprensión de lista para tokenizar
linesconregexp_tokenize(), manteniendo sólo las palabras. Recuerda que el patrón de las palabras es"\w+".Utiliza una comprensión de lista para crear una lista de longitudes de línea llamada
line_num_words.- Utiliza
t_linecomo variable iteradora para iterar sobretokenized_lines, y luego la funciónlen()para calcular las longitudes de las líneas.
- Utiliza
Traza un histograma de
line_num_wordsutilizandoplt.hist(). No olvides utilizar tambiénplt.show()para visualizar la trama.
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
____