Обнаружение случайных нажатий клавиш с учетом раскладки клавиатуры QWERTY - PullRequest
7 голосов
/ 27 сентября 2010

Победитель недавнего конкурса обнаружения вандализма в Википедии предполагает, что обнаружение может быть улучшено путем " обнаружения случайных нажатий клавиатуры с учетом раскладки клавиатуры QWERTY ".

Пример:woijf qoeoifwjf oiiwjf oiwj pfowjfoiwjfo oiwjfoewoh

Существует ли какое-либо программное обеспечение, которое уже делает это (предпочтительно бесплатно и с открытым исходным кодом )?

Если нет , существует ли активный проект FOSS, цель которого заключается в достижении этого?

Если нет , как бы вы предложили реализовать такойпрограммное обеспечение?

Ответы [ 5 ]

6 голосов
/ 27 сентября 2010

Если две биграммы в анализируемом тексте близки в терминах QWERTY, но имеют почти нулевую статистическую частоту в английском языке (например, пары "fg" или "cd"), то есть вероятность, что в этом участвуют случайные нажатия клавиш , Если таких пар найдено больше, шанс значительно возрастает.

Если вы хотите принять во внимание использование обеих рук для разбивания, то проверьте буквы, которые разделены другой буквой для близости QWERTY, но двумя биграммами (или даже триграммами) для частоты биграмм. Например, в тексте "flsjf" вы должны проверить F и S для QWERTY-расстояния, а биграммы FL и LS (или триграммы FLS) для частоты.

2 голосов
/ 27 сентября 2010

Рассмотрим эмпирическое распределение последовательностей из двух букв, т. Е. «Вероятность того, что буква a дана после буквы b», все эти вероятности заполняют таблицу размером 27x27 (рассматривая пробел как букву).

Теперь сравните это с историческими данными из множества английских / французских / любых текстов. Для сравнения используйте дивергенцию Кульбака.

2 голосов
/ 27 сентября 2010

По моему опыту, большая часть затирания клавиш имеет тенденцию быть в домашнем ряду. Было бы достаточно просто проверить, является ли большая часть используемых символов asdfjkl;.

1 голос
/ 21 сентября 2015

Хороший показатель обеспечит подход, основанный на раскладке клавиатуры.С раскладкой QWERTY вы обнаружите, что около 52% букв в любом данном тексте будут от верхней строки символов клавиатуры.Около 32% символов будут из средней строки, а 14% из нижней строки.Хотя это немного различается от одного языка к другому, остается очень четкая картина, которую можно обнаружить.Используйте ту же методологию для обнаружения шаблонов в других раскладках клавиатуры, а затем убедитесь, что вы обнаружили раскладку, использованную для любого введенного текста, прежде чем проверять наличие тарабарщины.Несмотря на то, что схема ясна, лучше всего использовать этот метод в качестве одного индикатора только с учетом того, что эта методология лучше всего работает с более длинными сценариями.Использование других индикаторов, таких как не буквенно-цифровые символы, смешанные с буквенно-цифровыми символами, длина текста и т. Д., Обеспечит дополнительные индикаторы, которые при применении взвешивания могут обеспечить довольно хорошую общую индикацию разбойного ввода.

0 голосов
/ 27 сентября 2010

Ответ Фредли может быть расширен до грамматики, которая будет составлять слова из близлежащих букв.

Например, asasasasasdf может быть сгенерировано с грамматикой, которая соединяет as, sa, sd иdf.

С такой грамматикой, развернутой до всех букв на клавиатуре (с буквами, расположенными рядом друг с другом), после разбора вы сможете определить, сколько текста можно сгенерировать с помощьюэта «бессмысленная» грамматика.

Предостережение: конечно, любой текст, обсуждающий такую ​​грамматику и перечисляющий примеры «бессмысленного» текста, будет значительно выше, чем обычный текст с проверкой орфографии.

Обратите вниманиечто примерный подход не уловил бы вандализм в форме 'h4x0r rulezzzzz !!!!!'.

Другой подход здесь (который может быть интегрирован с вышеуказанным методом) состоял бы в статистическом анализе корпуса вандализма.текст и попытаться получить общие слова в вандализированных текстах.

РЕДАКТИРОВАТЬ:
Поскольку вы принимаете QWERTY, я думаю, мы могли бы предположить, что English, тоже?

А как насчет KISS - пропустите текст через английскую проверку орфографии и, если он потерпит неудачу, с сожалением придет к выводу, что это, вероятно, тарабарщина (вопрос в том, почему нужно отличать быстро набираемый тарабарщину от случайной чепухи или для этогоимеет значение из очень плохо написанного текста?)

В качестве альтернативы, если нужно рассмотреть другие раскладки клавиатуры (Дворжак, кто-нибудь?) и языки, то, возможно, пропустите текст через все доступные средства проверки правописания языка и затем продолжите (это дастязык автоопределения тоже).

Это не очень эффективный метод, но его можно использовать в качестве базового теста.

Примечание:
В долгосрочной перспективе я думаю, что вандалы адаптируютсяи начать вандализм, например, с отрывков из других страниц Википедии, которые в конечном итоге будет трудно автоматически определить как вандализм (хорошо, существующие тексты могут быть проверены контрольной суммой и подняты для дубликатов, но если текст поступил из какого-то другого источника, это будет в конечном итоге трудно).

...