pymorphy ======== .. warning:: В pymorphy больше не будут исправляться ошибки или добавляться новые возможности - разработка остановлена. Используйте https://github.com/kmike/pymorphy2. Возможности библиотеки ---------------------- 1. Умеет приводит слово к нормальной форме (например, в ед.ч., И.п. для существительных):: >>> from pymorphy import get_morph >>> morph = get_morph('dicts/ru') >>> print morph.normalize(u"ЛЮДЕЙ") ЧЕЛОВЕК 2. Умеет ставить слово в нужную форму. Например, ставить слово во множественное число, менять падеж слова и т.д.:: >>> print morph.inflect_ru(u"СУСЛИК", u"мн,рд") # много кого? СУСЛИКОВ Есть template filter, который позволяет делать это прямо в шаблоне django: .. code-block:: django {# в переменной animals "тридцать восемь попугаев и Удав" #} {% load pymorphy_tags %} {{ animals|inflect:"дт" }} захотелось пройтись по лесу. {# выведет "тридцати восьми попугаям и Удаву захотелось пройтись по лесу" #} 3. Умеет возвращать грамматическую информацию о слове (число, род, падеж, часть речи и т.д.). Делает это по словарю, для неизвестных слов работает предсказатель, если возможных форм несколько - возвращает несколько форм:: >>> info = morph.get_graminfo(u"БУТЯВКОВЕДАМИ") >>> print info[0]['norm'] # нормальная форма БУТЯВКОВЕД >>> print info[0]['class'] # часть речи, С = существительное C >>> print info[0]['info'] # род, число, падеж и т.д. мр,мн,тв Установка --------- 1. Устанавливаем pymorphy :: $ pip install pymorphy 2. Скачиваем словари. Для начала можно скачать `файл `_ с русскими словарями в sqlite. Все словари лежат тут: https://bitbucket.org/kmike/pymorphy/downloads/ 3. Распаковываем скачанный файл. Пример использования -------------------- :: from pymorphy import get_morph morph = get_morph('<путь/до/папки/в/которую/были/распакованы/скачанные/словари>') #слова должны быть в юникоде и ЗАГЛАВНЫМИ info = morph.get_graminfo(u'ВАСЯ') Больше информации можно найти в :doc:`Руководстве`. .. note:: В pymorphy все, что не относится к django, можно использовать без django. Лицензия, полезные ссылки и т.д. -------------------------------- Лицензия - MIT. Должно работать на windows и \*nix-системах, python 2.5, 2.6 и 2.7. Python 2.4 не поддерживается. * `Обсуждение`_ (тут можно задавать вопросы, делиться опытом, предлагать идеи) * `Сообщить об ошибке `_ * `Репозиторий с исходным кодом `_ Подключайтесь к разработке! Замечания, исправления, документация, патчи в любом виде всегда приветствуются. Если у вас какой-то вопрос, пишите о нем, по возможности, в `гугл-группу`_ - найденным ответом смогут потом воспользоваться другие люди. .. _Обсуждение: https://groups.google.com/forum/#!forum/pymorphy .. _гугл-группу: https://groups.google.com/forum/#!forum/pymorphy