CourseNatural Language Processing: The Complete Course · Module 3: Linguistic Structure: Tags, Parses and Entities · part 23 of 73
Part 23 · Module 3: Linguistic Structure: Tags, Parses and Entities

Lab: The Tidewell entity extractor, scored

63 min read·14 Oct 2026
Module 3 · Lab · About 60 minutes · Needs: lessons 1 to 3 of this module, and the Module 2 lab (or its cells, pasted here)

What you are building

INBOX/ENTITIES.PY tags, noun phrases parse, negation scope ruler before the model WHAT DEV GETS one record per message entity-level score models/ product model scored on Ines's 80 hand-written messages
The lab settles one file (blue), builds Dev's record from it, scores it entity by entity (green) and regenerates the product model, which is never committed (grey).

Dev asked in week 3 for the product, the order number, the date and the price in every booking, so that he stops retyping them into the workshop diary. The three lessons each added a part to inbox/entities.py: tags and noun phrases, the parse and negation scope, and the EntityRuler in front of spaCy's model. This lab settles those parts into one file with its tests, puts them together into one record per message, and scores the extractor at entity level on Ines's hand-written test set, label by label and language by language. Last, it trains Lesson 3's product model again with a fixed seed and saves it under models/.

Open a new Colab notebook, call it module-03-lab.ipynb, and run each cell in order.

The rest of this part opens with an account

Signing up is free and takes one email. Nothing to pay, and nothing renews.