When the Catalog’s Own Labels Lie: Classify by the Title, Not the Shelf

Date:

A vendor filed a physics course under “Artificial Intelligence.” Trust that label and your classifier inherits their filing decision instead of reading the actual subject.

The short answer: When you classify catalog items by keyword, the item’s own category is a shelf label — where the vendor chose to file it — not a statement of what it is. Foundational and off-topic items routinely sit under a trendy umbrella category, so trusting the category mis-sorts them. Classify title-first: the title is the truest subject signal, the category a weak fallback, and broad “umbrella” categories should be stripped from that fallback so they can’t drag an item off-subject. The mechanical traps that bite any keyword matcher — whole-word needles, specific-before-generic rule order, and validating against the real catalog — are a separate problem; this piece is about the field you match on, and why the category is the wrong one.

This is one spoke of a larger design — a lean, well-shaped category tree — where the same distinction recurs: a subject is what an item is, not where it was filed. Keyword classification means sorting items into buckets by matching words in their metadata. It’s cheap, transparent, and good enough at scale — if you match the right field. The failure mode isn’t the technique; it’s trusting a field that records a vendor’s filing habit rather than the item’s meaning.

The catalog’s category is a shelf label, not the subject

Every catalog carries its own category tree, and it’s tempting to classify from it — the vendor already sorted everything, why re-derive it? Because that tree records where each item was shelved, which is not the same as what it’s about. A provider building a fashionable “Artificial Intelligence” track will file its foundational prerequisites — a physics primer, an electronics intro, a hardware course — under that track, because that’s the curriculum they belong to. Their category is honest about the curriculum and misleading about the subject. Classify from it and your physics primer becomes an AI item, inheriting a filing decision you never meant to adopt.

A catalog category tells you where the vendor shelved an item, not what the item is.

Title-first: trust the item’s own words

The most reliable signal for what an item is about is its title — the words chosen to describe that item, not the shelf it sits on. So make the classifier read the title first and treat the category as a weak fallback, consulted only when the title yields no signal. “Introduction to Circuits” says circuits no matter what track it’s filed under; let the title win and the shelf-label trap mostly disappears. The category still helps for genuinely uninformative titles (“Capstone Project” tells you nothing; its category might) — but it’s the backstop, not the primary.

Strip the umbrella categories that mislabel

Title-first isn’t quite enough on its own, because when the title is uninformative you fall back to the category — and that’s exactly where the misleading umbrella lives. So before using the category as a fallback, strip the broad umbrella terms that describe a curriculum rather than a subject (the trendy-school names). Keep the specific parts of the category, drop the umbrella, and the fallback stops dragging vague-titled items into the wrong bucket. Concretely: an item titled only “Capstone” with category “Data Science / Practicum” can keep “Data Science” as a hint; an item under “Computer Science / Artificial Intelligence” whose title is off-topic should not have “Artificial Intelligence” pull it in.

The mechanical traps are real — but they’re a solved, separate problem

Once you’re matching on the right field, keyword matching still has its own well-known bugs: short substrings matching inside longer words ("api" inside “capital”), rule order letting a generic pattern beat a specific one (a "mechanics" rule catching “statistical mechanics”), and shipping a classifier you’ve only reasoned about instead of dry-running it against the real catalog. Those are worth getting right — but they’re the mechanics of matching, not the subject of this piece. The point here is upstream of all of them: even a flawless matcher gives you garbage if you point it at the category field, because that field records a filing decision, not a subject. Fix the field first; then fix the matching.

Classify by the title, not the shelfFix which field you match on before you fix how you match.
The trap: category = shelf label

Where the vendor FILED it (often under a trendy umbrella), not what it IS. Classify from it and you inherit their filing decision – physics under 'AI'.

Title-first: the item's own words

The title describes THAT item, not the shelf it sits on. Read it as the primary signal; 'Introduction to Circuits' says circuits, any shelf.

Fallback: strip the umbrella first

Only for an uninformative title, fall back to the category – but strip the broad umbrella terms (the curriculum names). Keep only the specific parts.

Then the mechanics (-> companion)

Whole-word needles, specific-before- generic order, dry-run the catalog. The matching traps – covered in 'classifying by title'.

A perfect matcher pointed at the wrong field still mis-sorts. Fix the field first.

A shared title is one more label that lies: on its own it cannot tell you whether two listings are the same course re-hosted or a coincidence .

The short version

A catalog’s category is where a vendor shelved an item, not what it’s about, so classifying from it inherits their filing decisions — foundational and off-topic items get dragged under trendy umbrella categories. Classify title-first (the title is the truest subject signal), use the category only as a fallback, and strip the broad umbrella terms from that fallback so they can’t mislabel vague-titled items. That fixes the field you match on; the mechanics of matching well — whole-word needles, specific-before-generic order, and a dry-run against the real catalog — are a separate problem. The catalog’s labels are data, not truth.

Frequently Asked Questions

Why not just use the catalog’s own categories?

Because they record where the vendor shelved each item, which often reflects a curriculum or a marketing track rather than the item’s actual subject. Foundational prerequisites and cross-listed items end up under the wrong umbrella.

What does “title-first” mean in practice?

Read the item’s title as the primary signal and only fall back to its category when the title yields nothing — because the title describes that specific item, while the category describes where it was filed.

What are “umbrella” categories and why strip them?

Broad category terms that name a curriculum or trendy area (rather than a subject). Left in the fallback, they mislabel any vague-titled item beneath them, so strip them from the fallback and keep only the specific category parts.

When should I trust the category at all?

Only as a backstop for a genuinely uninformative title — a “Capstone Project” tells you nothing, so its category might be the best signal available. Even then, strip the umbrella terms first, and let any real signal in the title override it. The category is the fallback, never the primary.

Isn’t this the same as classifying by title without false positives?

They’re two halves of one problem. This piece is about which field to match on — the title, not the shelf label — and why. The other half is how to match well once you’ve chosen the field: whole-word needles, rule order, and validating against the real catalog. Get the field right first; a perfect matcher pointed at the wrong field still mis-sorts.

Share post:

Subscribe

Popular

More like this
Related

How to Merge Spreadsheets by URL (and Why Our Tool Reported 5 Misses That Weren’t)

Matching two spreadsheets on a URL column is the same job as matching a stock list to a price list by product code. It goes wrong in the same two places: how you clean the code, and how you count what didn't match.

Many-to-One: Why a Mapping Backlog Outgrows Its Target Taxonomy

You're mapping a messy source vocabulary onto a clean target taxonomy. The target has about 5,600 slots, so the job must be roughly 5,600 decisions — right? The backlog is already past 8,900, and still climbing.

The Fix That Didn’t Take: When a Content-Hash Gate Skips Your Code Change

You shipped a fix to how one field is computed, re-ran the pipeline across everything, and it reported a clean run. Then the consistency check still flags those records as wrong. The fix is in the code, the rebuild "ran" — and the records never changed. Your own optimisation skipped them.

Your Dedup Scan Is Over-Counting — Because It Forgot What You Already Fixed

The report said 80 duplicate groups still to resolve. You'd been resolving them for days. You run it again after a big batch and it *still* says 80-ish. The backlog isn't stubborn — the scan is counting work you already finished.