Анонс lang-uk: створюємо умови для повноцінної обробки україномовних текстів

[Про автора: Всеволод Дьомкін — Technical Lead в Grammarly, більше шести років працював викладачем в КПІ — читав курс «Операційні системи & Системне програмування» та інші. Брав участь в организації шести заходів TEDxKyiv]

Усім відомий анекдот про те, що коли програмісти прийдуть до влади, то замінять цілі міністерства на маленькі скрипти. Але не всі знають тих особистостей серед нас, які наближають цей день як можуть. Один з них — це Дмитро Чаплинський, який вже два роки є двигуном проекту «Канцелярська сотня» і за цей час доклав чимало зусиль для того, щоб випотрошити з української бюрократії якомога більше суспільно-корисних даних. Діяльність цієї ініціативи почалася зі спроб відновити пошреджені документи Курченка і Януковича і продовжилася проектом масового оцифрування декларацій українських чиновників, сайтом «Гарна хата» та ін.

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

І всім, хто має стосунок до цього напряму, добре відомо, що принциповою умовою його розвитку є наявність даних (які в цьому домені звуться словниками та корпусами). Дані потрібні для того, щоб будувати на них моделі розмітки чи визначення структури текстів. Вони потрібні для того, щоб оцінювати якість і порівнювати між собою різні підходи і алгоритми. Вони потрібні дослідникам (лінгвістам), щоб з наукового погляду вивчати мову, її розвиток і особливості. А без якісної NLP-бази навряд чи вдасться розробити майбутні скрипти, які зможуть прозоро і ефективно виконувати роботу сучасних бюрократів.

Корпуси українських текстів

До останнього часу українська мова, на жаль, була обділена лінгвістичними даними. Не те, щоб зовсім нічого не було, але більшість робіт виконували в закритому режимі, який притаманний нашим старим науковим кадрам, тож отримати доступ до якісних корпусів навіть базового рівня майже нереально. Є думка, що для української немає сенсу займатись широкомасштабним створенням таких даних (яке, як правило, є недешевим задоволенням) і що немає ринку для україномовних NLP-програм. Можливо. Але варто згадати, що українська мова — № 16 за популярністю мова Вікіпедії і № 32 Інтернету. Іншими словами, попит на користування українською на письмі є, а те, наскільки він великий, ми зможемо визначити емпірично, замість того, щоб робити безпідставні припущення... :)

Втім, нещодавно ситуація з даними почала змінюватись. І, як і інші зміни в нашому суспільстві, її рушієм були зусилля купки волонтерів. Що виглядає цілком очікувано для індустрії розробки, де open source і пов’язане з ним волонтерство є усталеним і зрозумілим явищем. Отже, за останній рік справа створення відкритих даних для українського NLP зрушила з мертвої точки. Група лінгвістів, лідером якої є моя колега з Grammarly Мар’яна Романишин, почала збирати відкритий український корпус-мільйонник — і за рік їм вдалось накопичити вже майже 40% потрібних текстів. Разом з Андрієм Рисіним, який є основним мейнтейнером української версії проекту LanguageTool, вони зарелізили найповніший і дуже якісний відкритий граматичний словник, який був інтегрований як до самого LanguageTool, що зараз надає можливість непоганої перевірки правопису, граматики і стилістики українських текстів, так і в ElasticSearch/Lucene (в процесі релізу), pymorphy2 та в інші місця (для прикладу, його попередню версію використали в російському проекті ДісерНет, який шукає плагіат в наукових роботах і з яким пов’язаний останній скандал про виведення на чисту воду дружини колишнього міністра культури).

Останньою подією в цій сфері на сьогодні є реліз NER-анотації до половини наявних текстів зі згаданого корпусу-мільйонника. Цей проект ми реалізували разом з Дмитром Чаплинським і трьома анотувальниками всього лише за місяць, використовуючи краудсорсинг (чи то, як він каже, «колхозну») платформу Вулик, яку Дмитро розробив для автоматизації завдань, пов’язаних з використанням праці волонтерів. Загалом, ми обробили тексти приблизно на 200 тисяч токенів, в яких було проанотовано понад 6 тисяч NER-сутностей. Детальна інформація про корпус є на сторінці проекту на гітхабі.

