Coreference: tracking who and what across a conversation.
People rarely repeat a name. They say "she," then "they," then "the account," and a listener follows all of it without effort. Coreference resolution is the part of natural language processing that teaches a system to do the same. Here is how it works, in plain language.
A conversation is full of words that only mean something once you know what they point back to. Coreference is the step that links those words to the real person, company, or deal they refer to. We walk it the way the field is built. What it is, why it is genuinely hard, how a modern system does it, what reliable reference-tracking unlocks, and where the work is going. The papers behind each idea are linked, so you can read the source yourself.
Linking the words that point to the same thing.
A mention is any span that refers to something. A chain, also called a cluster, is the full set of mentions that refer to one entity.
Listen to a real sales call and you notice almost no one repeats a name. A rep says "I spoke with Dana at Acme last week." Two sentences later it is "she wants to revisit pricing," then "they are worried about the rollout timeline," then "the account has been with us since 2023," then "let me loop in their VP." A person follows all of that without effort. We carry a running cast of characters in our heads and update it with every turn.
Coreference resolution teaches a system to do the same. It reads a passage and decides which words point to the same real-world thing: which pronouns attach to which names, which vague phrases ("the account," "that deal") refer back to something said earlier. The output is a set of chains. Every mention of Dana, by name or by "she" or "her," joins one chain. Every mention of Acme joins another. The system stops seeing loose words and starts seeing entities that persist across the whole call.
The linguistic vocabulary sits one layer down. Anaphora is a word that refers back to something said earlier ("Dana . she"). The earlier thing is the antecedent. A definite description is a phrase like "the account" that points to a known thing without naming it. One clean contrast to set early: coreference is not the same as entity resolution. Coreference links pieces of language inside one passage. Entity resolution decides whether two database records are the same company. They are cousins, and a real pipeline uses both. See Entity resolution for the database side.
Dana works at Acme.
She leads pricing for the company.
Dana joined Acme. She leads the account team. The company is expanding.
| Entity | Mentions |
|---|---|
| Dana | Dana · She |
| Acme | Acme · The company |
From loose words to a running cast.
This is why coreference is upstream of almost everything useful you want to pull from a conversation.
Almost every useful thing you want from a call depends on getting the references right. If a sales voice co-pilot hears "she wants a discount" and cannot tell that "she" is Dana and not the VP, it writes the note onto the wrong contact. If it hears "they pushed the date to March" and loses track of which company "they" is, the next step lands on the wrong deal.
Getting fresh, correct detail into the app fast, while the call is still live, only works if the system reliably knows who "they" is. Coreference is the quiet step that makes the rest trustworthy. Resolve the references first and each downstream fact arrives already attached to its entity. That is the bridge between hearing something and filing it correctly, and it is the thread we follow through the rest of this page.
Tracking who "they" is is harder than it sounds.
Pronouns are ambiguous by design, the candidate set grows with the conversation, and a single wrong reference is never a local error.
Pronouns are ambiguous by design.
"She wants a discount" only resolves if you know who "she" is, and a sentence can hold two valid candidates. The famous hard cases, where one swapped word flips the answer, show that getting this right can need real-world reasoning, not just grammar.
"They" carries too many meanings.
It can be one person referred to in the plural, a whole company, or a group named a minute ago. On a sales call, "they pushed the date" might mean the buying committee, the company, or two named stakeholders. Pick the wrong one and the note moves to the wrong record.
Reference can point forward, not just back.
Some mentions appear before the thing they name. A system that only ever looks backward over what was already said will miss them.
The candidate set grows with the call.
Every span that could be a mention is a candidate, and every pair of candidates is a possible link. Considered naively, the number of spans grows with the square of the length and the links faster still, so a long call is expensive to resolve without smart pruning.
A wrong reference is not a local error.
If "she" attaches to the wrong contact, every fact in that sentence (the discount, the objection, the next step) lands on the wrong person. For a co-pilot updating the app while the call is live, a quiet coreference mistake becomes a confidently wrong record.
Conversation is harder than edited text.
Spoken dialogue spans many short turns, two speakers refer to each other's mentions, and references reach back across turns. Most classic coreference work was built on news and documents, so dialogue and cross-turn reference are an active, harder frontier.
From hand-written rules to reading the whole passage at once.
Find the mentions, score the candidates, link to the best antecedent, and keep it cheap enough to run on a long call.
1The older way: rules and mention pairs
Score the earlier mentions, pick the best match.
Early systems hand-wrote rules (match gender and number, prefer the closest noun phrase) or trained a classifier on pairs of mentions to ask "do these two refer to the same thing?" then stitched the yes-answers into chains. Plain version: the system walks the passage and, for each pronoun or description, scores the earlier mentions and picks the top-ranked one.
The limit: this leaned on a separate mention detector and a syntactic parser run first, and errors in those stages propagated into the result.
Dana spoke with the VP at Acme. She will send the proposal.
Illustrative ranking scores, not probabilities. The sentence remains ambiguous without more context.
2Reading the whole passage, end to end
One model finds the mentions and links them.
Lee et al. (2017) introduced the first end-to-end neural model. Instead of a separate hand-built step to find mentions, it considers all spans in the document as possible mentions and learns, for each one, a distribution over its possible antecedents. It builds a representation of each span from its boundary words plus an attention mechanism that finds the span's head word, then ranks candidate antecedents.
The idea that matters for a reader: one model both finds the mentions and links them, with no external parser, and it set a new state of the art.
Dana from Acme sent the revised quote.
| Candidate span | Possible role |
|---|---|
| Dana | Person mention |
| Acme | Organization mention |
| the revised quote | Document mention |
| from Acme sent | Unlikely mention |
3Considering more than one hop, efficiently
Throw out the obvious non-matches, then think hard.
Lee et al. (2018) refined this with higher-order inference, softly letting a span's cluster influence its representation over several passes, and a coarse-to-fine step that cheaply prunes unlikely antecedents before the expensive scoring.
The everyday version: first throw out the candidates that obviously do not match, then think hard only about the ones that survive. That is what keeps a long passage tractable.
- Candidate mentions
Dana · the VP · Acme · last week · the quote
- Coarse filter
Keep plausible antecedents for the current mention.
- Fine scoring
Compare the remaining candidates using richer context.
4Better word representations underneath
A model that understands spans, not just tokens.
SpanBERT (Joshi et al., 2020) changed the foundation. Where the standard pretraining recipe masks single random tokens, SpanBERT masks contiguous spans and trains the model to predict a whole masked span from its boundaries. Because coreference is fundamentally about spans of text, this span-aware pretraining gave a clear lift on the coreference benchmark.
The honest takeaway: a lot of the progress came not from a new coreference algorithm but from feeding it a model that understands spans better. The choice of what counts as a piece of text is part of this too. See Tokenization.
Dana works at [MASK] in London.
- Hidden target
- Acme Corporation
- Learning signal
- Reconstruct the missing span using the surrounding context.
5Cutting the cost by linking words, not spans
Resolve the words first, rebuild the spans after.
Dobrovolskii (2021) proposed resolving coreference between individual words first, then reconstructing the full spans afterward. This drops the complexity enough to consider every potential mention without pruning, while staying competitive with heavier systems.
The reader-facing point: efficiency is not a side issue. For anything that runs on a live call, the difference between square-of-length and worse is the difference between keeping up and falling behind.
- Find the head
“officer” in “the chief financial officer”.
- Link heads
Connect that head with another mention of the same person.
- Recover the span
Expand back to the full phrase for the final reference chain.
6A note on large language models
Often handled implicitly, still worth a check.
Modern general-purpose language models often handle coreference implicitly as part of reading a passage, and can be prompted to resolve references directly. This is flexible. It can also still attach a pronoun to the wrong entity, which is why a dedicated step or a verification check still matters when the result feeds a record.
We keep this neutral. The point is that approaches differ and each has trade-offs, not that any particular product uses or avoids a given method. When references feed a system of record, surfacing uncertainty beats guessing silently. See Grounding and hallucination.
Dana spoke with the VP. She approved the discount.
Unverified write
Store the approval under Dana even though “she” is ambiguous.
Checked write
Ask: “Was Dana or the VP the approver?”
Save the approver only after the reference is clear.
Reliable reference-tracking is what makes a conversation filable.
At the field level: information extraction, summarization, and question answering all improve when references are resolved first, because each fact arrives already attached to its entity.
For a sales voice co-pilot, the bridge is at the outcome level. When the references are right, a call becomes a per-contact, per-deal record instead of a wall of text. The hard cases in the section above are exactly the ones that decide whether "she wants a discount" lands on the right person.
Notes that land on the right person.
When "she" resolves to Dana, the discount she asked for logs against Dana, not the VP. Reference-tracking is what lets a conversation become a per-contact record.
Facts that attach to the right deal.
When "they pushed the date" resolves to the right company, the next step and the date update the right opportunity. This is the bridge between hearing something and filing it.
Cleaner input downstream.
Resolve the references first and field-extraction, summaries, and answers all improve, because each fact arrives already attached to its entity. See Information extraction.
Following an entity across a long call.
Gather one account's chain and a system can answer "what did we agree about Acme today?" even when Acme was named once and then called "they" a dozen times.
Getting fresh detail into the app fast only helps if the detail is filed correctly, and trustworthy reference-tracking is part of what lets a service scale across many calls without a person checking every note. That is what the field enables.
One more line to keep clear: coreference is not entity resolution.
They are cousins, and a full pipeline uses both. The difference is what each one links.
Coreference links language within a conversation. Entity resolution links records across a database. A full pipeline uses both.
The direction the field is heading.
We describe the direction, not a roadmap of our own.
The harder, more relevant setting.
Most classic benchmarks are built on news and edited text. Conversation, with its short turns, two speakers, and cross-turn references, is the harder and more relevant setting, and it is where active work is headed.
The same Acme, across calls and emails.
Linking the same entity across many calls and emails, called cross-document coreference, blurs into entity resolution and is an open area.
Cheap enough to run on long inputs.
The word-level direction shows that making resolution cheap enough to run on long inputs is itself a research target, not an afterthought, which matters for anything live.
Solved enough to be useful, not solved.
Coreference still trips on genuinely ambiguous pronouns that need world knowledge, on long conversations where the candidate set is large, and on dialogue patterns the training data underrepresents. A careful system surfaces its uncertainty rather than guessing silently.
The papers behind this page.
- Lee, He, Lewis, Zettlemoyer (2017). End-to-end Neural Coreference Resolution. EMNLP 2017.
- Lee, He, Zettlemoyer (2018). Higher-Order Coreference Resolution with Coarse-to-Fine Inference. NAACL 2018.
- Joshi, Chen, Liu, Weld, Zettlemoyer, Levy (2020). SpanBERT: Improving Pre-training by Representing and Predicting Spans. TACL 2020.
- Dobrovolskii (2021). Word-Level Coreference Resolution. EMNLP 2021.
- Pradhan, Moschitti, Xue, Uryupina, Zhang (2012). CoNLL-2012 Shared Task: Modeling Multilingual Unrestricted Coreference in OntoNotes. EMNLP-CoNLL 2012.
- Jurafsky, Martin. Speech and Language Processing, the Coreference Resolution chapter (open draft). Structure and tone reference.
Keep reading.
Sibling explainers in the Research section.
Talk. Done.
Get the references right and a call becomes a record that knows who "they" is. See it on a real call.
No app required. Just your phone number.