Modelprestaties op je eigen data
In deze oefening ga je oefenen met het evalueren van een bestaand model op je eigen data. Het doel is hier om de modelprestaties te bekijken voor een specifiek entiteitslabel, PRODUCT. Als een model een groot percentage van de PRODUCT-entiteiten correct kan classificeren (bijv. meer dan 75%), hoef je het model niet te trainen op voorbeelden van PRODUCT-entiteiten; anders is het verstandig het model te trainen om de prestaties op voorspellingen van PRODUCT-entiteiten te verbeteren.
Voor deze oefening gebruik je twee reviews uit de Amazon Fine Food Reviews-gegevensset. Je kunt deze reviews benaderen via de lijst texts.
Het en_core_web_sm-model is al voor je geladen. Je kunt het aanroepen met nlp(). Het model is al uitgevoerd op de lijst texts en documents, een lijst met Doc-objecten, is beschikbaar om te gebruiken.
Deze oefening maakt deel uit van de cursus
Natural Language Processing met spaCy
Oefeninstructies
- Maak een lijst
target_entitiesmet alle entiteiten voor elk van dedocuments, en voeg een tuple van (entiteitstekst, entiteitslabel) toe alleen alsJumboin de entiteitstekst voorkomt. - Voeg voor elke tuple in
target_entitiesTruetoe aan een lijstcorrect_labelsals het entiteitslabel (tweede element in de tuple)PRODUCTis, anders voeg jeFalsetoe.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Append a tuple of (entities text, entities label) if Jumbo is in the entity
target_entities = []
for doc in ____:
target_entities.extend([(ent.____, ent.____) for ent in doc.____ if "Jumbo" in ent.text])
print(target_entities)
# Append True to the correct_labels list if the entity label is `PRODUCT`
correct_labels = []
for ent in target_entities:
if ____[1] == "PRODUCT":
correct_labels.append(____)
else:
correct_labels.append(____)
print(correct_labels)