Ба більше, на створених даних та корпусі української Вікіпедії ми натренували модель з використанням бібліотеки MITIE, яка одразу досягла досить гарної якості 75-80%. Іншими словами, даних виявилось достатньо, у всякому разі на поточний момент. У демо-режимі ця модель скоро буде доступна як веб-сервіс, який буде здатний робити також деякі інші корисні речі з опрацювання українських текстів: визначати мову тексту, робити його токенізацію та тегування частинами мови (без зняття омонімії).

Uber-анонс

Разом з анонсом цього корпусу ми хочемо оголосити про більш загальну ініціативу. Перші успіхи дають нам впевненість у тому, що швидкими темпами (максимум за кілька років) можна довести корпуси для української мови до досить пристойного рівня, співмірного з тим, що створено для російської, польської, турецької чи, навіть, німецької. У нас є велика перевага: ми йдемо вже протореним шляхом, маємо у своєму розпорядженні більш просунуті інструменти і можемо не повторювати помилок попередників. Головне, ми можемо створити повністю відкриті і загальнодоступні набори даних і уникнути пастки, в яку потрапило, наприклад, англійське NLP, для якого комерційне використання більшості наявних корпусів високої якості є або суттєво ускладненим, або взагалі неможливим.

Отже, ми вирішили об’єднати під одним дахом всі ці споріднені ініціативи — в рамках спільноти lang-uk, яка побудована на єдиних і простих принципах і буде займатися підтримкою наявних і розвитком нових проектів по збору українських корпусів та інших текстових даних. Ядром цієї спільноти є перелічені вище «активісти», а також певна кількість волонтерів. Звісно, це тільки початок, і ми відкриті до приєднання нових учасників, які поділяють наші принципи.

Насправді, роботи багато вже, а далі її буде ще більше. Це робота і для програмістів, і для лінгвістів, і для дослідників з аналітиками, і для анотувальників, і, може, ще для когось. Найближчим часом ми плануємо працювати над:
— Прискоренням і доведенням до завершення проекту створення українського корпусу-мільйонника;
— Завершенням роботи над моделями NER-анотації;
— Створенням набору мікросервісів для NLP-опрацювання українських текстів;
— Публікацією моделей векторного представлення слів (word2vec та інших);
— Розміткою корпусу-мільйонника частинами мови;
— Розміткою корпусу зв’язків між сутностями в тексті.

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

І, головне, якщо вам цікаво долучитись, то ось декілька способів, як це можна зробити:
— Якщо у вас є якісь набори текстових даних українською, які ви хотіли б відкрити і опублікувати, — ми з радістю додамо їх до нашого проекту (а також організуємо процес роботи з ними, якщо це потрібно).
— Якщо вам для роботи чи інших цілей потрібно створити певний корпус чи покращити наявний, і ви готові зробити цю роботу публічно доступною — ми можемо обговорити і допомогти в таких проектах як своєю експертизою, так і роботою учасників спільноти (яка може бути як волонтерською, так і оплачуваною, але, в будь-якому разі, якісною).
— Якщо ви хочете допомогти своїми мізками і руками — welcome. Найкраще, якщо ви готові волонтерити, але під деякі проекти ми також будемо шукати фінансування.
— До речі, про фінансування — нам можна допомогти пожертвою.
— Нарешті, ви можете просто розповсюджувати інформацію про цю ініціативу та передавати її тим, хто може бути зацікавленим.

Коротше, для того, щоб завтра ми могли замінити окремі міністерства на невеликі скрипти, сьогодні треба зробити трохи брудної підготовчої роботи. ;)

Похожие статьи:
Меня зовут Максим Вороной, я — Consulting Engineer в GlobalLogic (Харьков). С 2000 года я занимаюсь архитектурой ПО, в круг моих интересов входят...
Каждый знает, «как правильно нанимать», и добавить что-то интересное практически невозможно. Поэтому в этой статье будет две...
Что: Возможность научиться программировать в команде под руководством крутых сеньоров. Что нужно: Увлекаться...
Для некоторых компаний стандартом является использование корпоративных телефонов, которые не имеют камеры, что...
Компания Dell объявила о пополнении семейства персональных компьютеров Inspiron новой моделью ноутбука Inspiron 11 серии...
Яндекс.Метрика