Tesseract and Greek: eng cannot print one Greek letter
93%
of Greek letters right with -l ell
One flag: 0.0% to 93.4%
Proofread pages from 15 scanned Greek books and papers, printed 1843 to 1947:
| Model | Greek letters right |
Words right |
|---|---|---|
-l eng, the default |
0.0% | 0.0% |
-l ell |
93.4% | 70.5% |
The eng model has no Greek letters at all, so it prints Latin lookalikes. A word counts as right only with every accent and breathing mark right too.
What eng prints instead
Real words from a 1924 book, and what eng printed for them:
| Printed | eng read |
|---|---|
| τοὺς φίλους του | TOUS qizovg TOV |
| μὲ τὰ καράβια | pe ta zuedsa |
| Πεντέξη μῆνες πρίν | Tlevtéeq [ives xoiv |
On all 30 pages eng printed 0 Greek letters. If Tesseract seems unable to read Greek at all, the cause is the model, not the scan.
Old accents are the weak spot
All 30 pages use the old polytonic accents. Greek print moved to one accent mark in 1982, and this test left out books after 1975.
| Letters with | On the pages | ell right |
|---|---|---|
| An acute or a dieresis only (ά ϊ) | 3,773 | 91.0% |
| A breathing, grave, circumflex or iota subscript (ἀ ὴ ῆ ᾳ) | 8,606 | 83.7% |
ell's most common slip: ἀ read as α, the breathing dropped, 78 times. grc, the Ancient Greek model, read 88.0% of the second row.
Install ell, then pass -l ell
-
Debian or Ubuntu:
sudo apt install tesseract-ocr-ell(tesseract-ocr-grcfor grc) -
macOS:
brew install tesseract-lang, all languages - Check:
tesseract --list-langsshows ell
This writes page.txt:
tesseract page.png page -l ell
In Python:
import pytesseract
print(pytesseract.image_to_string("page.png", lang="ell"))
tessdata_best reads the most words
Each against plain ell, which took 0.9 seconds a page:
| Setting | Words right | Sec a page |
|---|---|---|
| ell from tessdata_best | 78.9% | 3.3 |
-l ell+grc |
77.6% | 2.1 |
| script/Greek, one model for the script | 74.5% | 1.0 |
-l grc, Ancient Greek |
74.1% | 1.5 |
-l ell+eng |
67.3% | 1.9 |
Adding eng costs letters: ell+eng read 88.3% of Greek letters, plain ell 93.4%.
How I tested it
- Pages: el.wikisource scans whose text was proofread (level 3) or also checked by a second person (level 4). Books picked by a seeded shuffle, not by me, 2 pages a book. Pages with notes, poems, tables or columns were skipped.
- A check that the wiki text is the text on the scan (grc from tessdata_best, a model not in the tables, must find 80% of its letters) dropped 2 pages.
- A PDF page counts only when one scanned image covers it, so no file saved from a word processor is in the set.
- 30 pages, 57,102 Greek letters, 12,379 of them with a mark.
- Each scan is the wiki's page image: 16 at 1,920 px, 12 at 1,280 px, 2 at 960 px, never wider than the scan itself.
- Lower case on both sides, and a final ς counts as σ. Running heads and page numbers cost nothing.
- Tesseract 5.5.4, one thread. Models from tessdata_fast 4.1.0, the files Homebrew installs, and tessdata_best 4.1.0.
Our Actor has no Greek option
Our Apify Actor reads scans with Tesseract too, but its Language input has no Greek. It starts at English. On these 30 scans, live build 0.1.44:
4.7% of Greek letters right, left at English
0.4% of words right
Those letters came from its second reader, RapidOCR, on 23 of 30 pages. None of the Actor's language models has a Greek letter. For Greek scans, use plain Tesseract with -l ell.
What I did not test
- Modern Greek print with one accent mark.
- Phone photos, faxes, and scans under 960 px wide.
- Handwriting. See this test.
- Other scripts. Russian, Arabic and Hindi have their own tests.
- Windows and Linux. One Mac.
Sources
Two ways to skip the work
Run it yourself. Our Apify Actor turns scanned PDFs into Markdown, tables included.
Or send us the scan. Tack, our AI, does the job for $29, up to 50 pages. First page free.
Questions people ask
Does Tesseract read Greek?
Yes, with the ell model. On 30 proofread scans it read 93.4% of the Greek letters right. The default eng read 0.0%.
Why does Tesseract print Latin letters for Greek?
It runs with eng, the default, and eng has no Greek letters. It prints lookalikes: τοὺς came out as TOUS. Pass -l ell.
ell or grc for old Greek print?
grc read more words right than ell, 74.1% against 70.5%. ell from tessdata_best did best, but it took over 3 times as long.