自分のデータでのモデル性能
この演習では、既存のモデルを自分のデータで評価する練習をします。ここでは特定のエンティティラベル PRODUCT に対するモデル性能を確認することが目的です。モデルが PRODUCT エンティティの大部分(例: 75%超)を正確に分類できる場合は、PRODUCT エンティティの例で追加学習する必要はありません。そうでない場合は、PRODUCT エンティティ予測の性能向上のために学習を検討します。
この演習では、Amazon Fine Food Reviews データセットから2件のレビューを使用します。これらのレビューには texts リストからアクセスできます。
en_core_web_sm モデルはすでに読み込まれており、nlp() で呼び出せます。モデルはすでに texts リストに対して実行済みで、Doc コンテナのリストである documents が利用可能です。
この演習はコースの一部です
spaCyで学ぶNatural Language Processing
演習の手順
- 各
documentsについて、すべてのエンティティを集めたtarget_entitiesリストを作成し、エンティティのテキストにJumboが含まれる場合に限り、(エンティティのテキスト, エンティティのラベル) のタプルを追加します。 target_entities内の任意のタプルについて、エンティティラベル(タプルの2番目の要素)がPRODUCTであればcorrect_labelsリストにTrueを、そうでなければFalseを追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)