Различия между версиями 1 и 2
Версия 1 от 2010-05-30 15:28:43
Размер: 846
Редактор: alafin
Комментарий:
Версия 2 от 2010-06-18 08:44:13
Размер: 2663
Редактор: alafin
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
[[http://bitbucket.org/kmike/pymorphy/|Pymorphy]] - морфологический анализатор. [[http://bitbucket.org/kmike/pymorphy/|Pymorphy]] - библиотека для морфологического анализа, год назад сделал ее в черновом виде, сейчас взялся снова, переписал по-человечески и начал добавлять разные фичи.
Строка 5: Строка 5:
'''Возможности:''' '''а) Умеет приводит слово к нормальной форме (например, в ед.ч., И.п. для существительных):'''
{{{#!highlight python
    >>> from pymorphy import get_morph
    >>> m = get_moprh('dicts/ru')
    >>> print m.normalize(u"ЛЮДЕЙ")
    ЧЕЛОВЕК
}}}
'''б) Умеет ставить слово в нужную форму. Например, ставить слово во множественное число, менять падеж слова и т.д.:'''
{{{#!highlight python
    >>> from pymorphy import get_morph
    >>> m = get_moprh('dicts/ru')
    >>> print m.inflect(u"СУСЛИК", u"мн,рд") # много кого?
    СУСЛИКОВ
}}}
'''Есть templatetag, который позволяет делать это прямо в шаблоне django:'''
{{{#!highlight python
  {% load pymorphy_tags %}
Строка 7: Строка 23:
 * приводит слово к нормальной форме
 * ставит слово в нужную форму
 * возвращает грамматическую информацию о слове (число, род, падеж, часть речи и т.д.)
  {# в переменной animals "тридцать восемь попугаев и Удав" #}
  {{ animals|inflect:"дт" }} захотелось пройтись по лесу.
  {# выведет "тридцати восьми попугаям и Удаву захотелось пройтись по лесу" #}
}}}
'''в) Умеет возвращать грамматическую информацию о слове (число, род, падеж, часть речи и т.д.). Делает это по словарю, для неизвестных слов работает предсказатель, если возможных форм несколько - возвращает несколько форм:'''
{{{#!highlight python
    >>> 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'] # род, число, падеж и т.д.
    мр,мн,тв
}}}
Репозиторий тут: http://bitbucket.org/kmike/pymorphy/
Строка 11: Строка 41:
'''Использование:'''
{{{#!highlight python
from pymorphy import get_morph

morph = get_morph('<путь/до/папки/в/которую/были/распакованы/скачанные/словари>')

#слова должны быть в юникоде и ЗАГЛАВНЫМИ
info = morph.get_graminfo(u'Вася'.upper())
}}}
Документация - тут: http://packages.python.org/pymorphy/index.html

Pymorphy - морфологический анализатор

Pymorphy - библиотека для морфологического анализа, год назад сделал ее в черновом виде, сейчас взялся снова, переписал по-человечески и начал добавлять разные фичи.

а) Умеет приводит слово к нормальной форме (например, в ед.ч., И.п. для существительных):

   1     >>> from pymorphy import get_morph
   2     >>> m = get_moprh('dicts/ru')
   3     >>> print m.normalize(u"ЛЮДЕЙ")
   4     ЧЕЛОВЕК

б) Умеет ставить слово в нужную форму. Например, ставить слово во множественное число, менять падеж слова и т.д.:

   1     >>> from pymorphy import get_morph
   2     >>> m = get_moprh('dicts/ru')
   3     >>> print m.inflect(u"СУСЛИК", u"мн,рд") # много кого?
   4     СУСЛИКОВ

Есть templatetag, который позволяет делать это прямо в шаблоне django:

   1   {% load pymorphy_tags %}
   2 
   3   {# в переменной animals "тридцать восемь попугаев и Удав" #}
   4   {{ animals|inflect:"дт" }} захотелось пройтись по лесу.
   5   {# выведет "тридцати восьми попугаям и Удаву захотелось пройтись по лесу" #}

в) Умеет возвращать грамматическую информацию о слове (число, род, падеж, часть речи и т.д.). Делает это по словарю, для неизвестных слов работает предсказатель, если возможных форм несколько - возвращает несколько форм:

   1     >>> from pymorphy import get_morph
   2     >>> m = get_morph('dicts/ru')
   3     >>> info = m.get_graminfo(u"БУТЯВКОВЕДАМИ")
   4     >>> print info[0]['norm'] # нормальная форма
   5     БУТЯВКОВЕД
   6     >>> print info[0]['class'] # часть речи, С = существительное
   7     C
   8     >>> print info[0]['info'] # род, число, падеж и т.д.
   9     мр,мн,тв

Репозиторий тут: http://bitbucket.org/kmike/pymorphy/

Документация - тут: http://packages.python.org/pymorphy/index.html

Пакеты/Python/Pymorphy (последним исправлял пользователь alafin 2010-06-18 08:44:40)