Přiřazení rolí pomocí parseru spaCy
V tomto cvičení využiješ výkonný syntaktický parser spaCy k přiřazení rolí entitám ve zprávách uživatelů. Definuješ dvě funkce: find_parent_item() a assign_colors(). Při tom použiješ strom závislostí k přiřazení rolí – podobně jako to ve videu ukázal Alan.
Připomeňme, že k předkům slova se dostaneš přes atribut .ancestors.
Toto cvičení je součástí kurzu
Building Chatbots in Python
Pokyny k cvičení
- Vytvoř dokument
spacys názvemdoctak, že předáš zprávu"let's see that jacket in red and some blue jeans"objektunlp. - Ve funkci
find_parent_item(word)iteruj přesancestorskaždéhoword, dokud nenajdeš entitu sentity_type()rovným"item". - Ve funkci
assign_colors(doc)iteruj přesdoc, dokud nenajdeš entitu sentity_typerovným"color". Pak pro totowordnajdi nadřazený prvek. - Předej dokument
spacydo funkceassign_colors().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____