История изменений¶
0.9.1 (2020-09-27)¶
Исправлено обнаружение словарей в случае, когда pymorphy2 установлен
после запуска процесса. Это типичная ситуация в Jupyter Notebook или
Google Colab - в начале блокнота установить зависимости
(!pip install pymorphy2
); pymorphy2==0.9 не работал в этом случае без
перезапуска блокнота.
0.9 (2020-09-20)¶
Новые возможности:
- Добавлена экспериментальная поддержка украинского языка. См. документацию.
- Улучшена утилита командной строки. См. pymorphy –help.
- Добавлена поддержка Python 3.7 и 3.8.
Обратно-несовместимые изменения:
- Внутренняя организация кода сильно поменялась
- Python 2.6 и 3.2 - 3.4 больше не поддерживаются. Python 2.7 пока поддерживается, но поддержка Python 2.x будет убрана в pymorphy2 v1.0.
Исправления ошибок, небольшие улучшения:
- Исправлена некорректная работа MorphAnalyzer в многопоточных программах
- улучшено поведение метода .inflect
- исправлена ошибка, вызванная некорректным кешированием нормальных форм
- Команды для скачивания и сборки словарей перенесены в пакет pymorphy2-dicts
- Ускорение сборки словарей
- Небольшое ускорение токенизатора
- улучшения в тестах и документации
0.8 (2014-06-06)¶
- pymorphy2 теперь использует setuptools;
- на pypi доступен пакет в формате wheel;
- зависимости устанавливаются автоматически;
- можно установить “быструю” версию через
pip install pymorphy2[fast]
; - копия docopt больше не распространяется вместе с pymorphy2;
пакет
pymorphy2.vendor
больше не доступен.
В этом релизе изменен способ установки pymorphy2; никаких изменений в разборе по сравнению с 0.7 нет.
0.7 (2014-05-26)¶
- Методы
parse()
иtag()
теперь всегда возвращают хотя бы один вариант разбора: если разбор не удался, то вместо пустого списка теперь возвращается список с одним элементом UNKN; - функция
pymorphy2.shapes.restore_word_case()
переименована вpymorphy2.shapes.restore_capitalization()
; - проверена совместимость с Python 3.4;
- в список для замен падежей OpencorporaTag.RARE_CASES добавлены граммемы gen1, acc1 и loc1 - они не используются в pymorphy2, но могут встречаться в выгрузке корпуса OpenCorpora;
- убран DeprecationWarning при использовании psutil < 2.x;
- небольшие улучшения в документации.
0.6.1 (2014-04-23)¶
- Для инициалов добавлена граммема Init.
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 пока не зафиксирован и может меняться в последующих релизах.