Determinare quanto sia difficile una parola è quello di digitare su una tastiera QWERTY

StackOverflow https://stackoverflow.com/questions/4459352

  •  10-10-2019
  •  | 
  •  

Domanda

sto cercando un ragionevolmente semplice algoritmo per determinare quanto sia difficile a digitare una parola sul layout QWERTY.

Le parole non sarebbe necessariamente dizionario di parole, in modo da una lista di parole comunemente errore di digitazione o simili non è un'opzione. Sono sicuro che ci deve essere un esistente, algoritmo di ben collaudato, ma non riesco a trovare nulla.

Qualcuno può offrire qualsiasi aiuto o consiglio? Sto codifica l'algoritmo in Python, ma qualsiasi altra lingua o pseudo-codice è il benvenuto.

È stato utile?

Soluzione

questo confronto tra i layout QWERTY, Colemak e Dvorak, che calcola la distanza tra i tasti digitati, il percentuale di tasti nella stessa mano, ecc con il codice sorgente in Java. Queste metriche in combinazione dovrebbero dare una buona stima del 'typeability' di una parola.

Altri suggerimenti

Estrarre il set Scrabble, nota verso il basso i punteggi per ogni lettera, totale i punteggi per una parola, oplà avete il vostro algoritmo. Non sono sicuro del tutto soddisfa le vostre esigenze, ma potrebbe puntare in una direzione utile. Si potrebbe, per esempio, vogliono punteggi assegnare non solo alle singole lettere, ma anche a di- e tri-grammi.

Io non sono a conoscenza di qualsiasi fonte esistente di informazioni necessarie, forse si potrebbe trovare con la vostra lettera punteggi esaminando la tastiera e l'assegnazione di punteggi più alti per le lettere più difficili: quindi 1 per 'a', 8 per 'q', 2 per 'm', e così via.

EDIT: mi sembra di aver confuso le persone più che faccio di solito quando rispondo su SO. Ecco i barebone della mia proposta:

a) Elenco tutti i trigrammi e digrammi che si verificano in inglese (o la vostra lingua). A ciascuno di loro assegnare un punteggio di difficoltà-di-digitazione. Fare lo stesso per le singole lettere (dopo tutto è un 4 lettera parola potrebbe essere composto da un trigramma e una lettera piuttosto che due digrammi).

b) Nota la difficoltà di digitare una parola come somma della difficoltà di scrivere le sue componenti.

Per quanto riguarda i punteggi di difficoltà, non ho la più pallida idea, ma si potrebbe iniziare da 1 per una lettera sulle chiavi di casa su una tastiera, 2 per una lettera che utilizza gli indici, ma non è una chiave di casa, 3 per una lettera che utilizza le dita 2 o 3 sulla tua mano, e così via. Poi per digrammi, punteggio basso per un facile lettere a sinistra ea destra (o destra e sinistra) in sequenza, alta per le lettere difficili da un lato in sequenza (ad esempio, QZ, anche se questo non è forse valida per l'inglese). E su di andare.

Non ho alcun algoritmi da proporre, ma alcuni suggerimenti:

  • Io uso di entrambe le mani per tipo, il che significa che la tastiera è più o meno diviso in 2 tempi, è frequente che ho problemi di coordinamento tra le due mani, il che significa che ogni tipo le lettere nell'ordine "giusto", ma l'interleaving è sbagliato. Ciò è particolarmente vero se da un lato ha più lettere per digitare rispetto agli altri, tipica:. "Il" perché il tipo di sinistra t e e e il diritto tipi di mani h

  • "scivola" sono frequenti, il che significa che spesso il tempo sta per perdere la chiave e ha colpito un altro tasto al posto; "Inoltre" / "cancellazione" sono frequenti troppo, cioè digitando un tasto aggiuntivo o no spingere abbastanza duro -.> Questo significa che (ovviamente) i più lettere c'è, più difficile è quello di ottenere la parola giusta

  • Mix caso rende più difficile, richiede la sincronizzazione tra spingendo CAPS e colpire le chiavi, quindi è probabile che le chiavi vicine non avranno il caso giusto superiore / inferiore.

Spero che questo aiuti ...

Credo che, manhatten distanze algoritmo potrebbe essere più vicino di quello che si sta guardando. Tale algoritmo tiene conto della distanza del bersaglio dalla sorgente in modo quadrangolare.

Per quanto riguarda l'implementazione in Python, per il vostro bisogno specifico di difficoltà in QWERTY, si dovrà scrivere uno per te, altrimenti pochi implementazione distanze manhatten può essere trovato se google per "n Puzzle Solver in Python"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top