Question

Je cherche un algorithme assez simple de déterminer la façon dont il est difficile de taper un mot sur le clavier QWERTY.

Les mots ne serait pas nécessairement dictionnaire mots, une liste de mots couramment mal orthographiés ou similaires ne sont pas une option. Je suis sûr qu'il doit y avoir un existant, algorithme bien testé, mais je ne peux pas trouver quoi que ce soit.

Quelqu'un peut-il offrir une aide ou des conseils? Je le codage de l'algorithme en python, mais toute autre langue ou pseudo-code est la bienvenue.

Était-ce utile?

La solution

Il y a cette comparaison entre les dispositions QWERTY, Colemak et Dvorak, qui calcule la distance entre les touches tapée, la pourcentage de touches de la même main, etc. avec le code source en Java. Ces mesures combinées devraient donner une très bonne estimation de la « typeability » d'un mot.

Autres conseils

Prenez votre jeu Scrabble, notez les scores pour chaque lettre, le total des scores pour un mot, vous avez hey presto votre algorithme. Je ne sais pas entièrement satisfait vos besoins, mais il peut vous orienter dans une direction utile. Vous pourriez, par exemple, veulent non seulement des scores Assigner aux lettres individuelles, mais aussi à di- et tri-grammes.

Je ne suis pas au courant d'aucune source existante de l'information dont vous avez besoin, peut-être que vous pourriez venir avec vos propres scores de lettre en examinant le clavier et l'attribution des scores plus élevés aux lettres plus difficiles: si 1 pour « a », 8 pour 'q', 2 pour 'm', et ainsi de suite.

EDIT: Je crois avoir des gens confus plus que ce que je fais habituellement quand je réponds sur le SO. Voici les barebones de ma proposition:

a) Liste tous les trigrammes et digrammes qui se produisent en anglais (ou votre langue). Pour chacun d'eux attribuer une difficulté-de-frappe score. Faites la même chose pour les lettres individuelles (après tout un mot de 4 lettres peut être composé d'un trigramme et une lettre plutôt que deux digrammes).

b) Note de la difficulté de taper un mot comme étant la somme de la difficulté de la saisie de ses composants.

En ce qui concerne les scores de difficulté, je n'ai pas la moindre idée, mais vous pouvez commencer à partir de 1 pour une lettre sur les clés de la maison sur un clavier, 2 pour une lettre qui utilise les doigts d'index, mais n'est pas une clé de la maison, 3 pour une lettre qui utilise les 2e ou 3e doigts sur votre main, et ainsi de suite. Ensuite, pour digrammes, faible score pour les lettres faciles à gauche et à droite (ou à droite et à gauche) dans l'ordre, haute pour les lettres difficiles, d'une part dans l'ordre (par exemple QZ, bien que ce soit peut-être pas valable pour l'anglais). Et vous allez.

Je n'ai aucun algorithme à proposer, mais quelques conseils:

  • J'utilise les deux mains pour le type, ce qui signifie que le clavier est à peu près divisé en 2 moitiés, il est fréquent que j'ai des problèmes de coordination entre les deux mains, ce qui signifie que chaque type les lettres dans l'ordre « droit », mais le désentrelacement est erroné. Cela est particulièrement vrai si d'une part a plus de lettres à taper que l'autre, typique: «le » car le type de main gauche t et e et les types de main droite h

  • « fiches » sont fréquentes, ce qui signifie que souvent un temps va manquer la clé et a frappé une autre clé à la place; « Addition » / « suppression » sont fréquents aussi, par exemple taper une clé supplémentaire ou ne pas pousser assez dur -.> Cela signifie que (évidemment) plus des lettres il y a, plus il est difficile d'obtenir le droit de parole

  • mix cas, il est plus difficile, il faut pousser la synchronisation entre CAPS et appuyer sur les touches,

  • il est donc probable que les clés proches auront pas le droit majuscules / minuscules.

Hope this helps ...

Je pense que, manhatten distances algorithme pourrait être plus proche de ce que vous regardez. Cet algorithme prend en compte la distance de la cible de la source de la façon quadrangulaire.

En ce qui concerne la mise en œuvre en python, pour votre besoin spécifique de la difficulté à QWERTY, vous devrez écrire un pour vous-même, sinon peu la mise en œuvre des distances manhatten peut être trouvé si vous Google pour « n solveur puzzle python »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top