История изменений

0.6 (2014-04-22)

  • Заглавные буквы предсказываются как инициалы;
  • улучшен внутренний API для предсказателей - флаг terminal больше не нужен;
  • улучшения в тестах.

Если вы использовали параметр units в конструкторе MorphAnalyzer, то вам нужно будет обновить код, т.к. вместо флага terminal теперь предсказатели нужно группировать в list-ы в параметре units.

0.5 (2013-11-05)

  • Методы MorphAnalyzer.cyr2lat, MorphAnalyzer.lat2cyr и атрибут OpencorporaTag.cyr_repr для преобразования между тегами/граммемами, записанными латиницей и кириллицей;
  • тег для целых чисел теперь NUMB,intg; для вещественных - NUMB,real (раньше для всех был просто NUMB);
  • KnownSuffixAnalyzer теперь не вызывается для слов короче 4 символов.

0.4 (2013-10-19)

  • Parse.estimate переименован в score и содержит теперь оценку P(tag|word) на основе данных из OpenCorpora;
  • по умолчанию результаты разбора сортируются по score.

То, что результатам сопоставляется оценка P(tag|word), может в некоторых случаях снизить скорость разбора раза в 1.5 - 2. Если эти оценки не нужны, создайте экземпляр MorphAnalyzer с параметром probability_estimator_cls=None.

Для обновления требуется обновить pymorphy2-dicts до версии >= 2.4, а также библиотеки DAWG или DAWG-Python до версиий >= 0.7.

0.3.5 (2013-06-30)

  • Препроцессинг словаря: loc1/gen1/acc1 заменяются на loct/gent/accs; варианты написания тегов унифицируются (чтоб их было меньше);
  • исправлено согласование слов с числительными;
  • при склонении слов в loc2/gen2/acc2/voct слово ставится в loct/gent/accs/nomn, если вариантов с loc2/gen2/acc2/voct не найдено.

Для полноценного обновления лучше обновить pymorphy2-dicts до версии >= 2.2.

0.3.4 (2013-04-29)

  • Добавлен метод Parse.make_agree_with_number для согласования слов с числительными;
  • небольшие улучшения в документации.

0.3.3 (2013-04-12)

  • Исправлен тег, который выдает RomanNumberAnalyzer (теперь это ROMN, как в OpenCorpora);
  • добавлена функция pymorphy2.tokenizers.simple_word_tokenize, которая разбивает текст по пробелам и пунктуации (но не дефису);
  • исправлена ошибка с разбором слов вроде “ретро-fm” (pymorphy2 раньше падал с исключением).

0.3.2 (2013-04-03)

  • добавлен RomanNumberAnalyzer для разбора римских чисел;
  • MorphAnalyzer и OpencorporaTag теперь можно сериализовывать с помощью pickle;
  • улучшены тесты;
  • при компиляции словаря версия xml печатается раньше.

0.3.1 (2013-03-12)

  • Поправлен метод MorphAnalyzer.word_is_known, который раньше учитывал регистр слова (что неправильно);
  • исправлена ошибка в разборе слов с дефисом (тех, у которых лишний дефис справа или слева).

0.3 (2013-03-11)

  • Рефакторинг: теперь при необходимости можно дописывать свои “шаги” морфологического анализа (“предсказатели”) и комбинировать их с существующими (документация пока не готова, и API может поменяться);
  • на вход больше не обязательно подавать слова в нижнем регистре (но на выходе при этом регистр сохраняться не обязан - используйте функцию pymorphy2.shapes.restore_word_case, если требуется восстановить регистр полученных слов);
  • улучшено предсказание неизвестных слов по словообразовательным префиксам (учитывается больше таких префиксов);
  • реализован разбор (и склонение) слов с дефисами;
  • результаты разбора теперь включают в себя полную информацию о том, как слово разбиралось; наличие para_id и idx при этом больше не обязательно;
  • анализатор теперь отмечает пунктуацию тегом PNCT, числа - тегом NUMB, слова, записанные латиницей - тегом LATN;
  • улучшено предсказание по неизвестному префиксу (добавлено ограничение по граммеме Apro);
  • улучшения в тестах и бенчмарках;
  • удален атрибут morph.dict_meta (используйте morph.dictionary.meta);
  • удален (возможно, временно) метод MorphAnalyzer.inflect (используйте метод inflect у результата разбора);
  • удален метод MorphAnalyzer.decline (используйте parse.lexeme);
  • удалено свойство Parse.paradigm.

В результате этих изменений улучшилось качество разбора, качество склонения и возможности по расширению библиотеки (втч для настройки под конкретную задачу), но скорость работы “из коробки” по сравнению с 0.2 снизилась примерно на треть.

0.2 (2013-02-18)

  • Улучшения в предсказателе: учет словоизменительных префиксов;
  • улучшения в предсказателе: равноценные варианты разбора не отбрасываются;
  • изменена схема проверки совместимости словарей;
  • изменен формат словарей (нужно обновить pymorphy2-dicts до 2.0);
  • добавлено свойство Parse.paradigm.

0.1 (2013-02-14)

Первый альфа-релиз. Релизована основа: эффективный разбор и склонение, обновление словарей, полная поддержка буквы ё.

Многие вещи, которые были доступны в pymorphy, пока не работают (разбор слов с дефисом, разбор фамилий, поддержка шаблонов django, утилиты из contrib).

Кроме того, API пока не зафиксирован и может меняться в последующих релизах.