В феврале, как вы помните (если помните), я защитил диплом по компьютерной лингвистике. В процессе написания той программы для анализа языка было допущено множество разных неудачных и странных решений, но необходимый опыт я всё-таки получил. Тогда же примерно у меня возникла идея переписать всё это иначе, без привязки алгоритмов к русскому языку. Тогда такая система смогла бы анализировать и другие языки, а помимо естественных - и машинные.
В то же время основная работа шла на создание Цирцеи, и создание преобразователя началось только осенью. Это пошло ему на пользу: за это время я обдумал и отменил кучу идей, а основная концепция успела "выкристаллизоваться" и приобрести достаточно стройную форму (впрочем,в процессе написания самой проги, как обычно, кое-что пришлось менять в проекте на ходу).
Так вот, за пару месяцев мне удалось создать dll-ку, работающую с произвольными языками. Правила конкретного языка просто описываются в отдельном файле; внутренние же алгоритмы преобразования достаточно универсальны.
Теперь, к примеру, в файле описания русского языка достаточно описать что-то типа этого:
( Read more... )