Автоматическое исправление языка для слов в тексте из-за неправильной раскладки клавиатуры
Purpose
- Корректировка поисковых запросов* Корректировка существующих и новых текстов, публикуемых посетителями на веб-сайтах.
Features
- Режим SIMILAR_CHARS. Исправление ошибочно набранных букв в словах, которые выглядят одинаково в разных раскладках клавиатуры. Незаметные латинские буквы среди русских исправляются в русские и наоборот. Алгоритм работает достаточно надёжно и быстро.* Режим KEYBOARD_LAYOUT. Исправление ошибочно набранных слов в другой раскладке клавиатуры. Для определения языка используются N-граммы. Алгоритм может иногда ошибаться, работает в разы медленнее, чем SIMILAR_CHARS. Алгоритм постоянно совершенствуется. Для поддержания качества существует тестовый набор слов, который в поставку не входит.* Двухстороннее исправление слов для русского и английского языка.* Исправление слов на смешанном языке.* Кодировка символов — UTF-8.* Класс может работать без расширений mbstring и iconv!
Examples
"\xd1\x81\xd0\xbesm\xd0\xbe" => 'cosmo' (2 первых и последняя буква — ошибочные) "\x78\x70\x65н" => 'хрен' (первые 3 буквы — ошибочные) "вебvfcnth" => 'вебмастер' "webьфыеук" => 'webmaster' "цццюмуыеш.ru" => 'www.vesti.ru' "\x54.\x43.\x48\x61вка" => 'Т.С.Навка'
Hints
Пример работы алгоритма для поля ввода с автодополнением:
- Сделать выборку из БД по исходному запросу;2. Если есть результат, возвратить его и исходный запрос;3. Иначе скорректировать исходный запрос через Text_LangCorrect;4. Если исходный и скорректированный запрос совпадает, возвратить пустой результат и исходный запрос;5. Иначе сделать выборку из БД по скорректированному запросу;6. Возвратить результат. Если результат не пустой, возвратить скорректированный запрос, иначе исходный.