Llm & Chatgpt Problem Is Giving Us —- Wrong References ( HALLUCINATION) —- What Can Be The Solution ?

How Citation Checking Systems Work: Algorithms & AI in 2026
ingoampt · Technical Deep Dive

How Reference & Citation Checking Systems Actually Work — The Companies, the Algorithms, the AI Methods, and What Changes in 2026

Why the hard part of “is this citation real?” is not artificial intelligence at all — it’s entity resolution at the scale of half a billion papers — and where AI genuinely helps versus where it must never be trusted.

By ingoampt · Updated 4 August 2026 · ~28 min read · For developers, ML practitioners, data scientists & PhD researchers

The problem in one paragraph

You upload a PDF, a thesis, or a bibliography. You want a machine to tell you, for every entry, one of three things: this reference is real and its metadata is correct; this reference is real but something is wrong (a mangled author, a wrong year, a fabricated DOI); or this reference does not appear to exist at all. That sounds like a job for a large language model (LLM). It is almost the opposite. The reliable way to answer it is to take each citation string and look it up in an authoritative database of real publications, deciding — under uncertainty, with noisy input — whether a returned record is truly the same work. That decision problem has a name in computer science: entity resolution (also called record linkage or data matching). Everything in this article orbits that one idea.

Key idea The central engineering task is match a noisy citation string to the correct record in a large index, or confidently say “no match.” LLMs are useful around that task — parsing, query understanding, explaining — but the ground truth always comes from a lookup against a real database, never from a model’s memory.
Figure A — End-to-end citation verification pipeline Raw citation string / PDF Parse into fields Candidate generation Score & rerank Calibrate + decide / abstain Verdict: real / wrong / not found ↑ queries the authoritative index (Crossref / OpenAlex / PubMed) Real-publication database (~277M–477M records)
Figure A — The canonical pipeline. Note that the two green stages both query a real database; nothing in this pipeline asks a model to recall a citation from memory.

Part 1 — The landscape: what really exists in 2026

Before the theory, a survey of the working products. They fall into four camps: public matching infrastructure (Crossref, OpenAlex), researcher-facing checkers (scite, Paperpal, Trinka), reference-manager metadata lookup (Zotero, Mendeley, EndNote), and publisher-side integrity screening (Cactus Paperpal Preflight, Clear Skies, publisher in-house tools).

Public matching infrastructure

Crossref Simple Text Query (STQ) is the granddaddy. You paste a reference list — up to 1,000 references per submission, ideally one per line in a consistent style — and it returns one best-match DOI per reference, or, if you tick “List All Possible DOIs,” several candidates for ambiguous cases. It requires no login or fee and is a public utility layered on the Crossref metadata index. Programmatically the same matching is reachable through the REST API at api.crossref.org/works?query.bibliographic=<string>, and results are sorted by a relevance score. Crossref explicitly warns that matching loosely formatted text is probabilistic: unmatched references are retained and periodically re-checked, because a DOI may not have existed yet when you first queried.

Evidence · Crossref’s own matcher Crossref’s R&D lead Dominika Tkaczyk benchmarked a new search-based matcher (SBMV) against the legacy parse-based algorithm. The best search-based variant reached F1 96.3% vs 92.5% for the legacy approach — precision fell only slightly (98.09% vs 98.95%) while recall jumped +8.9 percentage points (94.56% vs 86.85%). On structured references the two were near-identical (SBMV F1 0.9660 vs 0.9593). The lesson Crossref drew: a well-tuned full-text search against the index beats a bespoke field-parsing pipeline for recall, at almost no precision cost.

OpenAlex, run by the non-profit OurResearch (the team behind Unpaywall), is the largest fully open scholarly graph. As of its 2026 roadmap OpenAlex indexes 477 million works — described on the OpenAlex blog as “the largest connected repository of scholarship ever published” (roughly 271.3M core works plus a ~192M-record DataCite/repository expansion pack). Its REST API needs no key, and it aggregates Crossref, PubMed, ORCID and ROR daily. Semantic Scholar (Allen Institute for AI) covers “nearly 200 million papers covering all disciplines,” with some 2026 sources citing 214M+, and is especially strong in CS/AI. PubMed (E-utilities), DataCite (datasets/DOIs), and arXiv round out the free identifier-resolution services. DOI resolution itself — turning 10.xxxx/yyyy into a landing page via doi.org — is a separate, deterministic step and needs no matching at all.

Researcher-facing checkers

scite.ai Reference Check takes a PDF and produces a report: it uses machine learning to identify each reference and match citation statements (the sentence around an in-text citation) to their targets, then flags retractions and editorial concerns and shows how each cited work has itself been cited (supporting / contrasting / mentioning — scite’s “Smart Citations”). It only persists the report; the uploaded PDF sits in a restricted S3 bucket and is deleted after processing. It explicitly misses references without DOIs (news, policy documents). There is an upload API for programmatic runs.

