Quant Memo
Core

Coreference and Alias Resolution for Issuers

A company appears in text under a dozen different names, and pronouns stand in for it a dozen more times — resolving all of that to one stable identifier is what makes text usable as structured data.

A single news article about one company might refer to it as "Alphabet," "Google," "the search giant," "GOOGL," "the Mountain View company," and then simply "it" nine more times in the rest of the paragraph. A human reader tracks all of that without noticing. A pipeline that treats text as a bag of strings does not — it needs to be told, explicitly, that every one of those mentions points at the same underlying entity before a sentiment score, an extracted number, or a relationship can be attached to the right instrument.

This is two related problems with different names. Alias resolution links different names for the same entity — "Meta," "Facebook, Inc.," "FB" (its old ticker), "the parent company of Instagram" — to one canonical identifier. Coreference resolution links pronouns and descriptions within a passage — "it," "the company," "the firm" — back to whichever entity was named earlier in the same text. Both have to work for extraction or sentiment to attach correctly.

Getting the sentiment or the number right is wasted work if it gets attached to the wrong company. Entity resolution is a prerequisite for everything downstream, not an optional cleanup step.

Why it's harder in finance than it looks

Company names change: a rebrand, a merger, a spinoff, a ticker change after a reverse split. A pipeline built to match on today's official name silently stops matching articles about the company's former name — which is exactly the period covering the event that likely explains why the name changed. Subsidiaries add another layer: "Instagram" and "WhatsApp" both refer, in ownership terms, to Meta, but treating every mention of either as a direct Meta signal conflates a subsidiary's product news with the parent's.

Coreference gets harder with distance and ambiguity. A press release about two companies in the same deal — "XYZ agreed to acquire ABC; the company expects the deal to close in Q3" — leaves "the company" genuinely ambiguous between the acquirer and the target to a shallow parser, and getting it wrong flips which company's fundamentals the sentence is actually describing.

Worked example: building an alias table

A minimal alias resolution setup starts with a table mapping every known name form to a canonical entity ID: legal name, common name, all historical tickers, and known nicknames, each with a validity date range since names and tickers change over time. An article mentioning "FB" published in 2019 should resolve to Meta's canonical ID using the alias valid at that date; the same string "FB" appearing after the ticker changed to "META" in 2022 might belong to an unrelated small-cap that later claimed the freed-up symbol — so alias validity has to be time-bounded, not just a static lookup.

For the coreference layer, a language model prompted to resolve "it," "the company," and similar references against a short list of entities named earlier in the same document performs noticeably better than a rule-based nearest-antecedent heuristic on multi-company text, precisely because it can use context — which entity the sentence is actually about — rather than just proximity.

"Meta" "Facebook, Inc." "FB" "the social media giant" "it" entity: META
Every surface form, whether a name, ticker or pronoun, has to collapse to one stable ID before anything downstream can trust the attribution.

An alias table built once and never updated silently degrades as companies rebrand, merge and split. Treat it as a maintained reference dataset with its own validity dates, not a static config file written at project start.

Related concepts

Practice in interviews

Further reading

  • Ng, Coreference Resolution: A Survey (2010)
ShareTwitterLinkedIn