Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een lijst target_entities met alle entiteiten voor elk van de documents, en voeg een tuple van (entiteitstekst, entiteitslabel) toe alleen als Jumbo in de entiteitstekst voorkomt.
  • Voeg voor elke tuple in target_entities True toe aan een lijst correct_labels als het entiteitslabel (tweede element in de tuple) PRODUCT is, anders voeg je False toe.

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)
Code bewerken en uitvoeren