Paperpal Reference Checker (by Cactus Communications) parses the document, structures each reference (authors, title, journal, year, volume, pages, DOI) and matches it to its in-text citation, then validates each entry against a database of “250M+ verified research articles” — per Paperpal’s own Reference Checker page, “to fill in missing details, correct inconsistencies, confirm validity, detect retractions.” It flags fake, broken, retracted, AI-generated, missing or unmatched references. It sits inside Paperpal Prime, priced at US$25/month (or $139/year, ~$11.58/month billed annually). Trinka takes a different angle: it validates references against Crossref and flags research-integrity risks — retracted papers, predatory journals, duplicate references, excessive self-citation — but does not itself fix them. Writefull Cite suggests citations from your text but is currently restricted to publishers and institutions. Tools such as ReciteWorks check that in-text (Author, Year) pairs match the reference list, a purely internal-consistency check that needs no external database.

Warning · Turnitin / iThenticate ≠ reference verification Plagiarism-similarity tools such as Turnitin and iThenticate compare your text against a corpus of documents to compute an overlap score. That is a different task from verifying that a citation resolves to a real paper. A fabricated reference with an invented DOI can pass a similarity check untouched, because nothing in that pipeline queries a bibliographic authority. Do not treat a clean originality report as a citation-validity report.

Reference managers

Zotero, Mendeley and EndNote resolve metadata by identifier lookup: paste a DOI/PMID/ISBN/arXiv ID and they fetch a structured record from Crossref, PubMed, or a translation server. Zotero’s Translation Server (used by the open-source clibib tool) with Crossref as fallback is a good example of the “retrieve, don’t generate” pattern applied to bibliographies.

Publisher-side integrity screening

On the publisher side the driver is paper-mill fraud and a retraction surge. According to the arXiv study Mapping Academic Integrity: Global Retraction Trends (2025), “the year 2023 set a historical record, with over 14,000 retraction notices issued. This trend persisted through 2024 and 2025, which saw over 10,000 and 9,000 retractions, respectively.” Cactus’s Paperpal Preflight for Editorial Desk (PPE) screens submissions across ~25 elements including a citation-analysis module (excessive self-citation, citation clustering, unrelated or retracted references) and author/affiliation verification. Cactus partnered with the STM Integrity Hub, and Frontiers integrated PPE (alongside Clear Skies’ Papermill Alarm) into its AIRA screening system. Publishers Elsevier, Springer Nature and Wiley run in-house integrity checks too; STM’s Hylke Koers frames the role as surfacing “signals” for human editors to act on. Vendors deliberately keep the exact detection logic private so paper mills cannot game it — which means for these publisher-internal systems, the precise matching algorithms are not publicly documented, and we say so rather than speculate.

Table 1 — The 2026 tool landscape (what it takes in, returns, and what is documented about how it works)
ServiceInputOutputDocumented mechanism
Crossref Simple Text Query / RESTUp to 1,000 reference stringsBest-match DOI (or candidate list)Search-based matching over the Crossref index; SBMV F1 96.3%. Probabilistic, relevance-scored.
OpenAlex APIDOI/PMID/title/searchStructured work record + referencesOpen graph of 477M works; daily-refreshed from Crossref/PubMed/ORCID/ROR. No key.
Semantic Scholar Graph APIID or searchPaper metadata, citation graph~200M papers; AI-enhanced search & recommendations.
scite Reference CheckPDFReport: retractions, editorial notices, citation contextML reference identification + citation-statement matching; DOI-dependent.
Paperpal Reference CheckerDOCX / PDF / LaTeXFlags fake, broken, retracted, AI-generated, unmatched refsParse → structure → validate vs 250M+ articles. Fix is a separate manual step.
Trinka Citation CheckerManuscriptIntegrity risk reportValidates against Crossref; flags retractions, predatory journals, duplicates.
Cactus Paperpal Preflight (PPE)Submission (publisher-side)Integrity signals for editors~25 elements incl. citation analysis; detailed logic kept private.
Turnitin / iThenticateManuscriptText-similarity scoreCorpus overlap — not reference verification.

Part 2 — The algorithms and methods (the core of it)

A verification system is a pipeline. Each stage has decades of literature behind it. We’ll walk them in order, defining every term the first time it appears.

2.1 Parsing a messy reference string into fields

A raw reference — [5] E. Lundberg, "Humanism on Gallifrey," Science Fiction Studies, vol. 40, no. 2, p. 382, 2013. — is just a string. Reference parsing (or citation segmentation) is the task of labelling each span with a field: author, title, venue, volume, year, pages. The dominant classical method is a Conditional Random Field (CRF) — a sequence-labelling model that predicts a label for each token while accounting for the labels of neighbouring tokens (so it “knows” a year usually follows a volume, etc.).

Evidence · Parser accuracy In Tkaczyk et al.’s benchmark of ten open-source parsers, the best out-of-the-box tool was GROBID at F1 0.89, followed by CERMINE 0.83 and ParsCit 0.75; the ML-based AnyStyle scored 0.54, still beating every rule/regex tool. Machine-learning parsers had roughly 3× the recall of rule-based ones (0.66 vs 0.22) at similar precision. Retraining on task-specific data lifted GROBID to F1 0.92, CERMINE to 0.92, and ParsCit to 0.87. Practical takeaway: use GROBID or AnyStyle, and retrain if you can.

Modern transformer-based parsers (and Neural ParsCit, which added a bidirectional LSTM) push accuracy higher, and in 2026 LLMs are increasingly used to extract fields directly — the VerusCite tool, for example, uses a served LLM to chunk a reference section and emit structured citations, reporting that Gemini 3.1 Flash Lite “correctly extracts over 99.8% of citations at under $0.03 per paper.” This is exactly the kind of task where LLMs shine: turning messy human text into structured fields. It is not where they should be asked to supply the DOI from memory.

