russian-tagsets
- библиотека для преобразования между
различными форматами обозначения грамматической информации
для слов русского языка. Лицензия - MIT.
На данный момент поддерживается (с разной степенью корректности) преобразование между следующими форматами:
- OpenCorpora (в.т.ч. русские словари pymorphy2);
- aot.ru (в.т.ч. pymorphy 0.5.6);
- Диалог-2010;
- A Positional Tagset for Russian (Jirka Hana and Anna Feldman, 2010);
- НКРЯ;
- Universal Dependencies (v1.4, v2.0, Dialog-2017);
Идея такая: для каждого формата в библиотеке определяется
несколько функций, которые преобразуют тег в другие форматы;
если какое-то преобразование явным образом не определено,
russian-tagsets
пытается построить цепочку преобразований,
приводящую к нужному результату.
Warning
Преобразование почти никогда не выходит осуществить без потерь; если можно эту библиотеку не использовать, то лучше и не использовать.
pip install russian-tagsets
"Автоматический" режим (библиотека пытается найти пути преобразования):
>>> from russian_tagsets import converters >>> to_aot = converters.converter('opencorpora-int', 'aot') >>> to_aot("NOUN,anim,masc plur,nomn") С,од,мр,мн,им
Поддерживаемые напрямую форматы:
>>> converters.get_supported() [('positional', 'aot'), ('aot', 'positional'), ('aot', 'dialog2010'), ('dialog2010', 'aot'), ('opencorpora-int', 'opencorpora-ext'), ('opencorpora-int', 'ruscorpora'), ('opencorpora-int', 'ud14'), ('opencorpora-int', 'ud20'), ('opencorpora-int', 'dialog2017'), ('opencorpora-ext', 'opencorpora-int'), ('opencorpora-ext', 'aot')]
"Ручной" режим (быстрее, преобразование только напрямую):
>>> import russian_tagsets >>> russian_tagsets.aot.to_positional(u"С,од,мр,мн,им") Tag("NNMAP1-------A--")
- Исходный код: https://github.com/kmike/russian-tagsets
- Баг-трекер: https://github.com/kmike/russian-tagsets/issues
Для запуска тестов выполните
tox
из папки с репозиторием.