2010-09-27 2 views
7

winner of a recent Wikipedia vandalism detection competition предполагает, что обнаружение может быть улучшена за счет « обнаружения случайных клавиатуры QWERTY-хиты с учетом клавиатуры макет».Обнаружение случайных клавиатуры QWERTY хиты с учетом раскладки клавиатуры

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

Есть ли программное обеспечение, которое делает это уже (предпочтительно free and open source)?

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

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

+1

Алгоритмы обнаружения вандализма уже включают обнаружение на основе словаря/грамматики, поэтому здесь я ищу алгоритм, который НЕ использует словари или грамматику, а скорее паттерны. –

+1

и как именно «шаблоны пальцев» отличаются от словарных статей плюс грамматические правила? Это тот же подход, различие заключается в том, что он является положительным обнаружением и другим отрицательным обнаружением. Кроме того - непонятно, о чем вы просите - случайные нажатия клавиш, учитывая, что qwerty ничем не отличается от случайных клавиатурных хитов, рассматривающих дворак, если они не являются действительно случайными (может быть, лучше назвать его «обычно используемыми конструкциями вандализма»). – Unreason

+0

@Unreason: О вашем первом вопросе: я имел в виду словари и грамматики существующих человеческих языков. Интересно, что «негативное обнаружение» интересно, не стесняйтесь предлагать его в качестве ответа. О «Более того»: я переформулирую свой вопрос: вам задана последовательность символов, которые были введены на клавиатуре QWERTY, как вы вычисляете вероятность того, что она была введена небрежно? (т. е. кем-то, чья цель заключалась не в том, чтобы выражать что-то, но быстро ввести много символов, например oiuroiqewrcoqf) –

ответ

5

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

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

+1

+1 это звучит хорошо, но сначала список этих общих биграмм для тарабарщины нужно извлечь; в противном случае конечный результат будет основан на guesstimates (угадать, какие биграммы или триграммы характерны для тарабарщины). – Unreason

+0

Возможно, для OP необходимо указать, что соответствие биграма - это общий алгоритм, найденный в проверках орфографии – Unreason

+0

Принято. Для справки, я хотел бы добавить, что повторение необычного биграма - знак квази-уверенности. –

2

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

+1

wow Я никогда не замечал этого, но это так верно в отношении моего случайного затирания! – Blindy

0

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

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

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

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

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

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

EDIT:
Поскольку вы предполагаете QWERTY, я думаю, мы могли бы взять на себя английский язык тоже?

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

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

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

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

+0

О вашем пункте «Делать заметку»: Действительно, «h4x0r rulezzzzz !!!!!«Дело здесь нецелесообразно, и на самом деле оно позаботится о других средствах, о которых говорит газета победителя. Вкратце: повторение символов «zzzzz» и чрезмерная пунктуация уже отмечали бы его как вероятный вандализм. –

1

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

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

+0

Я прав, что для реализации вашего решения мне нужен кусок «пюре»? –

+0

вам нужен свод стандартного английского текста (например, статьи в википедии). –

+0

Я думаю, что только рассмотрение последней версии статьи (если она действительно короткая), скорее всего, будет работать для примера в Википедии. –

1

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

Смежные вопросы