Мы недавно писали на Хабр о нашей библиотеке silero-stress для простановки ударения в обычных словах и омографах. Теперь у нашего проекта silero-stress вышла версия v1.2, в которую вошло следующее:
Добавили акцентор для украинского языка на основе словаря в 3M слов;
Выложили в открытый доступ словари ударений ещё для 18 языков России и СНГ;
Если слова нет в словаре, ударение ставится алгоритмом (подробности в табличке под спойлером ниже);
Обновили пакет.
Для русского и украинского языков размеры словарей позволили обучить акценторы, которые работают со 100%-й точностью на исходном словаре, а так же имеют какую-то ненулевую генерализацию на неизвестные слова (ещё акцентор занимает примерно на два порядка меньше места, чем словарь).
Для остальных языков мы выложили в открытый доступ собранные нами словари и указали алгоритм простановки ударения в неизвестных словах.
Почти для всех языков получилось вручную разметить небольшого размера словари. В ходе разметки выяснилось, что для подавляющего большинства языков в первом приближении работает эвристика "ставить ударение на первый/последний слог", которой можно заменить полноценный акцентор, обученный на большом словаре.
Для остальных языков мы выложили в открытый доступ собранные нами словари и указали алгоритм простановки ударения в неизвестных словах.
Словари на все языки, кроме русского и украинского получились довольно небольшими. Чтобы не смущать пользователей, мы вынесли функционал расстановки ударений в малоресурных языках в отдельный модуль. Если будет запрос и помощь от комьюнити, то по мере развития проекта мы будем добавлять языки "на основу". С омографами меньше верится, что мы когда-либо до них добежим, но никогда не говори никогда.
Также было бы неплохо сделать акцентор для белорусского языка, но тут в идеале нужен словарь ударений на несколько миллионов слов.
Скрытый текст
Язык |
Словарь (шт. слов) |
Акцентор |
Словарь размечен вручную |
Алгоритм доразметки |
|---|---|---|---|---|
Русский |
~4 млн |
акцентор + классификатор омографов |
частично |
— |
Украинский |
~3 млн |
акцентор |
частично |
— |
Белорусский |
24 тыс. |
словарь |
да |
только словарь |
Якутский |
86 тыс. |
словарь + алгоритм |
частично |
последний слог |
Азер. (лат.) |
11 тыс. |
словарь + алгоритм |
да |
последний слог |
Азер. (кир.) |
11 тыс. |
словарь + алгоритм |
да |
последний слог |
Армянский |
8.5 тыс. |
словарь + алгоритм |
да |
последний слог |
Башкирский |
9.7 тыс. |
словарь + алгоритм |
да |
последний слог |
Грузинский |
12.5 тыс. |
алгоритм |
нет |
предпоследний слог |
Кабардинский |
5.5 тыс. |
словарь + алгоритм |
да |
последний слог |
Казахский |
6.8 тыс. |
словарь + алгоритм |
да |
последний слог |
Калмыцкий |
9 тыс. |
алгоритм |
нет |
последний слог |
Киргизский |
11.7 тыс. |
словарь + алгоритм |
да |
последний слог |
Мокшанский |
5.3 тыс. |
словарь + алгоритм |
да |
первый слог |
Таджикский |
9 тыс. |
словарь + алгоритм |
да |
последний слог |
Татарский |
11.5 тыс. |
словарь + алгоритм |
да |
последний слог |
Удмуртский |
13.5 тыс. |
алгоритм |
нет |
последний слог |
Узбекский (лат.) |
5 т��с. |
алгоритм |
нет |
последний слог |
Узбекский (кир.) |
5 тыс. |
алгоритм |
нет |
последний слог |
Хакасский |
12.3 тыс. |
словарь + алгоритм |
да |
последний слог |
Чувашский |
23 тыс. |
словарь + алгоритм |
да |
последний слог |
Эрзянский |
4 тыс. |
словарь + алгоритм |
да |
первый слог |
Ссылки:
Работа над проектом ведётся при поддержке Фонда содействия инновациям в рамках федерального проекта «Искусственный интеллект» национальной программы «Цифровая экономика Российской Федерации».