). Был учтён тот факт, что за это время производительность компьютеров выросла на несколько порядков, поэтому структуры данных можно изменить для облегчения алгоритма морфологического анализа/синтеза. В результате переработки в модели появились такие понятия, как «псевдооснова» и «псевдофлекия». Проблемы чередования были решены путём увеличения числа парадигматических классов (более 1600). Но в то же время объём информации был сокращён за счёт использования связанных парадигм (парадигмы глаголов связаны с парадигмами причастий).
Структурно модель представляет собой четыре словаря:В БД модуля находится 93 976 слова (всего 2 831 866 словоформ). Для поддержки режима пополнения элементы словаря содержат признак принадлежности пользовательскому словарному набору.
При словоизменении учитываются следующие грамматические характеристики слов (разные для разных морфо-синтаксических классов):
За неимением ничего лучшего я выложил
черновик спецификации RMU (633.33 Кбайт) от 31/03/03.
Программный интерфейс ядра анализатора базируется на методе передачи структурных данных в виде размеченного текста в формате SGML (ISO 8879). В режиме отладки морфологическая база представляется также в формате SGML, что удобно для ручного контроля. В связи с тем, что размер внутреннего представления словарей ограничивается десятками мегабайт, было принято решение переложить вопросы подкачки и управления памятью на аппарат виртуальной памяти самой ОС. Таким образом, RMU не нуждается в СУБД для управления своими данными.
Полная загрузка словарей в память позволяет хранить их в отсортированном виде (это логарифмически ускоряет поиск), а также связывать ссылки между записями с помощью указателей.
Сложность алгоритма анализа (синтеза) можно оценить требуемым для его проведения количеством сравнений строк:
Где
| анализ в одном процессе | ~3000 сл/с |
| анализ через сетевое соединение | ~500 сл/с |
Во время загрузки RMU запрашивает около 50 Мб виртуальной памяти. Загрузка/выгрузка словарей происходит приблизительно за 10 с*. Практически RMU может работать на системе с минимум 16 мегабайтами оперативной памяти, правда, при этом загрузка может длиться пару минут.
Джулиану Р. Сьюарду (Julian R. Seward) за его бесплатную библиотеку компресии данных libbzip2, которая работает просто замечательно.
* В конфигурации Intel Pentium III-700 МГц, 128 Мб ОЗУ под управлением MS Windows 98SE.