2.2 Candidate generation: from millions to a shortlist

You cannot compare a query against every one of ~477M records. You first need blocking (also called candidate generation): a cheap filter that returns a few dozen plausible candidates, trading a tiny amount of recall for an enormous speed-up.

Figure B — The candidate generation funnel ~477,000,000 records the whole index ~10,000 (blocking) inverted index / n-gram / LSH bucket ~100 (BM25 top-k) ranked lexical candidates ~10 (rerank) cross-encoder shortlist
Figure B — Each stage is cheaper-per-item but touches more items; each stage below is more expensive-per-item but touches far fewer. The funnel is the whole game.

Techniques, cheapest first:

  • Inverted index + BM25. An inverted index maps each term to the documents containing it (like a book index). BM25 is the classic ranking function that scores a document by how many query terms it contains, weighting rare terms more (via inverse document frequency) and dampening very frequent terms. It is the strong, cheap baseline — Crossref’s search-based matcher is essentially this.
  • n-gram blocking. Break titles into overlapping character chunks (“citation” → “cita”, “itat”, “tati”…) so typos and truncations still share chunks.
  • Sorted neighbourhood. Sort all records by a key (e.g. normalised title) and slide a window; near-duplicates end up adjacent.
  • MinHash + Locality-Sensitive Hashing (LSH). MinHash produces a compact signature of a set (e.g. the set of a title’s word-shingles) such that the probability two signatures collide equals their Jaccard similarity (the size of the intersection over the union of two sets). LSH then hashes similar signatures into the same bucket, so you only compare items that land together. This turns an O(n²) all-pairs comparison into something near-linear. A common trick (documented even in entity-resolution patents) is to run MinHash several times and filter each bucket with a Jaccard threshold around 0.2 to kill false positives before expensive scoring.
Key idea · Why you need multiple “doors” A single text-search channel fails on queries that carry almost no text — the classic case is a bare (Smith, 2019) or “Smith et al., 2019”. There is nothing to embed and almost nothing to BM25. You must also have a structured channel: query the index by author=Smith & year=2019 (and, if you have it, venue), then disambiguate. Systems that are “text-only” quietly fail exactly here.
Figure C — Multi-channel candidate generation (“doors”) Parsed query author=Smith · year=2019 Door 1: exact key DOI/PMID/arXiv Door 2: BM25 text title / full string Door 3: author+year STRUCTURED lookup the one text-only misses Door 4: venue+year journal / vol / page Merged candidate pool deduplicated, then scored
Figure C — Multiple retrieval “doors” feed a merged pool. Door 3, the structured author+year lookup, is the channel a pure text/embedding system lacks — which is why it fails on sparse queries.

2.3 String similarity and record-linkage theory

Once you have candidates, you score field-by-field. The workhorse similarity measures:

  • Levenshtein (edit) distance — the minimum number of single-character insertions, deletions or substitutions to turn one string into another. Good for typos and OCR errors in titles.
  • Jaro–Winkler — a similarity tuned for short strings that rewards matching prefixes; the standard choice for person names, where the beginning of a surname matters most.
  • Jaccard — set overlap over token sets; robust to word reordering (“Smith and Jones” vs “Jones, Smith”).
  • Cosine over TF-IDF character n-grams — represent each string as a vector of weighted character-chunk counts and take the cosine of the angle; strong for fuzzy, mixed-script, or partial matches.

How do you combine per-field scores into a single decision? The foundational answer is the Fellegi–Sunter model (1969), still the backbone of modern matchers. For each field comparison you estimate two probabilities: m = probability the fields agree given the pair is a true match, and u = probability they agree given a non-match. The match weight for a field is essentially log(m/u). The intuition is elegant: agreement is strong evidence only when it is rare among non-matches — two records agreeing on the surname “Xander” is far more informative than agreeing on “John.” Sum the weights across fields and apply two thresholds: above the upper one, “match”; below the lower one, “non-match”; in between, “possible match — send to review.” The open-source library Splink implements exactly this.

Evidence · Learned matching (Ditto) The modern, learned alternative casts matching as sequence-pair classification with a transformer. Ditto (Li et al., VLDB 2021) fine-tunes BERT/RoBERTa on record pairs and beat the prior state of the art by up to 29% F1 out of the box and up to 31% across 13 benchmark datasets; on a real 789K×412K company-matching task it hit 96.5% F1. It is also label-efficient — matching prior SOTA with half the training data. The catch: it needs labelled pairs and a GPU, and pre-trained LMs contributed “over 50% of Ditto’s performance gain,” so the transformer is doing real work but at real cost.

2.4 Embeddings and dense retrieval for scholarly text

A dense embedding maps a piece of text to a vector such that semantically similar texts land near each other; retrieval is then a nearest-neighbour search (via FAISS/HNSW indexes). For scholarly documents the specialised models are SciBERT (BERT pre-trained on scientific text), SPECTER and SPECTER2 (trained with a citation-aware objective — papers that cite each other are pulled together), and SciNCL (which samples training pairs from the citation-graph neighbourhood). General-purpose retrieval models — E5, GTE, BGE-M3, and the Qwen3-Embedding family — are also widely used.

