← back to writing

Noise is not always a bug

OCR period spelling normalisation robustness what cleaning erases

In document processing, “noise” is whatever does not match our idea of the clean text. That idea is a choice. Some of what we clean away is damage. Some of it is the document.

“ie vous emmène lundi”

When we measured how much large language models could repair historical transcriptions, we sorted every benchmark into quality bands, from almost perfect to almost unreadable (Boros et al., 2024). One line from a French newspaper makes the scale easy to see.

99–100Alors, je vous emmène lundi
80–99Alors, je vous emmene lundi
60–80Alors, ie vous emmene lundi
40–60A1ors, ie vous emmene lund1
0–40A1o3, ie v0u5 emmèn3 1u%d1

in a 1930s newspaper, ie is an OCR errorin a 1630s book, ie is how people wrote je

One line at five quality bands (similarity to the ground truth, %). Differences from the reference are marked. Boros et al., LaTeCH-CLfL 2024.

In a twentieth-century newspaper, “ie” for “je” is a recognition error: the engine confused two shapes. In a French book printed in the 1600s, “ie” is simply how the word was written, because i and j were not yet separate letters. The same two characters are noise in one collection and evidence in another.

This is not a rare corner case. The HIPE-2026 evaluation added a surprise domain of French texts from the sixteenth to the eighteenth century (Opitz et al., 2026). The German books in the HIPE-OCRepair benchmark are printed in Fraktur, with their own letter forms and conventions (Ehrmann et al., 2026). Our work on Armenian inscriptions had to teach the pipeline that “։” is the Armenian full stop, not a stray colon (Tamrazyan et al., 2026). Long s, abbreviations, hyphens at line ends, dialect spellings, a typesetter's own slip: a cleaner that does not know the period cannot tell which of these to keep.

Cleaning has a cost

Every correction method makes a bet about what the text should look like. Classic spelling correction such as SymSpell does improve entity recognition when OCR is very poor, but it is prone to replacing correct, rare words, names especially, with more frequent ones (Huynh et al., 2020). Large language models make the same bet with more conviction: in our 2024 study they changed the rendering of the text, paraphrased, even translated, when asked only to fix errors (Boros et al., 2024).

Page

Ie vous enuoye ceſte lettre par Monſieur de Viuonne

OCR

Ie vous enu0ye cefte lettre par Monfieur de Viu0nne

Repaired

Ie vous enuoye ceſte lettre par Monſieur de Viuonneerrors fixed, spelling kept

Modernised

Je vous envoie cette lettre par Monsieur de Vienneperiod spelling gone, name replaced

An illustration, not a real document: an early modern line, its OCR (with the classic ſ → f and o → 0 confusions), a faithful repair, and a fluent modernisation. The last step reads best and keeps the least.

Even a careful benchmark has to decide what counts. In HIPE-OCRepair we scored corrections for search rather than for diplomatic fidelity: line-break hyphens are joined, case and punctuation are ignored, but accents are kept, so “é” is not “e” (Ehrmann et al., 2026). Each of those rules is reasonable. Each is also a decision about what is allowed to disappear, and a different project, an edition, a study of spelling, a history of typography, would decide differently.

Noise carries information

Noise is not only something to remove. It also tells us things.

Models notice it. When we compared what happens inside Llama and Mistral for clean and OCR-damaged versions of the same words, specific layers and neurons reacted strongly to the damage, and how strongly depended on the collection as much as on the model (Boros & Ehrmann, 2024). The model has, in a sense, its own detector for “this text was read by a machine from an old page”.

Llama 2peak: about 19 neurons at layer 25

layer 0layer 31

Mistralpeak: about 9 neurons at layers 2 and 3

layer 0layer 31

Neurons flagged as OCR-sensitive, layer by layer, on the same scale. The two models notice the damage in different places. Values read approximately from the published chart (Boros & Ehrmann, ICADL 2024). Hover a bar for its layer.

Noise also travels with time. When we gave a named entity recognition model the publication year of each document, the gains were largest on the oldest and noisiest texts (Boros, 2025). Bad OCR, old print and old spelling come together, and knowing when a text was printed helps a model decide what an odd string is likely to be.

And the amount of noise in a page says something about the page: the paper, the press, the decade, the scanner, the collection. Before it is a problem, it is metadata.

