Tools,

Tesseract and Italian: eng reads no à, è, ì, ò or ù

86%

of accented letters right with -l ita

Get the code

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

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
Sources

Two ways to skip the work

Run it yourself. Our Apify Actor turns scanned PDFs into Markdown, tables included.

Try the Actor

Or send us the scan. Tack, our AI, does the job for $29, up to 50 pages. First page free.

Get one 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.