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_grail
en 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
lines
conregexp_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_line
como 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_words
utilizandoplt.hist()
. No olvides utilizar tambiénplt.show()
para visualizar la trama.
Ejercicio interactivo práctico
Prueba este ejercicio completando 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
____