Ответ Фредли может быть расширен до грамматики, которая будет строить слова из близлежащих букв.
Например asasasasasdf
может быть сгенерирован с помощью грамматики, которая соединяет as
, sa
, sd
и df
.
С такой грамматикой, расширенной до всех букв на клавиатуре (с буквами, которые находятся рядом друг с другом), после разбора можно было бы определить, какая часть текста может быть сгенерирована с помощью этой грамматики «тарабарщины».
Предостережение: конечно, любой текст, в котором обсуждается такая грамматика и примеры листинга текста «тарабарщины», будет стоить значительно выше обычного регулярного текста с проверкой орфографии.
Обратите внимание, что примерный подход не будет ловить вандализм в форме «h4x0r rulezzzzz !!!!!».
Другим подходом здесь (который может быть интегрирован с указанным выше методом) было бы статистически проанализировать корпус абсурдного текста и попытаться получить общие слова в вандализированных текстах.
EDIT:
Поскольку вы предполагаете QWERTY, я думаю, мы могли бы взять на себя английский язык тоже?
Что можно сказать о KISS - запустите текст с помощью английской проверки орфографии, и если он терпит неудачу, то придет к выводу, что это, вероятно, тарабарщина (вопрос в том, почему нужно различать быстро типизированную тарабарщину от случайной ерунды или, если на то пошло, из очень плохо написанного текста ?)
В качестве альтернативы, если необходимо рассмотреть другие раскладки клавиатуры (Dvorak, любой?) И языки, то, возможно, запустите текст через все доступные языковые проверки орфографии, а затем продолжите (это также даст автоопределение языка).
Это не очень эффективный метод, но может быть использован как базовый тест.
Примечание:
В конечном счете, я полагаю, что вандалы будут адаптироваться и начать вандализме с, например, выдержки из других страниц Википедии, который будет в конечном счете, трудно автоматически обнаружить как вандализм (хорошо, существующие тексты могут быть контрольная сумма и флаг, поднятый на дубликаты, но если текст исходил из какого-то другого источника, это было бы в конечном счете трудно).
Алгоритмы обнаружения вандализма уже включают обнаружение на основе словаря/грамматики, поэтому здесь я ищу алгоритм, который НЕ использует словари или грамматику, а скорее паттерны. –
и как именно «шаблоны пальцев» отличаются от словарных статей плюс грамматические правила? Это тот же подход, различие заключается в том, что он является положительным обнаружением и другим отрицательным обнаружением. Кроме того - непонятно, о чем вы просите - случайные нажатия клавиш, учитывая, что qwerty ничем не отличается от случайных клавиатурных хитов, рассматривающих дворак, если они не являются действительно случайными (может быть, лучше назвать его «обычно используемыми конструкциями вандализма»). – Unreason
@Unreason: О вашем первом вопросе: я имел в виду словари и грамматики существующих человеческих языков. Интересно, что «негативное обнаружение» интересно, не стесняйтесь предлагать его в качестве ответа. О «Более того»: я переформулирую свой вопрос: вам задана последовательность символов, которые были введены на клавиатуре QWERTY, как вы вычисляете вероятность того, что она была введена небрежно? (т. е. кем-то, чья цель заключалась не в том, чтобы выражать что-то, но быстро ввести много символов, например oiuroiqewrcoqf) –