воскресенье, 28 сентября 2008 г.

Про мой переводчик. Структура.

Продолжение. Начало смотрим тут. 

Итак, как я уже писал ранее - переводчик является модульным, причем модули должны быть независимы друг от друга. Не то чтобы это было обязательным требованием, однако, чем более связаны между собой модули - тем сложнее их менять. Соответственно, данное требование накладывает определенные ограничения на сам процесс перевода. На данный момент он является линейным. Примерная блок-схема такова:

... правда семантического анализа у меня еще нет.

Такой подход не является обязательным - никто не мешает переделать сам алгоритм перевода. Однако, на данный момент необходимости в этом я не вижу.

В процессе разработки был придуман следующий подход к процессу перевода предложений:

  • на первоначальном этапе ко всем словам предложения добавляется вся известная о них информация (части речи, параметры, варианты перевода и т.п.);
  • основная задача всех последующих алгоритмов - удалить у слов лишнюю информацию. Чем больше удалим - тем более правильный будет результат.

Как видно - получившийся алгоритм оказался жизнеспособным.

Вот так вот мутировал изначальный линейный алгоритм в процессе развития:

... синие блоки примерно соответствуют блокам на первом рисунке.

Ну и напоследок - степень завершенности ключевых модулей анализа:

Продолжение следует...

Комментариев нет:

Отправить комментарий