Spellah

Материал из NLPub
Перейти к: навигация, поиск

Spellah — простой сервис проверки правописания, основанный на статистике n-грамм поисковой машины Bing.

Доступность

Исходные коды Spellah доступны на GitHub на условиях лицензии MIT.

Установка

Сервис написан на Node.js. Для работы требуется API-ключ к сервису Microsoft Web N-gram. После клонирования git-репозитория достаточно передать приложению соответствующие переменные окружения.

$ MICROSOFT_NGRAMS_KEY= REDIS_DISABLED=1 node server.js

Желательно подключить Spellah к серверу Redis для кэширования запросов.

$ MICROSOFT_NGRAMS_KEY= REDIS_HOST= REDIS_KEY= node server.js

Использование

Spellah имеет как Web-интерфейс http://spellah.eveel.ru/ с полем для ввода исходного текста, так и простой интерфейс с выводом результата в формате JSON.

$ curl 'http://spellah.eveel.ru/check?q=remember+when+ya+were'
{"check":[0,0,2,1],"ngrams":{"remember when ya were":-12.499,
"remember when ya":-9.831,"when ya were":-9.888,"remember when":-5.705,
"when ya":-7.26,"ya were":-8.374,"remember":-3.896,"when":-3.004,
"ya":-4.647,"were":-3.161}}

Принцип работы

Spellah использует статистику поисковой машины Bing для оценки распределения вероятности p(w) появления слова w в поисковом индексе.

Исходный текст разбивается по словам на токены. Каждому токену присваивается параметр «количество ошибок». Выполняется двухэтапный обход текста: этап униграмм и этап биграмм. Токены, имеющие нулевое количество ошибок, подсвечиваются зелёным; имеющие одну ошибку — жёлтым, две и более — красным.

На этапе униграмм количество ошибок токена w повышается на единицу, если p(w) < 10^{-10}. На этапе биграмм рассматриваются совместно встречаемые токены w_i и w_j. Если p(w_i)p(w_j) > p(w_j|w_i), то количество ошибок обоих токенов увеличивается на единицу, причём количество ошибок токена с меньшей p(w) дополнительно увеличивается на единицу.

Более подробное описание сервиса с примерами работы имеется в презентации.

Ссылки