1630sceſte → ceftelong s read as f
1860slundi → lnndiworn type, u read as n
1930sdimanche → dimancbemicrofilm scan, h read as b
1990sdimanche → dimanchelaser print, nothing to report
An illustration, not measured data: the kind of error is a trace of how, and roughly when, a page was made.

Robustness, not erasure

So there is another option besides cleaning the text first: make the reader stronger and leave the source alone.

Much of my earlier work went that way. For the first HIPE evaluation we stacked extra Transformer layers on a pretrained model and extended its vocabulary with the unusual words and OCR errors found in the old newspapers, so that it could read through the damage instead of tripping on it (Boros et al., 2020a; 2020b). Later we added knowledge-based contexts, short passages retrieved for each sentence, which helped most precisely on the entities that contained digitisation errors (Boros et al., 2022; González-Gallardo et al., 2023). Nothing in the original text was changed. The model brought more to the reading.

sourcelettre par Monſieur de Viu0nne

Clean first

A cleaner rewrites the line

lettre par Monsieur de Vienne LOC

source changed, wrong entity

Strengthen the reader

Retrieved context: Vivonne, a town in Poitou and the noble family named after it

lettre par Monſieur de Viu0nne PERS

source kept, entity found

An illustration of the two strategies, not a model output. On the right, nothing in the original line changes: the context is only something extra to read with.

Robustness has limits, of course. Past a certain level of damage, every model in those studies failed, and some pages genuinely need to be read again. But when the choice is between a model that copes with the source and a pipeline that quietly rewrites it, I would rather keep the source.

Texture

On this site, the old Romanian blog texts keep their missing diacritics and their two-dot pauses, and the photographs keep their grain. I left them that way because the roughness is part of what they say. Documents are no different. Some noise is damage, and we should repair it, carefully and reversibly. Some noise is history, voice and texture, and the job is to know which is which before reaching for the eraser.

Damage: repair, reversibly

  • enu0yeo read as 0
  • Monfieurſ read as f
  • A1orsl read as 1
  • 1u%d1lundi, barely there

History, voice, texture: keep

  • ieje, in the 1630s
  • ceſtethe long s
  • Asamy blog, no diacritics
  • ..my blog, a two-dot pause
  • grain, in a photograph
A sorting, not a rule: the same string can land on either side, depending on the collection.

Related work

Boros, Ehrmann, Romanello, Najem-Meyer & Kaplan (2024). Post-Correction of Historical Text Transcripts with Large Language Models: An Exploratory Study. LaTeCH-CLfL 2024. Ehrmann, Boros, Opitz, Michail, Wagner & Clematide (2026). ICDAR 2026 HIPE-OCRepair Competition on LLM-Assisted OCR Post-Correction for Historical Documents. Opitz, Raclé, Boros, Michail, Romanello, Ehrmann et al. (2026). CLEF HIPE-2026: Evaluating Accurate and Efficient Person–Place Relation Extraction from Multilingual Historical Texts. ECIR 2026. Tamrazyan, Cornamusaz & Boros (2026). Armenian AutoEpiDoc: Automated Extraction and Encoding of Armenian Inscriptions into EpiDoc TEI/XML. LaTeCH-CLfL 2026. Boros & Ehrmann (2024). Investigating OCR-Sensitive Neurons to Improve Entity Recognition in Historical Documents. ICADL 2024. Boros (2025). A Study of Temporal Fusion Strategies for Named Entity Recognition in Historical Texts. TPDL 2025. Boros, Hamdi, Linhares Pontes, Cabrera-Diego, Moreno, Sidere & Doucet (2020a). Alleviating Digitization Errors in Named Entity Recognition for Historical Documents. CoNLL 2020. Boros, Linhares Pontes, Cabrera-Diego, Hamdi, Moreno et al. (2020b). Robust Named Entity Recognition and Linking on Historical Multilingual Documents. CLEF 2020 (HIPE-2020). Boros, González-Gallardo, Giamphy, Hamdi, Moreno et al. (2022). Knowledge-based Contexts for Historical Named Entity Recognition & Linking. CLEF 2022 (HIPE-2022). González-Gallardo, Boros, Giamphy, Hamdi, Moreno et al. (2023). Injecting Temporal-Aware Knowledge in Historical Named Entity Recognition. ECIR 2023. Huynh, Hamdi & Doucet (2020). When to Use OCR Post-correction for Named Entity Recognition? ICADL 2020.
← Documents are evidence Writing index →