у них написан ими свой разборщик предложений, затем предложения гоняются по обширной билиоткеке паттернов, которые детектят ошибки и предлагают по правилам замены.
Парсер постоянно совершенствуется и допиливается, используя всякие алгоритмы, которые кто-то в разных универах разрабатывает и публикует, а библиотеку паттернов постоянно расширяет команда лингвистов.
Парсер написан на Common Lisp, паттерны лингвисты пишут на нем же.