Warning · Embeddings are not a free upgrade Ai2’s own SPECTER2 write-up notes that on the multi-domain MDCR benchmark plain BM25 outperformed both SPECTER and SciNCL outside computer science and biomedicine, because ~70% of their training data came from those two fields. Dense retrieval helps with paraphrase and vocabulary mismatch; it can hurt on exact identifiers, rare tokens, dates and numbers — precisely the content of a citation. Treat embeddings as a measured add-on, benchmarked on your own data, not an automatic win.
Table 2 — Embedding models relevant to scholarly matching
ModelTrained forNotable benchmark evidenceNote
SciBERTScientific text (LM)Baseline for scholarly NLPFixed embeddings via cosine; fine-tune for retrieval.
SPECTERCitation-aware tripletStrong on SciDocs (2020)Title+abstract only; foundational.
SPECTER2Multi-task, 23 fieldsNew SOTA on MDCR citation recommendation (SciRepEval, EMNLP 2023)Task-specific adapters.
SciNCLNeighbourhood contrastiveBeats SPECTER by a small margin on SciDocsUses citation-graph sampling.
BGE-M3Dense + sparse + multi-vector~63.0 MTEB (multi-function)One model, three retrieval modes.
Qwen3-Embedding-8BGeneral multilingual70.58, ranked No.1 MTEB multilingual, 5 Jun 2025User-defined dimensions; Apache-2.0.

2.5 Hybrid retrieval and reranking

Because lexical (BM25) and dense retrieval fail in different ways, the production default is hybrid: run both and fuse the ranked lists. The most robust fusion is Reciprocal Rank Fusion (RRF), which ignores raw scores entirely and combines items by 1/(k + rank) (typically k=60) — sidestepping the problem that BM25 scores and cosine similarities live on incompatible scales.

Figure D — Lexical vs dense vs hybrid Lexical (BM25) ✓ exact terms, DOIs ✓ rare tokens, dates ✗ paraphrase / synonyms cheap · strong baseline Dense (embeddings) ✓ meaning / paraphrase ✓ vocabulary mismatch ✗ exact IDs, numbers GPU · needs benchmarking Hybrid (RRF) ✓ both blind spots covered +7.4% NDCG on WANDS +26–31% over dense-only* *mixed-query benchmarks
Figure D — Lexical and dense retrievers are complementary; fusing them covers each other’s failure modes. Reported lifts vary widely by dataset.

After fusion comes reranking: a more expensive model re-orders the top ~50–100 candidates. A cross-encoder feeds the query and a candidate together into a transformer and outputs a single relevance score — the most accurate option, but O(n) forward passes at query time, so it is slow (one tutorial measured a cross-encoder’s p99.9 latency at over 21 seconds at 40 QPS). monoT5 and BGE-reranker are common cross-encoders. ColBERT uses “late interaction” (the MaxSim operator over per-token vectors): it precomputes document token embeddings, so it delivers near-cross-encoder quality at ~23ms p50 — the practical middle ground.

Evidence · How much reranking helps On a text-and-table RAG benchmark (Strich et al., 2026), adding a cross-encoder reranker (Cohere Rerank v4) to hybrid retrieval was “the largest improvement in our study: +17.2 percentage points MRR@3 and +12.1pp Recall@5 over unreranked hybrid,” pushing Recall@5 to 0.816 versus 0.587 for dense-only. But results are dataset-dependent: on an inferential-QA benchmark, rerankers gave “only marginal improvements.” Always measure reranking lift on your own golden set before paying its latency cost.
Figure E — Cross-encoder reranking stage Top-100 from hybrid fusion Cross-encoder [query ⊕ candidate] → score joint attention over both slow but precise · ColBERT = faster Top-10, re-sorted best match at #1
Figure E — Reranking is a precision stage applied to a small candidate set; its recall is capped by the first stage, so never rerank a shortlist that already dropped the right answer.

2.6 Confidence calibration and abstention

This is the stage most amateur systems skip, and it is the difference between a trustworthy checker and a dangerous one. For citation verification the worst possible output is a confidently-wrong match — telling a user “yes, this resolves to DOI X” when it doesn’t. So the system must sometimes say “no confident match.” That is selective prediction (classification with a reject option). Chow (1970) established the optimal rule decades ago: abstain when the top confidence falls below a cost-derived threshold.

Two practical signals drive the decision: the absolute score of the top candidate, and the margin between the top-1 and top-2 candidates. A high top score with a razor-thin margin means “two papers look almost identical” — often a reprint, a preprint-vs-published pair, or two editions — and is a classic abstain case. To make scores mean what they claim, apply calibration: Platt scaling (fit a logistic function to raw scores) or isotonic regression (a non-parametric monotonic fit) so that “0.9 confidence” is right about 90% of the time. Conformal prediction goes further, producing prediction sets with a distribution-free, finite-sample coverage guarantee under exchangeability: abstain whenever the set is not a singleton. Cost-sensitive and conformal abstention frameworks (e.g. the 2025 CAP method pairing reinforcement learning with conformal thresholds) formalise the trade-off between coverage and error.

