ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea un documento de spacy llamado doc pasando el mensaje "let's see that jacket in red and some blue jeans" al objeto nlp.
  • En la función find_parent_item(word), itera sobre los ancestors de cada word hasta encontrar un entity_type() de "item".
  • En la función assign_colors(doc), itera sobre el doc hasta encontrar un entity_type de "color". Luego, busca el elemento padre de esta word.
  • Pasa el documento de spacy a la función assign_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
____ 
Editar y ejecutar código