Правила трансформации текста на внутреннем языке (см. описание далее) компилируются во внутреннее представление, которое исполняется виртуальным процессором.
Реализация виртуального процессора написана полностью на языке C++. Основные операции - работа с лексемами, деревьями, информацией в лексиконе, тезаурусе, базе N-грамм.
Внутренний язык, и следовательно грамматический процессор, практически не содержат средств ввода-вывода. Получение вербальной (текстовой) информации от пользователя и выдача ему результатов полностью ложатся на прикладной код. Например, некоторые утилиты работают в текстовой консоли - см. Syntax и Synonymizer, и позволяют пользователю вводить фразы и видеть на экране результаты их трансформации. Есть также API, позволяющий прикладным программам вызывать преобразование текста - см. к примеру Rewriter, который выполняет пакетную обработку текстовых файлов. Программа Transformer работает как веб-сервер, получающий запросы и возвращающий результаты преобразования текста (перевода) по протоколу HTTP.
Грамматики:
Алфавит
Лексикон
Фонетика
Грамматические координаты (перечисления)
Сегментатор и токенизатор
Морфологический
анализатор
Синтаксический
анализатор
Фонетический анализатор
СУБД
Пролог-автомат
Продукционные правила и итераторы
Тезаурус и N-граммы
Словоформы
Компилятор словаря получает на входе набор текстовых файлов с формализованными объявлениями словарных и фразовых статей, связей тезауруса, правил анализа и синтеза. Текстовые объявления преобразуются компилятором в бинарное представление, с которым работает виртуальный грамматический процессор. Бинарное представление словаря может хранится разными способами, к примеру в реляционной базе данных или в локальных двоичных файлах. Виртуальный грамматический процессор работает с бинарным представлением словаря через слои абстракции хранилища, что позволяет использовать один и тот же исполняющий код процессора в разных конфигурациях, например со словарем в MySQL или в локальном бинарном файле.
© Козиев Илья 2019
![]() |
|
изменено 05-Feb-12 |