Figure F — Abstention decision with top-1 vs top-2 margin Case 1: confident match top-1 = 0.94 top-2 = 0.30 → wide margin ✓ ACCEPT Case 2: ambiguous top-1 = 0.90 top-2 = 0.84 → thin margin ⚠ ABSTAIN Case 3: no match top-1 = 0.26 → below threshold ✗ NOT FOUND
Figure F — Two knobs decide the verdict: the absolute top score (is anything good enough?) and the top-1/top-2 margin (is the winner clearly ahead?). A high score with a thin margin is the signature of duplicates and demands abstention.

2.7 The metrics that matter

Evaluate with the standard information-retrieval toolkit, and add the one that is specific to this task:

  • Precision — of the matches you returned, what fraction are correct? (For citation checking, keep this very high.)
  • Recall — of the citations that do have a correct record, what fraction did you find?
  • F1 — harmonic mean of precision and recall.
  • Top-1 accuracy and Top-k recall — is the right record ranked first, or anywhere in the top k?
  • MRR (Mean Reciprocal Rank) — averages 1/rank of the first correct hit.
  • nDCG — rewards putting the most relevant items highest, discounted by position.
  • Confidently-wrong rate — the fraction of high-confidence outputs that are actually wrong. This is the danger metric for a verifier and should be reported explicitly and driven near zero, even at the cost of recall.
Table 3 — Algorithm families at a glance
FamilyRepresentativeWhat it’s forStrength / limit
CRF / neural parsingGROBID, AnyStyle, Neural ParsCitString → fieldsGROBID F1 0.89 OOB; retrain for +3%.
Lexical retrievalBM25 / inverted indexCandidate generationCheap, strong; misses paraphrase.
Approximate blockingMinHash + LSHScale to 100s of millionsNear-linear; tune buckets vs recall.
Probabilistic linkageFellegi–Sunter / SplinkCombine field scoresInterpretable, thresholded; assumes field independence.
Learned matchingDitto (BERT)Pairwise match decisionUp to +29% F1; needs labels + GPU.
Dense retrievalSPECTER2, Qwen3-EmbedSemantic candidate genGreat for paraphrase; weak on IDs/numbers.
RerankingmonoT5, BGE-reranker, ColBERTPrecision on shortlistBig lift sometimes (+17pp MRR), marginal other times.
Selective predictionConformal / Platt / isotonicAbstain when unsureKills confidently-wrong matches.

Part 3 — The hallucination problem (why any of this is urgent)

The reason citation checking went from a niche librarian utility to a mainstream need is that LLMs fabricate references at alarming, measurable rates. The evidence is now substantial and consistent.

Evidence · Measured fabrication rates
  • Walters & Wilder, Scientific Reports 2023 — across 636 citations in 84 GPT-generated literature reviews, 55% of GPT-3.5 citations and 18% of GPT-4 citations were fabricated; among the real ones, 43% (GPT-3.5) and 24% (GPT-4) still contained substantive citation errors.
  • Bhattacharyya et al., Cureus 2023 — of 115 references in GPT-3.5 medical papers, 47% were fabricated, 46% were authentic-but-inaccurate, and only 7% were authentic and accurate.
  • Chelli et al., JMIR 2024 — over 471 references for systematic reviews, hallucination rates were 39.6% (GPT-3.5), 28.6% (GPT-4) and 91.4% (Bard); precision of retrieved references was in the single digits (9.4%/13.4%/0%).
  • Aljamaan et al., JMIR Medical Informatics 2024 — a Reference Hallucination Score (RHS, 0 = none, 11 = maximum) across six chatbots. ChatGPT-3.5 and Bing scored the worst (median 11); Elicit and SciSpace the best (median 1); Perplexity in the middle (7); Bard produced no references at all. The retrieval-augmented research tools (SciSpace β = −1.748, Elicit β = −1.63, both P<.001) hallucinated dramatically less than standalone chatbots.
  • GhostCite, 2026 — across 13 models, hallucination rates spanned 14.23% (DeepSeek) to 94.93% (Hunyuan), a ~6.7× spread.

Why LLMs hallucinate citations

A base LLM is a next-token predictor: it generates the most statistically plausible continuation of text, one token at a time. A reference is, to the model, just a highly structured plausible-looking string — an author name, a title-shaped phrase, a journal-shaped phrase, and a DOI-shaped string of digits. The model has no grounding to a database and no notion that the string must resolve to a real object; it happily emits a DOI-shaped string that has never been registered. Notably, the title field is usually the most accurate and the DOI the least accurate — because a DOI is arbitrary and cannot be inferred from meaning, exactly the kind of identifier a model cannot reconstruct from memory.

Figure G — Hallucinated generation vs verified lookup ✗ Generate from memory “Give me a reference on X” no database is consulted LLM predicts plausible tokens invented title + fake DOI Reference does not exist 14–95% of the time ✓ Retrieve, don’t generate Take the citation string as a query, not a fact Look up in Crossref / OpenAlex match + score + calibrate Verdict grounded in real data or an honest “not found”
Figure G — The failure mode (left) and the correct architecture (right). The single most important design decision is to treat a citation as a query to verify, never as a fact to recall.

RAG helps — but is not a cure

