8
votes

Détecter des hits de clavier aléatoire Considérant la mise en page de clavier QWERTY

le Gagnant d'un récent concours de détection de vandalisme Wikipedia suggère que la détection pourrait être améliorée par " Détecter des hits de clavier aléatoire compte tenu de qwerty Layout de clavier ".

Exemple: woiijf qoeoifwjf oiiwjf oiwj pfowjfoiwjfo oiwjfoewoh

Y a-t-il un logiciel qui fait-il déjà (de préférence source libre et open source < / a>)?

Si non , y a-t-il un projet FOSS actif dont objectif est de réaliser cela?

Si non , comment suggéreriez-vous à Mettre en œuvre un tel logiciel?


3 commentaires

Les algorithmes de détection de vandalisme incluent déjà la détection dictionnelle / grammaire, donc je recherche un algorithme qui n'utilise pas de dictionnaires ni de grammaire, mais plutôt de motifs de doigts.


Et comment exactement les «modèles de doigts» diffèrent des entrées de dictionnaires plus des règles de grammaire? C'est la même approche, la distinction est que l'une est une détection positive et l'autre détection négative. En outre, il n'est pas clair ce que vous demandez - des hits de clavier aléatoire compte tenu de QWERTY ne sont pas différents, puis des hits de clavier aléatoire compte tenu de Dvorak, à moins qu'ils ne soient pas vraiment aléatoires (peut-être d'appeler mieux les constructions de vandalisme couramment utilisées »).


@UnReason: À propos de votre première question: Je voulais dire des dictionnaires et des grammates des langues humaines existantes. La "détection négative" que vous proposez est intéressante, n'hésitez pas à la proposer comme réponse. À propos du "En outre": Je reformule ma question: vous avez une séquence de caractères qui ont été saisis sur un clavier QWERTY, comment calculez-vous la probabilité qu'il ait été dactylographié négligemment? (c.-à-d. Parmi quelqu'un dont le but n'était pas d'exprimer quelque chose, mais d'entrer rapidement de nombreux personnages, par exemple Oiuoiqewrcoqf)


5 Réponses :


2
votes

La plupart de la purée de clavier a tendance à être sur la rangée d'accueil de mon expérience. Il serait raisonnablement simple de vérifier si une proportion élevée des caractères utilisés est asdfjkl; .


1 commentaires

Wow, je n'ai jamais remarqué cela, mais c'est tellement vrai de ma purée aléatoire!



7
votes

Si deux Bigrams dans le texte analysé sont proches en termes QWERTY, mais ont près de zéro fréquence statistique dans Langue anglaise (comme des paires "FG" ou "CD"), il est possible que des hits de clavier aléatoire soient impliqués. Si plus de telles paires sont trouvées, le hasard augmente grandement.

Si vous souhaitez prendre en compte l'utilisation des deux mains pour basculer, puis des lettres de test séparées d'une autre lettre pour la proximité QWERTY, mais deux bigrams (ou même trigrammes) pour la fréquence de Bigram. Par exemple, dans le texte "Flsjf", vous vérifieriez F et S pour la distance de QWERTY, mais les Bigrams FL et LS (ou Trigram FLS) pour la fréquence.


5 commentaires

+1 Cela semble bon, mais d'abord la liste de ces bigrams communs pour Gibberish doit être extraite; Sinon, le résultat final serait basé sur des devintimates (devinant que les bigrams ou les trigrammes sont caractéristiques pour Gibberish).


Peut-être que pour l'opération doit être indiqué que la correspondance de Bigram est l'algorithme commun que l'on trouve dans des dames orthographiques


Accepté. Pour référence, j'aimerais ajouter que la répétition d'un bigram insolite est un signe quasi certain.


Donc, pour revenir à Nicolas Question: Y a-t-il une liberce open source qui a mis en œuvre ce type de logique?


@Theachitect à cette question je ne suis pas plus intelligent que Google



0
votes

La réponse de Fredley peut être étendue à une grammaire qui construirait des mots des lettres à proximité.

Par exemple asasasasasdf pourrait être généré avec une grammaire qui connecte comme , SA , sd et DF .

