The AI-powered Entity Audit

4.4 Building the Entity Gap Matrix

You don’t have access to this lesson

Please purchase this course, or sign in if you’re already enrolled, to access the course content.

Lesson overview

This lesson brings the module down to a single artefact: a matrix comparing the entities your site covers with those of up to three competitors. It shows how to build it with the Entity Gap Matrix tool, why the unfiltered version is misleading, and how to score Coverage from the filtered one.

What this lesson covers

  • Collecting competitor corpora
  • The Entity Gap Matrix, step by step
  • Normalising names across corpora
  • Raw versus filtered comparisons
  • Filtering chrome in every corpus
  • Scoring Coverage

Run unfiltered, the comparison suggested the demo site’s biggest content gap was Kubernetes. The lesson uses that to show what filtering is for. It runs the same extraction pipeline over four competitor corpora — collected from editorial pages only, with robots.txt respected — then normalises surface forms so that one entity named several ways counts once. The matrix gives each entity one of four verdicts: missing, thin, shared or unique. Raw, the comparison covered 19,821 entities with 8,035 missing; filtered, 5,211 entities with 1,242 missing, and the list of names changed completely.

The central argument is that every corpus must be filtered with the same rules, not only your own. Each site carries its own chrome — navigation, buttons, newsletter boxes — and an unfiltered competitor corpus turns its chrome into apparent coverage, manufacturing gaps that do not exist. The lesson finishes by scoring Coverage from the filtered matrix only; the demo site scores one out of three. A practical follows with a script that finds and removes boilerplate text and chrome entities from each competitor dataset, and keeps a record of what was removed.

Normalisation gets its own section, because it is where most gap analyses quietly break. The demo site’s 96,469 extracted surface forms collapse to 11,854 entities, and each competitor’s corpus shrinks in the same way; without that step, the same entity written two ways appears as both covered and missing. The lesson shows how the tool normalises names and how to check it on your own data.

It also covers collecting competitor content responsibly: editorial pages only, robots.txt respected even when a crawler can ignore it, and non-editorial pages removed before comparison.

This lesson continues Module 4 of The AI-powered Entity Audit and feeds directly into prioritisation in Lesson 4.5. It suits anyone who has produced a gap analysis and wondered why half the missing topics made no sense.

In this lesson you’ll cover:

  • Unfiltered, the biggest content gap was Kubernetes — and why
  • Running the same pipeline on competitor content, and crawling it ethically
  • The four comparison corpora and how they were collected
  • The Entity Gap Matrix, step by step: load, compare, read the verdicts, filter, export
  • Normalisation: collapsing surface forms into entities across four datasets
  • The same comparison run twice — raw and filtered — and what changes
  • Chrome, per corpus: why every corpus must be filtered, not just yours
  • Scoring Coverage from the filtered matrix
Length: 11 minutes|Difficulty: Easy
0 of 48 lessons complete (0%)