Примечание
Этот раздел справки сгенерирован автоматически.
Ниже описаны скорее детали реализации. Чтоб использовать pymorphy, их знать необязательно.
Если вы не планируете участвовать в разработке pymorphy, полезнее ознакомиться со следующим документом: Поддерживаемые типы хранилищ
Базовые классы: object
Absctract base class for dictionary data source. Subclasses should make class variables (rules, lemmas, prefixes, gramtab, endings, possible_rule_prefixes) accessible through dict or list syntax (“duck typing”)
Абстрактный базовый класс для источников данных pymorphy. У подклассов должны быть свойства rules, lemmas, prefixes, gramtab, endings, possible_rule_prefixes, к которым можно было бы обращаться как к словарям, спискам или множествам.
для каждой парадигмы - список правил (приставка, грам. информация, префикс):
{paradigm_id->[ (suffix, ancode, prefix) ]}
для каждой леммы - список номеров парадигм (способов образования слов), доступных для данной леммы (основы слова):
{base -> [paradigm_id]}
фиксированые префиксы:
set([prefix])
грамматическая информация: словарь, ключи которого - индексы грам. информации (анкоды), значения - кортежи (часть речи, информация о грам. форме, какая-то непонятная буква):
{ancode->(type,info,letter)}
частоты для правил, используется при подготовке словарей:
{paradigm_id->freq}
для каждого возможного 5 буквенного окончания - словарь, в котором ключи - номера возможных парадигм, а значения - номера возможных правил:
{word_end->{paradigm_id->(possible_paradigm_ids)}}
набор всех возможных приставок к леммам:
[prefix]
Подсчитать частоту, с которой встречаются различные правила. Требуется для предсказателя, чтобы выбирать наиболее распространенные варианты.
Взять данные из data_obj (наследник DataDictSource) и сохранить из в специфичном для класса формате.
Загрузить данные
Базовые классы: pymorphy.backends.base.DictDataSource
Источник данных для морфологического анализатора pymorphy, берущий информацию из key-value базы данных, используя модифицированный интерфейс shelve из стандартной библиотеки. Позволяет не держать все данные в памяти и в то же время обеспечивает достаточно быструю скорость работы.
Грамматическая информация и префиксы загружаются в память сразу.
Базовые классы: object
A dictionary that stores its data in a table in sqlite3 database
Базовые классы: pymorphy.backends.shelve_source.shelf_with_hooks.ShelfWithHooks
Базовые классы: shelve.DbfilenameShelf
Shelf class with key and value transform hooks.
Базовые классы: object
Базовые классы: pymorphy.backends.shelve_source.shelf_with_hooks.ShelfWithHooks
Базовые классы: pymorphy.backends.shelve_source.pytc_shelve.PytcHashShelf
псевдоним класса BDB
Базовые классы: pymorphy.backends.shelve_source.shelf_with_hooks.ShelfWithHooks
псевдоним класса HDB
Алгоритм работы с ним “как есть” должен быть совсем не таким, как в pymorphy, pymorphy с исходными MRD-файлами работает крайне неэффективно.
Этот бэкенд используется только для переконвертации исходных словарей.
Базовые классы: pymorphy.backends.base.DictDataSource
Источник данных для морфологического анализатора pymorphy, берущий информацию из оригинальных mrd-файлов (в которых кодировка была изменена с 1251 на utf-8). Используется для конвертации оригинальных данных в простые для обработки ShelveDict или PickledDict.
Оптимизировать узкие места в MrdDataSource с помощью psyco
Базовые классы: pymorphy.backends.base.DictDataSource
Источник данных для морфологического анализатора pymorphy, берущий информацию из файлов, куда с помощью pickle были сохранены данные. Самый быстрый, но ест уйму памяти (> 100 MB).