Russian tagset converters library
Project description
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
из папки с репозиторием.
Changes
0.6 (2017-06-18)
- OpenCorpora -> Universal Dependencies conversion support (UD 1.4, UD 2.0, Dialog 2017 tagset).
- convert function accepts optional word argument - conversion rules may now depend on a word itself, not only on its tag;
- Python 3.2, 3.3 and 2.6 support is dropped;
- packaging improvements.
0.5.2 (2014-08-19)
- Handle “abbr” grammeme in OpenCorpora -> RusCorpora conversion.
0.5.1 (2014-04-23)
- Added support for Init OpenCorpora grammeme.
0.5 (2014-04-22)
- Added support for initials in OpenCorpora -> RusCorpora conversion rules;
- small code cleanup.
0.4 (2014-03-14)
- Improved OpenCorpora -> RusCorpora rules;
- Anph grammeme is added to OpenCorpora rules.
0.3.1 (2013-04-12)
- Improved OpenCorpora -> RusCorpora rules.
0.3 (2013-03-21)
- Improved OpenCorpora -> RusCorpora rules.
0.2 (2013-02-07)
- OpenCorpora -> RusCorpora conversion;
- DSL for writing conversion routines.
0.1 (2012-10-07)
Initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.