Retrieval-Augmented Generation (RAG) gives the model real retrieved documents to condition on, which is why tools like Elicit and SciSpace hallucinate far less than raw ChatGPT. But RAG is only a partial fix: if the retriever returns the wrong document, or the model still paraphrases an identifier from memory, or the retrieval simply misses, fabrication returns. A 2026 study of deep-research agents (“Cited but Not Verified”) found citation-hallucination rates of 11% to 57% across commercially deployed models even with web search, and noted that RAG “does not validate whether cited sources are accessible, topically relevant, or factually consistent with the claims they support.”

Key idea · Retrieve, don’t generate The correct architecture for “is this citation real?” is verification-first: parse the citation, look it up in an authoritative index, and match. The model is allowed to help with parsing and explanation, but the existence and correctness of the reference are decided by a database lookup, not a language model.

2025–2026 verifier research

A wave of purpose-built citation verifiers now grounds every reference against real sources:

  • CiteCheck (arXiv, 2026) — retrieval-grounded, zero-shot; reports 88.7 macro-F1 and 88.9% accuracy on a physics benchmark of controlled corruptions, beating GPT/Claude/Gemini baselines by ~5.8 F1 points.
  • CiteTracer (“Source or It Didn’t Happen,” multi-agent, 2026) — reaches 97.1% accuracy on a synthetic benchmark (class F1: REAL 97.0, POTENTIAL 95.8, HALLUCINATED 98.5) and detects 97.1% of fabrications on a real-world set drawn from ICLR 2026 and desk-rejected submissions.
  • VerusCite — deliberately precision-first: a target false-positive rate below 1% with recall ~70–80%, and citation extraction “over 99.8%.” (These are the tool’s own V1 benchmark figures on a non-peer-reviewed write-up.)
  • BibTeX-agent study (2026) — using the open-source clibib for deterministic BibTeX retrieval from Zotero’s translation server with Crossref fallback, a two-stage “search then revise” integration lifted accuracy +8.0pp to 91.5%, raised fully-correct entries from 50.9% to 78.3%, and kept regression at just 0.8% — demonstrating that architecture (separating retrieval from revision) matters independently of model quality.

These systems are converging on the same shape as Figure G: retrieve first, then have a structured verifier (increasingly an LLM used as a judge over retrieved evidence, not as a memory) decide EXACT / MINOR-error / MAJOR-hallucination. The problem is now operational at venue scale — NeurIPS 2025 and ICLR 2026 program chairs both assembled desk-reject queues for submissions with fabricated bibliographies, and ACM CCS 2026 published a transparency report enumerating AI-fabricated citations it flagged.

Part 4 — What 2026 AI genuinely changes

It is easy to over- or under-claim the role of AI here. The honest position, grounded in the evidence above:

Where LLMs genuinely help

  • Parsing messy strings into fields — LLMs and modern transformer parsers turn a footnote-style, multi-language, OCR-mangled citation into clean fields better than brittle regex ever could.
  • Query understanding — normalising “et al.”, expanding abbreviated venues, inferring that “PNAS” = “Proceedings of the National Academy of Sciences.”
  • Reasoning-based reranking and match explanation — an LLM-as-judge can look at a candidate record next to the query and explain “this is the preprint version; the published DOI differs,” which is genuinely useful for the abstain decision.

Where LLMs must not be trusted

Warning · The one rule Never let a model recall an identifier (DOI, PMID, ISBN, exact author list, year) from its parameters. DOIs are arbitrary strings with no semantic content; a model asked to produce one will produce a plausible-looking fake. Identifiers come from the database, full stop. The DOI field is empirically the least accurate field LLMs generate.

The enabling 2026 capabilities are long-context models (ingest a whole thesis bibliography at once), function calling / tool use (the model calls a Crossref/OpenAlex API instead of guessing), and agentic verification loops (search → compare → decide → optionally re-search). Used this way, the LLM is an orchestrator and explainer wrapped around a deterministic retrieval core.

The economics

Lexical retrieval (BM25 over an inverted index) is nearly free per query, needs no GPU, and — as Crossref’s own results show — is already a very strong matcher. Dense embeddings and cross-encoder rerankers add cost (GPU, latency, indexing) and add accuracy only sometimes (recall the +17pp reranking win on one benchmark but “marginal” on another, and BM25 beating SPECTER outside CS/BioMed). So the correct engineering stance is: BM25 + structured lookup is the baseline; add embeddings and a reranker only where a benchmark on your own data shows they pay for themselves.

A state-of-the-art 2026 architecture, end to end

Normalise and try exact-identifier lookup first → parse the string into fields with GROBID/AnyStyle or an LLM → generate candidates through multiple channels (exact keys, BM25, structured author+year, structured venue+year, optionally a dense channel) → fuse with RRF → score fields with Jaro-Winkler/edit-distance/Jaccard and optionally a cross-encoder or LLM-judge reranker → calibrate scores and apply top-1 threshold + top-1/top-2 margin + conformal abstention → return real / wrong-metadata / not-found with a confidence and an explanation. That is Figure A, filled in.

Part 5 — A practical blueprint you can build

Ordered by return on effort. You can ship value after step 1 and improve monotonically.

Step 1 — Exact identifier lookup with normalisation

