Від Tesseract до Чугайстра. Як спільнота Вікіджерел поліпшує розпізнавання української спадщини

Для пришвидшення транскрибування видань на Вікіджерелах уже багато років використовуються моделі автоматичного розпізнавання тексту на зображеннях. Це дозволяє користувачам виправляти лише символи, які програма розпізнала неправильно, замість ручного переписування тексту зі сторінки.

Довгий час у Вікіджерелах були доступні лише два рушії для розпізнавання: Tesseract та Google OCR. Обидва мають відносно непогану якість, проте з двома значними недоліками: по-перше, вони не підтримують розпізнавання рукописного тексту, який становить важливу частину культурної спадщини, по-друге, дотренування моделей для покращення якості чи додавання підтримки нової мови є технічно складним завданням, недоступним для простих користувачів.

Вирішити ці проблеми і допомагає Transkribus.

Усе почалося із проєкту “Wiki Loves Manuscripts” (Вікі любить манускрипти), який проспонсорував Фонд Вікімедіа у 2020—2021 роках після відкриття балійських Вікіджерел. У його межах було оцифровано багато рукописних текстів Індонезії, написаних на пальмових листках. Окремо було надано кошти на тренування моделі розпізнавання рукописного тексту для балійської мови.

У 2023 році Pusat Pengkajian Islam dan Masyarakat, дослідницький інститут з Джакарти, очолив запуск проєкту разом з «Вікімедіа Індонезія» та проєктом спільноти WikiLontar. Також було укладено партнерства з Transkribus, Британською бібліотекою, офісом UNESCO в Джакарті та Tempo Media. Завдяки зусиллям цих організацій, для 22 учасників провели тренування із роботи з рукописним текстом, 12 із них успішно завершили навчання.

Натренувати Transkribus-модель для української мови вирішив і один із користувачів українських Вікіджерел. Але спершу розглянемо детальніше сам Transkribus.

Transkribus

Це платформа, що була створена за спонсорства Європейського Союзу. Вона надає зручний інтерфейс для приготування даних для тренування моделей, розпізнавання тексту на зображеннях, а також потужності власне для тренування моделей.

Окремі моделі натреновані самою платформою Transkribus, але більша частина надані установами, які власноруч розмічували дані, щоб мати моделі, які матимуть якомога більшу точність на їхніх текстах. Ви можете знайти безліч моделей, які адаптовані під конкретні шрифти, стилі писарів тощо.

Наприклад, модель Stockholm Notaries 1700 3.0 натренована для розпізнавання протоколів різних установ Стокгольма у період 1713–1795 років.

Для того, щоб натренувати модель, потрібно мати датасет. Transkribus надає зручний інтерфейс для користувачів, щоб розмітити рядки та транскрибувати текст для кожного рядка. Звісно, не все потрібно робити вручну. Рядки можна автоматично позначити з допомогою готових моделей, якщо ж вони не влаштовують вас своєю якістю, то можна натренувати власну на своїх даних. Те саме стосується і моделей для розпізнавання тексту.

Є навіть моделі для розпізнавання табличних даних, що корисно, наприклад, для метричних книг, проте наразі ця функція ще не інтегрована у Вікіджерела.

Передумови використання в українських Вікіджерелах

В української спільноти було кілька причин для експериментування із тренуванням власних моделей.

Впродовж століть український правопис значно змінювався і, на жаль, моделі Tesseract та Google досить погано справлялися із текстами до 1920-х років.

Помилки автоматичного розпізнавання різняться від простої заміни кількох літер у більш сучасних правописах, як скрипниківка, (наприклад, заміна «соціяльний» на «соціальний») до більш значимих, коли вони взагалі не могли розпізнати текст. Найбільшою проблемою було використання в багатьох правописах літер, що не використовуються в сучасній мові і які розпізнавалися неправильно у більшості текстів: ы, ў, ё, э, ѣ тощо. Окремо варто зазначити етимологічний правопис Максимовича, що використовував діакритики для позначення символів, де вимова змінилася з часів староукраїнської мови. 

Візьмімо до прикладу цей уривок: «Въ вышнево̂мъ садочку росте лелѣя». Літера «ы» вимовляється як «и», «ѣ» як «і», а «о̂» як «і». Ця хатинка над голосівками позначає етимологічний перехід звуку в інший, зазвичай у звук [і]. У текстах цим правописом користувачам доводилося власноруч проставляти цей діакритик над кожною літерою, оскільки Tesseract та Google не вміли їх розпізнавати. Проблеми виникали і з пунктуаційними знаками: тире часто розпізнавалося як дефіс, а також неправильні лапки замість таких, як у книзі.

Усі ці фактори впливали на потребу у нових, кращих засобах для підвищення продуктивності вичитування у спільноті.

