- реализовать GUI - т.е. чтобы можно было вводить информацию в программу (ну можно и без интерфейса какое-то время прожить... Но сопутствующие трудности...)
- реализовать лексический анализатор (а вы что думали - кто же еще вам будет текст на слова разбивать? Все сами...)
- реализовать морфологический анализатор (нет, конечно, можно обойтись и без него, но это переложит работу этого алгориитма на плечи человеку, которому придется особым образом формировать входные данные, что намного сложнее простого текста на естественном языке)
- реализовать синтаксический анализатор (да-да! Куда же без него-то...)
- и вот только после этого вы сможете начать работу над своейпрямой задачей
А теперь вспомним еще и про сопутствующие трудности, как-то:
- реализация базы данных (словаря)
- реализация различных программ редактирования всего чего нужно: словаря, синтаксических правил, ваших семантических правил и куче чего еще
- ну и до кучи - борьба с глюками, глюками, глюками...
Весело? А казалось бы все так просто: придумал алгоритм - реализовал и получил Нобелевку :)
Именно поэтому мой переводчик - вам просто-таки жизненно необходим! :)
Итак, достоинства моего подхода:
- модульная структура. Алгоритм перевода разбит на отдельные, программнно независимые друг от друга элементы (модули), каждый из которых может быть легко заменен на аналог от другого разработчика.
- Единая система описания текста. Существует набор базовых классов, детально описывающих текст и связи в нем (ну и перевод, конечно). Таким образом, разработчики, которые реализуют, например, интерфейс взаимодействия с пользователем никак не зависят от того, что реализуют переводчики.
Ну если забыть про независимых разработчиков, то можно добавить еще и:
- Вывод детальной информации о процессе перевода. Всегда возможно узнать почему предложение было переведено именно так, а не иначе.
- Существующая реализация семантического анализа (да, в принципе, и все остальные алгоритмы - тоже) работает абсолютно предсказуемо.
- Пользователь имеет возможность вмешаться в процесс перевода. Например, есть возможность блокировать отдельные варианты перевода, т.е. запретить их использование как для всего текста, так и для конкретных слов в тексте.
За сим, пожалуй, пока все.
Комментариев нет:
Отправить комментарий