Extract and normalise any DOI, PMID, ISBN or arXiv ID present. Lower-case DOIs, strip https://doi.org/ prefixes and trailing punctuation, canonicalise arXiv IDs (old vs new scheme). Resolve directly against Crossref/PubMed/DataCite/arXiv. This alone verifies a large share of well-formed references deterministically and cheaply.

# Pseudocode: exact-key channel
doi = normalize_doi(extract_doi(ref_string))
if doi:
    rec = crossref.get(doi)            # deterministic resolution
    if rec: return Verdict(REAL, rec, confidence=1.0)
    else:   return Verdict(NOT_FOUND, reason="DOI does not resolve")

Step 2 — Structured field extraction

For references without a usable identifier, parse into fields. Start with GROBID (F1 ~0.89 out of the box, ~0.92 retrained) or AnyStyle; for hard, mixed-format inputs an LLM extraction step is a strong option (VerusCite reports >99.8% extraction). Keep the raw string too — you will need it for the full-text BM25 channel.

Step 3 — Multi-channel candidate generation

Query the index through several doors and merge (Figure C):

  • Exact keys (from step 1).
  • BM25 full-text on the whole reference string / title (this is essentially what Crossref’s query.bibliographic does).
  • Structured author+yearessential. When a citation is just “Smith et al., 2019,” there is no title to search; you must query author.family=Smith & publication_year=2019 and disambiguate on venue. A text-only or embeddings-only system has no answer here at all, because there is almost nothing to embed.
  • Structured venue+year — journal + volume + first page is often enough to pin a specific article even with a garbled title.

Step 4 — Fuzzy field-level scoring

Score each candidate field-by-field: Jaro-Winkler on author surnames, edit distance / TF-IDF-cosine on titles, exact/near on year, page, volume. Combine with a Fellegi-Sunter-style weighted sum (or a learned classifier like Ditto if you have labels). The output is a single match score per candidate plus a per-field agreement breakdown you can later show the user.

Step 5 — Hybrid fusion and optional reranking

Fuse the channel rankings with RRF (k≈60). If a benchmark on your data justifies it, add a dense channel and/or rerank the top ~50 with a cross-encoder (BGE-reranker, monoT5) or ColBERT for lower latency. Measure the lift; drop the stage if it doesn’t pay.

Step 6 — Confidence calibration and abstention

Calibrate scores with Platt scaling or isotonic regression on a held-out set. Set two thresholds: an absolute minimum top-1 score, and a minimum top-1 minus top-2 margin. Below the absolute threshold → not found. Above it but below the margin → ambiguous / abstain (often duplicates). For a guaranteed error rate, layer conformal prediction and abstain on non-singleton sets. Optimise for a near-zero confidently-wrong rate, accepting lower recall.

Step 7 — Evaluation harness

Build a golden set of a few hundred references with known correct records, deliberately including hard cases: bare author+year, preprint/published duplicates, non-Latin names, retracted works, and a set of known fabrications so you can measure the confidently-wrong rate directly. Track precision, recall, F1, Top-1 accuracy, Top-k recall, MRR, nDCG — and the confidently-wrong rate as your primary safety KPI.

Table 4 — Technique → what it fixes → cost → when to add it
TechniqueWhat it fixesCostWhen to add
Exact-ID lookup + normalisationVerifies well-formed refs deterministicallyVery lowDay one — always first.
GROBID / AnyStyle parsingTurns messy strings into queryable fieldsLow (CPU)As soon as you handle ID-less refs.
BM25 full-text channelTitle/string matching; strong baseline recallLowCore — the workhorse retriever.
Structured author+year / venue channelSparse queries with no title to searchLowEssential — text-only fails here.
Fuzzy field scoring (JW / edit / Jaccard)Typos, OCR, reordering, abbreviationsLowCore — with candidate scoring.
Fellegi-Sunter / SplinkPrincipled, interpretable score fusionLow–medWhen you need explainable thresholds.
Learned matcher (Ditto)Hard, noisy pairwise decisionsHigh (GPU + labels)When rule-based precision plateaus.
Dense embeddings (SPECTER2 / Qwen3)Paraphrase, vocabulary mismatchMed–high (GPU)Only if benchmark shows lift on your data.
Cross-encoder / ColBERT rerankFinal-mile ranking precisionHigh (latency)When top-1 accuracy on a shortlist matters.
Calibration + abstentionKills confidently-wrong matchesLowBefore you ship to real users — non-negotiable.

Summary blueprint checklist

Method · Ship this in order
  1. ☐ Normalise and resolve exact identifiers (DOI/PMID/ISBN/arXiv) first.
  2. ☐ Parse ID-less references into fields (GROBID/AnyStyle or LLM extraction).
  3. ☐ Build ≥3 candidate channels: BM25 text, structured author+year, structured venue+year.
  4. ☐ Score field-by-field (Jaro-Winkler names, edit/TF-IDF titles) and fuse (Fellegi-Sunter or RRF).
  5. ☐ Add dense + reranking only if a golden-set benchmark shows a real lift.
  6. ☐ Calibrate scores; abstain on low top-1 score OR thin top-1/top-2 margin.
  7. ☐ Return real / wrong-metadata / not-found with confidence + a per-field explanation.
  8. ☐ Track precision, recall, F1, MRR, nDCG — and above all the confidently-wrong rate.
  9. ☐ Never let a model recall an identifier from memory. Retrieve, don’t generate.

