<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Articles on Tetrak OCR</title><link>https://tetrak.dev/articles/</link><description>Recent content in Articles on Tetrak OCR</description><generator>Hugo</generator><language>en-gb</language><atom:link href="https://tetrak.dev/articles/index.xml" rel="self" type="application/rss+xml"/><item><title>Which way up is the page?</title><link>https://tetrak.dev/articles/2026/10/which-way-up/</link><pubDate>Fri, 16 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/which-way-up/</guid><description>&lt;p&gt;The &lt;a href="https://www.armenianinstitute.org.uk/"&gt;Armenian Institute&lt;/a&gt;&amp;rsquo;s
&lt;a href="https://www.armenianinstitute.org.uk/empire-on-trial-rafael-x-verelest"&gt;Empire on Trial&lt;/a&gt;
project is transcribing the papers of &lt;em&gt;Rafael v. Verelst&lt;/em&gt;, the suits that
Armenian merchants of Bengal brought in London against Harry Verelst, the
East India Company&amp;rsquo;s Governor of Bengal, in the 1770s. The papers are in
the India Office Records at the British Library, and the project works
from the Library&amp;rsquo;s page images: six documents, some four hundred and fifty
frames, microfilmed in 1995 and scanned from the film. We built the
project a reading site, each frame beside its transcript, and the first
build looked wrong. Most of one document, the brief and proofs assembled
for Verelst&amp;rsquo;s defence, was lying on its side.&lt;/p&gt;</description></item><item><title>Transliterate for display, fold for finding</title><link>https://tetrak.dev/articles/2026/10/transliterate-for-display-fold-for-finding/</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/transliterate-for-display-fold-for-finding/</guid><description>&lt;p&gt;Hovhannes Tumanyan is about as famous as an Armenian writer gets. He is
Armenia&amp;rsquo;s national poet, and his fairy tales and verse for children are
read to almost every Armenian child, in Armenia and across the diaspora.
His name is on a great many book covers. Look through the Armenian
Institute&amp;rsquo;s catalogue and you find it spelled at least four ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tumanyan&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tumanean&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toumanyan&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tumanian&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these is a mistake. Each is an honest romanisation of one of the
two ways Armenian spells the name: &lt;code&gt;Թումանյան&lt;/code&gt; in the reformed spelling
used in Armenia, and &lt;code&gt;Թումանեան&lt;/code&gt; in the classical spelling the diaspora
kept.&lt;/p&gt;</description></item><item><title>What changed in ISO 9984 and ISO 9985 in 2026</title><link>https://tetrak.dev/articles/2026/10/what-changed-in-iso-9984-and-iso-9985/</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/what-changed-in-iso-9984-and-iso-9985/</guid><description>&lt;p&gt;ISO publishes one standard for writing Georgian in Latin letters,
ISO 9984, and one for Armenian, ISO 9985. Both first appeared in 1996, and
both were replaced in January 2026 by second editions. We found out by
accident, while checking the references for
&lt;a href="https://tetrak.dev/articles/2026/10/transliterate-for-display-fold-for-finding/"&gt;an article about search&lt;/a&gt;:
the citation we had for ISO 9985:1996 led to a page marking it withdrawn.&lt;/p&gt;
&lt;p&gt;We haven&amp;rsquo;t found anyone describing what changed. ISO&amp;rsquo;s own pages list the
new editions, standards bodies&amp;rsquo; shops sell them, and that&amp;rsquo;s all. At the
time of writing, Wikipedia&amp;rsquo;s page on romanising Georgian still describes
the 1996 edition as current. So this article describes the changes, from
the published standards, for anyone who keeps romanised Georgian or
Armenian in a catalogue, a database, or a gazetteer.&lt;/p&gt;</description></item><item><title>Telling classical from reformed Armenian by counting one letter</title><link>https://tetrak.dev/articles/2026/10/classical-or-reformed-armenian-by-one-letter/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/classical-or-reformed-armenian-by-one-letter/</guid><description>&lt;p&gt;For most of its history Armenian had one spelling. The alphabet Mesrop
Mashtots devised at the start of the fifth century was made for the
classical language, Grabar, and its spelling stayed put while the spoken
language moved on. By the nineteenth century there were two modern
literary standards, both a long way from Grabar: Eastern Armenian, centred
on Tiflis in the Russian Empire and spoken across Persia, and Western
Armenian, centred on Constantinople in the Ottoman Empire. They differed in
grammar and pronunciation, but both were written in the same classical
spelling, including letters that had stopped being pronounced.&lt;/p&gt;</description></item><item><title>When your training set has read your test set</title><link>https://tetrak.dev/articles/2026/10/training-set-has-read-your-test-set/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/training-set-has-read-your-test-set/</guid><description>&lt;p&gt;Before anything trained on a work, we reserved pages of it. We &lt;a href="https://tetrak.dev/articles/2026/09/armenian-recogniser-both-dialects/"&gt;wrote about
that&lt;/a&gt;
with some satisfaction: the whole of volume 2 of the Armenian Soviet
Encyclopedia and a fixed set of pages from each of seven other works,
registered in a module whose only job is to refuse. The harvester checks every
harvest&amp;rsquo;s manifest against it, so a copied or renamed directory cannot get
past it. The crop cutter checks it. The synthetic sampler checks it. The
word-list builder checks it. The pages the evaluator downloads are, by
construction, exactly the pages the training code will not touch.&lt;/p&gt;</description></item><item><title>Beating the baselines, starting with our own ruler</title><link>https://tetrak.dev/articles/2026/10/beating-the-baselines/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/10/beating-the-baselines/</guid><description>&lt;p&gt;At the end of September, the &lt;a href="https://tetrak.dev/articles/2026/09/the-engine-we-had-left-out/"&gt;comparison with every external
engine&lt;/a&gt;
left us level on word recall and well behind on character similarity. Calfa&amp;rsquo;s
Tesseract model led the order-sensitive metric on almost every register. We
wrote that what survived reading order was a recognition-sharpness gap, and
that it was the next thing to train against.&lt;/p&gt;
&lt;p&gt;That turned out to be mostly wrong, and the way it was wrong is the more
useful half of this article.&lt;/p&gt;</description></item><item><title>The engine that made it up</title><link>https://tetrak.dev/articles/2026/09/the-engine-that-made-it-up/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/the-engine-that-made-it-up/</guid><description>&lt;p&gt;We have been looking at a new class of OCR engine: compact
vision-language models, around a billion parameters, built specifically
for reading documents and small enough to run on a laptop. Two were
worth measuring. One of them, PaddleOCR-VL, roughly doubled the best
local character similarity we have ever recorded on a dense page of
1920s newsprint, and we are building a backend for it.&lt;/p&gt;
&lt;p&gt;This article is about the other one, and about the twenty minute experiment that
turned it from a strong candidate into something we will not ship.&lt;/p&gt;</description></item><item><title>The engine we had left out</title><link>https://tetrak.dev/articles/2026/09/the-engine-we-had-left-out/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/the-engine-we-had-left-out/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 2 October 2026.&lt;/strong&gt; The tables in this article are rendered from the current comparison, so they now show v6 under a corrected metric, while the prose describes 24 September. Most of the character-similarity gap it discusses turned out to be the metric itself. See &lt;a href="https://tetrak.dev/articles/2026/10/beating-the-baselines/"&gt;Beating the baselines, starting with our own ruler&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;a href="https://tetrak.dev/articles/2026/09/the-comparison-we-had-been-putting-off/"&gt;cross-engine comparison&lt;/a&gt;
we published on 4 September carried an admission in its third paragraph.
Three external engines had read every page of every register, but a
fourth had not: Calfa&amp;rsquo;s &lt;code&gt;hye-paddle&lt;/code&gt;, which had held the best
encyclopedia recall until v5 overtook it, had only ever been run on the
encyclopedia pages, because the model directory it needed had since
gone. We wrote that its row was absent rather than guessed and left it
at that.&lt;/p&gt;</description></item><item><title>Built to be forked: how to get involved in the Armenian recogniser</title><link>https://tetrak.dev/articles/2026/09/built-to-be-forked/</link><pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/built-to-be-forked/</guid><description>&lt;p&gt;Most of what we have written this week has been about numbers — which
engine reads which register, and by how much. This article is about
the two repositories those numbers come from, and it is written for a
different reader: not someone deciding whether to use the model, but
someone wondering whether to get their hands on it.&lt;/p&gt;
&lt;p&gt;That might mean sending us a fix. It might mean adding a source we have
not harvested, or a typeface we have not rendered, or a held-out set for
material we do not have. It might mean none of those and instead taking
a fork to train a recogniser for a script that is not Armenian at all,
which the pipeline is shaped to allow. All of those are welcome, and the
repositories have been arranged so that each is possible without
asking us first. Here is how they are arranged, and why.&lt;/p&gt;</description></item><item><title>The comparison we had been putting off</title><link>https://tetrak.dev/articles/2026/09/the-comparison-we-had-been-putting-off/</link><pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/the-comparison-we-had-been-putting-off/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 2 October 2026.&lt;/strong&gt; The character similarity figures in this article were computed with a metric we have since found to be wrong: it used &lt;code&gt;difflib&lt;/code&gt;&amp;rsquo;s &lt;code&gt;autojunk&lt;/code&gt;, which on a page of text ignores most of the alphabet. Word recall was unaffected by that, though three smaller scoring corrections made at the same time moved it slightly. See &lt;a href="https://tetrak.dev/articles/2026/10/beating-the-baselines/"&gt;Beating the baselines, starting with our own ruler&lt;/a&gt; for what changed and the corrected comparison.&lt;/p&gt;</description></item><item><title>The Armenian recogniser learns both dialects</title><link>https://tetrak.dev/articles/2026/09/armenian-recogniser-both-dialects/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/armenian-recogniser-both-dialects/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 2 October 2026.&lt;/strong&gt; The character similarity figures in this article were computed with a metric we have since found to be wrong: it used &lt;code&gt;difflib&lt;/code&gt;&amp;rsquo;s &lt;code&gt;autojunk&lt;/code&gt;, which on a page of text ignores most of the alphabet. Word recall was unaffected by that, though three smaller scoring corrections made at the same time moved it slightly. See &lt;a href="https://tetrak.dev/articles/2026/10/beating-the-baselines/"&gt;Beating the baselines, starting with our own ruler&lt;/a&gt; for what changed and the corrected comparison.&lt;/p&gt;</description></item><item><title>Shipping the Armenian recogniser: what the language taught the model, and us</title><link>https://tetrak.dev/articles/2026/09/shipping-the-armenian-recogniser/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/09/shipping-the-armenian-recogniser/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 2 October 2026.&lt;/strong&gt; The character similarity figures in this article were computed with a metric we have since found to be wrong: it used &lt;code&gt;difflib&lt;/code&gt;&amp;rsquo;s &lt;code&gt;autojunk&lt;/code&gt;, which on a page of text ignores most of the alphabet. Word recall was unaffected by that, though three smaller scoring corrections made at the same time moved it slightly. See &lt;a href="https://tetrak.dev/articles/2026/10/beating-the-baselines/"&gt;Beating the baselines, starting with our own ruler&lt;/a&gt; for what changed and the corrected comparison.&lt;/p&gt;</description></item><item><title>Armenian OCR: the engines, the numbers, and our first training run</title><link>https://tetrak.dev/articles/2026/08/armenian-ocr-measured/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/08/armenian-ocr-measured/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 2 October 2026.&lt;/strong&gt; The character similarity figures in this article were computed with a metric we have since found to be wrong: it used &lt;code&gt;difflib&lt;/code&gt;&amp;rsquo;s &lt;code&gt;autojunk&lt;/code&gt;, which on a page of text ignores most of the alphabet. Word recall was unaffected by that, though three smaller scoring corrections made at the same time moved it slightly. See &lt;a href="https://tetrak.dev/articles/2026/10/beating-the-baselines/"&gt;Beating the baselines, starting with our own ruler&lt;/a&gt; for what changed and the corrected comparison.&lt;/p&gt;</description></item><item><title>What we will be writing about</title><link>https://tetrak.dev/articles/2026/08/what-we-will-be-writing-about/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://tetrak.dev/articles/2026/08/what-we-will-be-writing-about/</guid><description>&lt;p&gt;The documentation on this site answers the questions a person has once they
have decided to try Tetrak. What it installs, what the flags do, what the
engines are, what the benchmark measured. It is deliberately static: the
&lt;a href="https://tetrak.dev/research/"&gt;research pages&lt;/a&gt; are regenerated from the harness,
so the figures on them cannot drift away from the data, and the reference
pages describe a surface that only changes when the code does.&lt;/p&gt;
&lt;p&gt;None of that is a good home for an argument, or for a note about something that
did not work. This section is.&lt;/p&gt;</description></item></channel></rss>