Полезные материалы

Огляд магістерських проектів другого року: електронний словник Залізняка

Після новорічної вистави магістерських проектів ми вирішили розповісти про них і тим, хто прийти з якихось причин не зміг. Почнемо з проекту, присвяченого автоматичному розбору нових слів, невідомих словників. Його учасники - Кіра Дроганова, Надія Буйлова і Ілля Азерковіч.

Його учасники - Кіра Дроганова, Надія Буйлова і Ілля Азерковіч

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


Учасники проекту для своїх експериментів використовували матеріал газетного корпусу і корпусу блогів Національного корпусу російської мови (у сумі - понад п'ять млн слововживань).


Зараз програма налаштована на виявлення «нових» слів з використанням Mystem 3 - слова, яких немає у вбудованому словнику Mystem, вважаються новими. Потенційно, програма може працювати з будь-яким електронним граматичним словником.


Індекс Залізняка був розділений на окремі послід (наприклад, індекс "м 3 * а" складається, з цієї точки зору, з двох частин: літерного символу + графічної основи і схеми наголоси).


Алгоритм реалізований з використанням Python 3. На схемі представлені основні етапи обробки «нових слів»: словоформи обробляються Леммер за допомогою pymorphy2; потім здійснюється постобработка за допомогою n-програмних правил (так, наприклад, система знає, що якщо слово закінчується на «дье» або «ньі», то воно не схиляється (Депардьє, Кураньї)). Визначення послід роду здійснюється з використанням бібліотеки pymorphy2. На останньому кроці вся отримана інформація агрегує і подається на вхід Weka. Навчання моделі для передбачення послід графічної основи і схеми наголоси здійснюється з використанням алгоритму «дерева рішень».
Алгоритм реалізований з використанням Python 3


Повна перевірка показників якості (всі теги разом) роботи системи проводилася вручну, на топ -1000 «нових» слів з частотного списку слів, виділених з корпусу. На цьому матеріалі система видає якість 99%.


Веб-демо доступно за адресою: http://web-corpora.net/wsgi3/GDictionary/

(Кіра Дроганова, Віталій Вовк)