Printed Ukrainian 20th century

Ця модель стала першою, яку почали використовувати на Вікіджерелах. Для її тренування знадобилося всього близько 100 сторінок, що сумарно містили близько 20 тисяч слів. Опублікована вона була 29 вересня 2023 року.

Першою проблемою при її приготуванні стало те, що на той час зовсім не було моделей для розпізнавання друкованого тексту української мови на Transkribus. Існувала лише одна модель для рукописного тексту Ukrainian generic handwriting 1, натренована у межах MultiHTR project.

Через це мені довелося власноруч переписувати текст для кожного рядка сторінок, що увійшли для тренування моделей. Коли я розмітив близько 20 сторінок, то спробував натренувати першу модель (не публічна), щоб перевірити якість на такому маленькому датасеті. Вона виявилась не дуже хорошою, особливо на текстах інших книг, які не увійшли в тренувальний датасет, проте значно пришвидшила вичитування, адже тепер замість повністю ручного транскрибування сторінок мені доводилося лише виправляти помилки.

Таких проміжних моделей було кілька, і кожна з них ставала все точнішою, аж поки не було опубліковано Printed Ukrainian 20th century. За автоматичним тестуванням модель помилялася у розпізнавання 2.20% символів, що є значно кращим результатом, порівняно з проміжними результатами.

У цей час я почав збирати відгуки користувачів, щоб визначити проблемні видання на яких виникає найбільше помилок, щоб включити їх у наступну версію моделі. Зазвичай модель працює найкраще на даних, що подібні до тих, на яких вона тренована. Збільшення різноманіття сторінок веде до кращої якості загалом у Вікіджерелах.

Ukrainian Wikisource

Наступну версію я опублікував вже 24 лютого 2024 року. Вона була натренована на 341 сторінці, які містили 89442 слова. А якість була перевірена автоматично на 38 сторінках, у результаті виявилося, що вона помиляється лише у розпізнаванні 0.90% символів. У цій версії я значно збільшив різноманіття наявних сторінок із видань.

Ukrainian Chuhaister

Чугайстер став наступним кроком моделі. Кількість вичитаних сторінок сягнула вже понад 500 сторінок. 481 сторінку, або 140435 слів, було використано для тренування, а 53 з них для перевірки якості. Кількість помилок впала усього до 0.62%, що є просто неймовірним числом порівняно з моделями Tesseract та Google.

Проте ми не припиняємо працювати і далі вичитуємо дані, щоб опублікувати нову, ще кращу модель. Нею має стати Ruthenian Chuhaister.

На наступну версію у нас є кілька пріоритетів:

  1. Додати підтримку для газет — попередні версії зовсім не можуть розпізнавати газетні тексти. Сторінки книг та сторінки газет часто мають абсолютно різні розміри, розширення та якість і наша модель банально не здатна з пікселів газетного зображення скласти зв’язний текст. Для цього вже було розмічено близько 15 сторінок із двох різних газет і сподіваємося збільшити цю кількість принаймні вдвічі, щоб мати базову підтримку для цього типу текстів. Газети є важливим джерелом для істориків, особливо реґіональні, які дають особливий погляд у місцеву історію, а проте часто залишаються поза увагою, особливо непрофесіоналів.
  2. Додати підтримку білоруської мови — вона, як і українська мова, перебуває під тиском русифікації, а наявна модель допоможе зберігати їхню спадщину на відповідному розділі Вікіджерел. Попередня версія уже досить непогано розпізнає більшість білоруської, але виникають певні проблеми з літерами «ў» та «ё». Ми вже повністю вичитали білоруський переклад твору Івана Франка «Ворони і сови», і його буде включено до тренувального датасету. Цей текст також буде додано у паралельний корпус ParaRook.
  3. Покращити розпізнавання латиниці — дуже часто в українських текстах, особливо наукових, зустрічаються невеликі уривки латиниці, найчастіше польської, німецької та чеської, а також окремі фрази з латинської мови. Досить часто модель або розпізнає слово як просто набір кириличних літер або як суміш кирилиці та латиниці. Наша ціль — виправити цю проблему, щоб користувачам не доводилося робити це власноруч. І в нас вже є досить непоганий результат із польською мовою у «Записках НТШ» — проміжна модель майже перестала мішати кириличні та латиничні літери.
Назва моделіКількість тренувальних сторінокКількість слівВідсоток помилок у розпізнаванні символів (CER)
менше = краще
Printed Ukrainian 20th century96197682.20%
Ukrainian Wikisource341894420.9%
Ukrainian Chuhaister4811404350.62%
Ruthenian Chuhaister (проміжна модель)6271923200.53%
Опубліковано у Історія, Аналітика, Вікіпедійне | Теґи: . | Додати в закладки: постійне посилання на публікацію.

Залишити коментар