Skip to content
Automatic correction of the language for words in the text because of the wrong keyboard layout
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Text
README.md Update README.md May 6, 2019
ReflectionTypeHint.php =First commit Jun 29, 2011
ReflectionTypeHint_example.php
UTF8-CHANGELOG.txt
UTF8.php

README.md

Automatic correction of the language for words in the text because of the wrong keyboard layout. Автоматическое исправление языка для слов в тексте из-за неправильной раскладки клавиатуры

Назначение

  1. Корректировка поисковых запросов
  2. Корректировка существующих и новых текстов, публикуемых посетителями на веб-сайтах.

Возможности

  1. Режим SIMILAR_CHARS. Исправление ошибочно набранных букв в словах, которые выглядят одинаково в разных раскладках клавиатуры. Незаметные латинские буквы среди русских исправляются в русские и наоборот. Алгоритм работает достаточно надёжно и быстро.
  2. Режим KEYBOARD_LAYOUT. Исправление ошибочно набранных слов в другой раскладке клавиатуры. Для определения языка используются N-граммы. Алгоритм может иногда ошибаться, работает в разы медленнее, чем SIMILAR_CHARS. Алгоритм постоянно совершенствуется. Для поддержания качества существует тестовый набор слов, который в поставку не входит.
  3. Двухстороннее исправление слов для русского и английского языка.
  4. Исправление слов на смешанном языке.
  5. Кодировка символов — UTF8.
  6. Класс может работать без расширений mbstring и iconv!

Примеры

"\xd1\x81\xd0\xbesm\xd0\xbe" => 'cosmo' (2 первых и последняя буква — ошибочные)
"\x78\x70\x65н"              => 'хрен'  (первые 3 буквы — ошибочные)
"вебvfcnth"                  => 'вебмастер'
"webьфыеук"                  => 'webmaster'
"цццюмуыеш.ru"               => 'www.vesti.ru'
"\x54.\x43.\x48\x61вка"      => 'Т.С.Навка'

Пример работы алгоритма для поля ввода с автодополнением

  1. Сделать выборку из БД по исходному запросу;
  2. Если есть результат, возвратить его и исходный запрос;
  3. Иначе скорректировать исходный запрос через Text_LangCorrect;
  4. Если исходный и скорректированный запрос совпадает, возвратить пустой результат и исходный запрос;
  5. Иначе сделать выборку из БД по скорректированному запросу;
  6. Возвратить результат. Если результат не пустой, возвратить скорректированный запрос, иначе исходный.

Ссылки по теме

  1. Keyboard layout typos correction in text on English and Russian languages
You can’t perform that action at this time.