Extract, Classify, Generate: The Three Shapes an AI Output Can Take
Extract, Classify, Generate: The Three Shapes an AI Output Can Take
Once you know what is going into a workload, the next question is what should come out. Beginners tend to think of this as one thing — "the AI reads the document and gives me the data" — but the field splits cleanly into three distinct operations, and they behave differently enough that mixing them up produces solutions that quietly fail. Content Understanding names them directly: extract, classify, and generate. Learning to hear which one a scenario is asking for is one of the highest-value habits in this whole topic.
Extract: the value is already there
Extraction pulls a value that physically exists in the content and copies it into a named field. An invoice number printed at the top right, a date on a receipt, a line item in a table — these are all extraction. The defining property is that the correct answer is a span of the source. If a human reviewer disagreed with the output, they could point at the spot on the page and settle the argument.
Because the answer exists somewhere in the input, extraction is the operation where accuracy is easiest to define and easiest to audit. It is also the operation with the strongest classical heritage: deterministic, purpose-trained document models are extremely good at it for structured forms, and that lineage has not been thrown away. It survives inside the modern service as the high-precision path for templated documents.
Classify: choose from a set you defined
Classification assigns content to one of a fixed list of categories that you supply in advance. Was this call positive, neutral, or hostile? Is this incoming file a claim form, a policy schedule, or a piece of correspondence? Is this chart a bar chart or a line chart?
Two things make classification distinctive. First, the output vocabulary is closed — the model is not inventing a label, it is selecting one, which makes results easy to aggregate, count, and route on. Second, classification is very often not the end of the workload. It is the gate at the front of it. A common and heavily emphasised pattern is to classify an incoming document first, then send it to the analyzer that specialises in that document type. If a scenario describes a mailroom, a shared inbox, or an intake queue where different things arrive mixed together, classification-then-route is almost certainly the shape of the answer.
Classification also does real work inside time-based media, where it can label each segment of a video by category, or tag the sentiment of each stretch of a call.
Generate: produce something that was never written down
Generation creates a value that does not appear anywhere in the source. Summaries are the obvious case, but the more interesting ones are subtler: a scene description for a stretch of footage, a chapter overview, a plain-language statement of the obligations a contract imposes on you.
This is the operation that only became routine with generative models, and it is where the character of the workload changes most. There is no span to point at. Correctness is a judgement, not a lookup. That does not make generation untrustworthy — it makes it a different kind of trustworthy, one that has to be managed with review policy rather than with string comparison.
Why the distinction changes your design
The three operations differ on every dimension you care about. Extraction and classification produce values you can validate mechanically; generation produces values you generally cannot. Extraction is confined to documents in the strictest sense, because "copy the value as it appears" only means something when the value appears. Classification carries a design cost paid up front, in defining a category set that is genuinely exhaustive and genuinely non-overlapping — a badly drawn category list is the most common self-inflicted wound in this area.
Generation carries a different cost: it consumes model capacity in proportion to how much content you ask it to reason over, so switching a video analyzer into segment mode has a price even when you have defined no fields at all.
Crucially, the three are not exclusive. One schema can mix them, and typically does: extract the invoice total, classify the expense category, generate a one-line description for the approver. Thinking of them as three columns in one output rather than three competing products is the mature view.
Mistakes to avoid
- Calling everything extraction. If the answer required judgement or synthesis, it was generation, and it needs a different review policy.
- Using generation where a closed list would do. Free text where you wanted a category makes downstream reporting miserable; classify instead.
- Designing overlapping categories. If two labels could both be right, the model's choice will look random and you will blame the model.
- Assuming classification is the deliverable. Very often it is the routing decision that precedes the real work.
What to carry forward
For any scenario, finish this sentence: the system must copy, choose, or compose. Those three verbs map onto extract, classify, and generate, and they tell you what kind of accuracy you are entitled to expect and how much human oversight the result will need.