FAQ

1. Can’t I just ask ChatGPT whether my references are real?
No. A raw LLM has no live connection to a bibliographic database and will confidently confirm invented references. Measured fabrication rates run from 18% (GPT-4, Walters & Wilder 2023) up to 91% (Bard, Chelli 2024). Use a tool that looks each reference up.
2. What’s the single most important design decision?
“Retrieve, don’t generate.” Treat every citation as a query to verify against Crossref/OpenAlex/PubMed, never as a fact to recall. Everything else is optimisation around that core.
3. Why do I need a structured author+year lookup if I already have full-text search?
Because a citation like “Smith et al., 2019” contains almost no text to search or embed. Only a structured query (author=Smith & year=2019, disambiguated on venue) can resolve it. Text-only and embeddings-only systems silently fail on these.
4. Are embeddings always better than old-fashioned keyword search?
No. On multi-domain scholarly benchmarks BM25 has beaten SPECTER and SciNCL, and embeddings are weak on exact IDs, numbers and dates — the very content of citations. Embeddings help with paraphrase; benchmark before adopting.
5. How much does a reranker actually help?
It depends on the data. One 2026 study saw +17.2pp MRR@3 from adding a cross-encoder to hybrid retrieval; another saw only “marginal” gains. Measure the lift on your own golden set against the latency cost.
6. What does “abstain” mean and why is it good?
It means outputting “no confident match” instead of guessing. For a verifier, a confidently-wrong match is the worst outcome, so it is better to abstain (using a score threshold, a top-1/top-2 margin, or conformal prediction) and flag the item for human review.
7. Which free databases and APIs should I build on?
Crossref REST API and Simple Text Query (DOIs, no key), OpenAlex (477M works, no key), Semantic Scholar Graph API (~200M papers), PubMed E-utilities, arXiv API, and DataCite for datasets.
8. Do plagiarism checkers like Turnitin verify my citations?
No. They compute text-overlap against a corpus. A fabricated reference with a fake DOI passes untouched because nothing queries a bibliographic authority. Citation verification is a separate task.
9. What parser should I start with?
GROBID (best out-of-the-box open parser, F1 ~0.89; ~0.92 retrained) or AnyStyle. For very messy or footnote-style inputs, an LLM extraction step works well — but only for turning text into fields, not for supplying identifiers.
10. Is RAG enough to stop citation hallucination?
It reduces but does not eliminate it. Retrieval-augmented tools (Elicit, SciSpace) hallucinate far less than raw chatbots, yet deep-research agents still showed 11–57% citation-hallucination rates in a 2026 study. You still need an explicit verification-and-abstention layer.

Further reading — the key papers and tools

  • Tkaczyk et al. — “Reference matching: for real this time” and the SBMV evaluation (Crossref blog / JCDL 2018): search-based vs parse-based reference matching, F1 96.3% vs 92.5%.
  • Tkaczyk et al. — “Machine Learning vs. Rules… Bibliographic Reference and Citation Parsers” (JCDL 2018): GROBID/CERMINE/ParsCit/AnyStyle F1 comparison.
  • Fellegi & Sunter — “A Theory for Record Linkage” (JASA 1969): the probabilistic-linkage foundation; see also the open-source Splink.
  • Li et al. — “Deep Entity Matching with Pre-Trained Language Models” (Ditto, VLDB 2021): BERT-based matching, up to +29% F1.
  • Cohan et al. / Singh et al. — SPECTER, SPECTER2 and SciRepEval (2020–2023): citation-aware scholarly embeddings and their benchmarks; SciNCL (Ostendorff et al., 2022).
  • Cormack, Clarke & Büttcher — Reciprocal Rank Fusion (2009); Khattab & Zaharia — ColBERT late interaction (2020).
  • Walters & Wilder (Scientific Reports 2023), Bhattacharyya et al. (Cureus 2023), Chelli et al. (JMIR 2024), Aljamaan et al. (JMIR Medical Informatics 2024): measured citation-fabrication rates.
  • CiteCheck, CiteTracer (“Source or It Didn’t Happen”), and the clibib BibTeX-agent study (2026): retrieval-grounded verification with reported F1/accuracy.
  • Chow (1970) and Angelopoulos & Bates (conformal prediction, 2021): selective prediction and abstention.
  • Tools: Crossref STQ & REST API, OpenAlex, Semantic Scholar, GROBID, AnyStyle, Splink, FAISS/HNSW, FlagEmbedding (BGE), RAGatouille (ColBERT).

This article was written by ingoampt. It synthesises publicly documented methods and peer-reviewed/preprint evidence available as of August 2026. Where a vendor’s internal matching logic is not publicly documented (e.g. publisher-side integrity screening), that is stated explicitly rather than guessed. Benchmark numbers are reported with their source named and are specific to the datasets on which they were measured; always re-benchmark on your own data before making architecture decisions.

ingoampt — technical deep dives for developers, ML practitioners and researchers.

Reference & citation checking, entity resolution, retrieval systems, and applied AI. © 2026 ingoampt. All figures are original inline SVG.

retrieve-don’t-generate entity resolution hybrid retrieval abstention Crossref · OpenAlex

Leave a reply

Your email address will not be published. Required fields are marked *