Насколько я понял из прочитанного, тут кодинга как такового на копейки. Вся проблема в базе синонимов, в которой у каждого слова будет частота его употребления и список слов с которыми оно чаще всего употребляется. Вот как создать такую базу?
http://ru.wikipedia.org/wiki/%D0%A7%...B0%D1%80%D1%8C
Проблемы при создании частотных списков заключаются в:
* воспроизводимости (будут ли результаты идентичны на другом аналогичном корпусе),
* всплесках частоты отдельных слов (частота слова в одном тексте может повлиять на его позицию во частотном списке),
* сложности определения позиции менее частотных слов, что не дает возможности ранжировать их рационально; например, слово белиберда входит в 20000 наиболее частотных слов, в то время, как слово хрюкнуть находится за пределами списка первых 40 тысяч.
Все эти проблемы связаны с тем, что со статистической точки зрения язык представляет собой большое количество редких событий (Закон Ципфа),
в результате чего небольшое количество слов встречается очень часто, а подавляющее большинство слов имеют очень невысокую частоту. Частота слова и (самого частотного слова русского языка) примерно в 10 раз выше частоты слова о, которое в свою очередь встречается в 100 раз чаще таких обыденных слов как путешествие, старость или мода.