- лексический анализ
- морфологический анализ
- фразеологический анализ
- синтаксический анализ
- семантический анализ
Сразу хочу сообщить - я не лингвист. Я простой программист :) Поэтому мои подходы к решению лингвистических задач несколько хм... отличаются от общепринятых. Прошу сильно не бить :)
Я решал проблему перевода по самому простому пути. А именно - на каждый этап перевода был сделан отдельный алгоритм. Прежде чем переходить к самим алгоритмам я думаю стоит написать что именно каждый из них должен делать.
- лексический анализатор - получает на входе текст и выделяет в нем слова, предложения, и абзацы.
- морфологический анализатор - получает на входе слова и определяет их исходную форму. В моей версии алгоритма перевода - на этом этапе еще и определяются все переводы слов.
- фразеологический анализатор - получает на входе слова и принимает решение об объединении некоторых из них в одно слово.
- синтаксический анализатор - получает на входе предложения (массив слов) и определяет отношения между словами, корректирует характеристики и части речи слов.
- семантический анализатор - отсутствует на данный момент :(
Наверное теперь самое время определиться - что же такое слово/предложение/текст?
Слово описывается специальным классом TMWord и содержит следующие основные элементы:
- оригинальная форма (то, как слово было написано в тексте)
- исходная форма (то, как слово записано в словаре)
- части речи слова
- параметры слова
- переводы слова
Не секрет, что слова в английском языке (как и в русском, вообщем-то) при одинаковом написании могут быть различных частей речи. Соответственно, части речи слова - это список всех возможных в предложении частей речи данного слова
Каждый вариант перевода слова описывается:
- русское слово
- часть речи
- параметры слова
- шаблон склонения
Параметры слова - это синтаксические и семантические характеристики слова. Например, для глаголов - это переходный/непереходный, совершенный/несовершенный и т.п.
Параметры на данный момент делятся на три вида:
- применимые к английским словам
- применимые к русским слова
- применимые ко всем языкам
Таким образом, параметры слова в предложении - это совокупность всех параметров всех вариантов перевода данного слова в предложении.
Ну со словом вроде более-менее определились. Перейдем к предложению. Я думаю ни для кого не секрет, что предложение - это группа слов :) Английское предложение описывает специальный класс TMStr, русское - TRStr. Ну, об их особенностях поговорим позже...
Текст обычно состоит из абзацев, абзацы из предложений. Эту структуру описывает класс TTextParser. Фактически - это третий самый главный базовый класс (первые два - это TMWord и TMStr). Все взаимодействие GUI-модулей с текстом идет через него.
Комментариев нет:
Отправить комментарий