Asignar roles con el analizador de spaCy
En este ejercicio usarás el potente analizador sintáctico de spaCy para asignar roles a las entidades en los mensajes de tus usuarios. Para ello, definirás dos funciones, find_parent_item() y assign_colors(). Así, usarás un árbol de análisis para asignar roles, igual que hizo Alan en el vídeo.
Recuerda que puedes acceder a los ancestros de una palabra usando su atributo .ancestors.
Este ejercicio forma parte del curso
Creación de chatbots en Python
Instrucciones del ejercicio
- Crea un documento de
spacyllamadodocpasando el mensaje"let's see that jacket in red and some blue jeans"al objetonlp. - En la función
find_parent_item(word), itera sobre losancestorsde cadawordhasta encontrar unentity_type()de"item". - En la función
assign_colors(doc), itera sobre eldochasta encontrar unentity_typede"color". Luego, busca el elemento padre de estaword. - Pasa el documento de
spacya la funciónassign_colors().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create the document
doc = ____
# Iterate over parents in parse tree until an item entity is found
def find_parent_item(word):
# Iterate over the word's ancestors
for parent in ____:
# Check for an "item" entity
if entity_type(____) == "____":
return parent.text
return None
# For all color entities, find their parent item
def assign_colors(doc):
# Iterate over the document
for word in ____:
# Check for "color" entities
if entity_type(word) == "____":
# Find the parent
item = ____
print("item: {0} has color : {1}".format(item, word))
# Assign the colors
____