Avec une telle grammaire, étendue à toutes les lettres du clavier (avec des lettres les unes des autres) pourraient, après l'analyse, vous donner une mesure de la quantité d'un texte peut être généré avec cette grammaire «Gibberish». < / p>

CAVEAT: Bien sûr, tout texte qui discute de tels exemples de grammates et de liste de texte «Gibberish» scrutait de manière significative un texte vérifié.

Notez que l'exemple d'approche n'attacherait pas de vandalisme sous la forme de 'H4X0R FROgRezzzzz !!!!!'.

Une autre approche ici (qui peut être intégrée à la méthode ci-dessus) serait d'analyser statistiquement un corpus de texte vandalisé et d'essayer d'obtenir des mots communs dans des textes vandalisés.

EDIT:
Puisque vous supposez QWERTY, je suppose que nous pourrions assumer l'anglais aussi?

Qu'en est-il de Kiss - Exécutez le texte via le checker orthographique anglais et s'il échoue en concluant de manière miséreuse, il s'agit probablement de Gibberish (la question est de savoir pourquoi vouloir distinguer rapidement le gibbéricish tapé rapidement de bêtises aléatoires ou à ce sujet du texte très mal orthographié? )

Alternativement si d'autres dispositions de clavier (DVORAK, quiconque?) Et les langues doivent être prises en compte, alors peut-être exécuter le texte via tous les dames de langue disponible disponibles et ensuite procéder (cela donnerait une langue autodétect aussi).

Ce ne serait pas une méthode très efficace, mais pourrait être utilisée comme test de base.

note:

À long terme, j'imagine que les vandales s'adapteraient et commencent à vandaliser avec, par exemple des extraits d'autres pages Wikipedia, qui seraient finalement difficiles à détecter automatiquement sous forme de vandalisme (ok, les textes existants pourraient être chutés et pavillon soulevés sur des duplicats, mais si le texte est venu d'une autre source, ce serait finalement dur).


1 commentaires

À propos de votre paragraphe "Do NOTE": En effet, la "H4X0R Onglezzzzz" !!!!! ' L'affaire n'est pas ciblée ici, et elle est effectivement prise en charge par d'autres moyens, que le papier du gagnant parle de. En bref: la répétition de personnages de "ZZZZZ" et une ponctuation excessive le marquerait déjà comme un vandalisme probable.



3
votes

Considérez la distribution empirique des séquences de deux lettres, c'est-à-dire «La probabilité d'avoir une lettre A donnée il suit la lettre B», toutes ces probabilités remplissent une table de taille 27x27 (compte de l'espace en tant que lettre).

Maintenant, comparez cela avec des données historiques d'un tas d'anglais / français / quel que soit les textes. Utilisez Kullback Divergence pour une comparaison.


3 commentaires

Suis-je raison pour mettre en œuvre votre solution, j'ai besoin d'un corpus de "texte purée"?


Vous avez besoin d'un corpus de texte anglais standard (comme des articles Wikipedia).


Je pense que compte tenu de la dernière version de l'article (sauf si elle est vraiment courte) est susceptible de fonctionner pour l'exemple Wikipedia.



1
votes

Prendre une approche basée sur la mise en page du clavier fournira un bon indicateur. Avec une mise en page QWERTY, vous constaterez qu'environ 52% des lettres de tout texte donné proviendront de la ligne supérieure des caractères du clavier. Environ 32% des caractères seront originaires de la ligne médiane et 14% du résulteront de la ligne de fond. Bien que cela varie légèrement d'une langue à une autre, il reste un modèle très clair qui peut être détecté. Utilisez la même méthodologie pour découvrir des motifs dans d'autres dispositions de clavier, puis assurez-vous de détecter la mise en page utilisée pour tout texte saisi avant de rechercher Gibberish. Même si le modèle est clair, il est préférable d'utiliser cette méthode comme un indicateur que cette méthodologie ne fonctionne mieux avec des scripts plus longs. L'utilisation d'autres indicateurs tels que des caractères non alphaniques / numériques mélangés avec alpha / numérique, la longueur de texte, etc. fournira d'autres indicateurs qui, lors de l'application de la pondération, peuvent fournir une assez bonne indication globale de l'entrée Gibberish.


0 commentaires