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