Tesseract and Italian: eng reads no à, è, ì, ò or ù
86%
of accented letters right with -l ita
One flag: 5.0% to 86.0%
Proofread pages from 15 Italian books, printed 1851 to 1930:
| Model | Accents right | Words right |
|---|---|---|
-l eng, the default |
5.0% | 90.9% |
-l ita |
86.0% | 96.4% |
98.8% of letters right with eng, accents aside
9.1% of words wrong with eng
eng reads the letters, but é is the only Italian accent its model has. It prints è as é, ò as d and à as a.
What eng does to Italian words
Real words from these scans. Each time, ita read it right:
| Printed | eng read | Times |
|---|---|---|
| è | é | 61 |
| più | pit | 49 |
| nè | né | 19 |
| può | pud | 13 |
| però | perd | 10 |
è, the word for "is", came out wrong on 24 of 30 pages. più became pit on 18.
ita cannot print í or ú
Three books, printed 1914 to 1928, set piú, cosí and súbito with an acute accent. The wiki text keeps it. ita has no í or ú, so it prints ù and i.
0 of 36 í and ú read right by ita
23 of 36 by script/Latin
On the other 464 accents, ita read 92.7%. For books that print piú, try script/Latin.
Install ita, then pass -l ita
-
Debian or Ubuntu:
sudo apt install tesseract-ocr-ita -
macOS:
brew install tesseract-lang, all languages - Check:
tesseract --list-langsshows ita
This writes page.txt:
tesseract page.png page -l ita
In Python:
import pytesseract
print(pytesseract.image_to_string("page.png", lang="ita"))
Bigger models gain little, mixes lose accents
Each against plain ita, which took 1.1 seconds a page:
| Setting | Accents right | Sec a page |
|---|---|---|
| ita from tessdata_best | 88.2% | 2.8 |
-l ita+eng |
83.0% | 1.6 |
-l eng+ita |
82.8% | 1.6 |
| ita_old, for old Italian | 86.0% | 1.9 |
| script/Latin, for all Latin-alphabet languages | 89.4% | 1.6 |
Adding eng cost 15 or 16 accents, in either order. Words right stayed at 96.4%.
ita_old read 89.7% of words right, against 96.4% for ita.
How I tested it
- Pages: it.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 or tables were skipped.
- Books printed 1850 to 1950 only.
- 30 pages, 53,252 letters, 500 of them accented.
- Each scan is the wiki's page image: 18 at 1,920 px, 6 at 1,280 px, 6 at 960 px.
- Accents right: accented letters read right, in order. Words right: proofread words read right, accents and all, in order.
- Running heads and page numbers are not in the proofread text, so extra text costs nothing.
- ita+eng and eng+ita gave different text on 4 of 30 pages, but almost the same score.
- 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 Italian option yet
Our Apify Actor reads scans with Tesseract too, but its Language input has no Italian. It starts at English. On these 30 scans, live build 0.1.44:
5.0% of accents right, left at English
50.8% set to French, the best I tried
French has à, è, é and ù, but no ì or ò. Test build 0.1.52 read the same. For Italian scans, use plain Tesseract with -l ita for now.
What I did not test
- Phone photos, faxes, and scans under 960 px wide.
- Handwriting. See this test.
- Other languages. French, Spanish, German and Vietnamese 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 Italian?
Yes, with the ita model. On 30 proofread book scans it read 86.0% of accented letters right. The default eng read 5.0%.
Why does Tesseract read più as pit?
It runs with eng, the default, and eng has no ù. On these scans eng read più as pit 49 times. Pass -l ita.
Is ita from tessdata_best worth it?
A little. It read 88.2% of accented letters right, and it took 2.8 seconds a page, about 2.5 times as long as ita.