Package | Class | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## Class KSPCWords

    java.lang.Object
      KSPCWords

    public class KSPCWords

extends java.lang.Object

This program calculates the KSPC characteristic for various text entry techniques based on the keystrokes required to enter words in the target language.

KSPC is an acronym for "keystrokes per character". It is the number of keystrokes required, on average, to generate a character of text for a given text entry method in a given language.

Related references:

- KSPC (Keystrokes per Character) as a characteristic of text entry techniques, by MacKenzie (MobileHCI 2002). This is the paper that first introduced KSPC as a characteristic statistic for text entry methods.

- Text entry using a small number of buttons, by MacKenzie and Tanaka-Ishii (2007). This paper presents an analysis of KSPC and a comparison of several text entry techniques using KSPC.

Invocation:

         PROMPT>java KSPCWords file

         where file = a word+freq+keystroke file

The argument `file` is a text file containing a series of lines, each with three white-space delimited entries: a word, the word frequency, and the keystrokes to enter the word. The keystroke entry should include a terminating SPACE character.

The output is the KSPC characteristic for the text entry technique.

Some example invocations are shown below. The file used in the 1st invocation is d1-wordfreq-mtks.txt. The third entry on each line is the keystroke pattern needed to enter the word using the multitap a phone keypad (including a terminating SPACE). This file was built from d1-wordfreq.txt using the `BuildKeystrokes` utility. Consult the API for `BuildKeystrokes` for complete details. The other files in the invocation examples can be built using `BuildKeystrokes`.

Invocations - Dictionary #1: (d1-wordfreq.txt – 9022 words)

         PROMPT>java KSPCWords d1-wordfreq-mtks.txt
         KSPC = 2.0242237284857083

         PROMPT>java KSPCWords d1-wordfreq-m2tks.txt
         KSPC = 4.960524263792793

         PROMPT>java KSPCWords d1-wordfreq-mt4ks.txt
         KSPC = 3.4667227248852397

         PROMPT>java KSPCWords d1-wordfreq-mt6ks.txt
         KSPC = 3.139541982622594

         PROMPT>java KSPCWords d1-wordfreq-t9ks.txt
         KSPC = 1.0064113710167126

         PROMPT>java KSPCWords d1-wordfreq-t6ks.txt
         KSPC = 1.0288350850177785

         PROMPT>java KSPCWords d1-wordfreq-t4ks.txt
         KSPC = 1.0669724260825588

         PROMPT>java KSPCWords d1-wordfreq-t2ks.txt
         KSPC = 1.547122102995653

         PROMPT>java KSPCWords d1-wordfreq-lwks.txt
         KSPC = 1.1467001895323452

         PROMPT>java KSPCWords d1-wordfreq-meks.txt
         KSPC = 1.8157369585513656

         PROMPT>java KSPCWords d1-wordfreq-pagerks.txt
         KSPC = 3.1247507835761943

         PROMPT>java KSPCWords d1-wordfreq-datestamp1ks.txt
         KSPC = 10.711223210678188

         PROMPT>java KSPCWords d1-wordfreq-datestamp2ks.txt
         KSPC = 10.55073639862169

         PROMPT>java KSPCWords d1-wordfreq-datestamp6ks.txt
         KSPC = 4.103238636279833

         java KSPCWords d1-wordfreq-wpk10ks.txt
         KSPC = 0.5050941156663911

         java KSPCWords d1-wordfreq-wpk5ks.txt
         KSPC = 0.7939110125879739

         java KSPCWords d1-wordfreq-wpk2ks.txt
         KSPC = 0.7292869590025196

         java KSPCWords d1-wordfreq-wpk1ks.txt
         KSPC = 0.6867196447839975

         java KSPCWords d1-wordfreq-wps1ks.txt
         KSPC = 0.7175690315314045

         java KSPCWords d1-wordfreq-wps2ks.txt
         KSPC = 0.6272164642142578

         java KSPCWords d1-wordfreq-wps5ks.txt
         KSPC = 0.5366359936980745

         java KSPCWords d1-wordfreq-wps10ks.txt
         KSPC = 0.48955932330736396

         java KSPCWords d1-wordfreq-ttnsks.txt
         KSPC = 1.6412600112779792

Invocations - Dictionary #2: (d2-wordfreq.txt – 64,566 words)

         PROMPT>java KSPCWords d2-wordfreq-mtks.txt          (Multitap)
         KSPC = 2.0341507188198014

         PROMPT>java KSPCWords d2-wordfreq-t9ks.txt          (T9)
         KSPC = 1.0072058361585188

         PROMPT>java KSPCWords d2-wordfreq-lwks.txt          (LetterWise)
         KSPC = 1.1500484081836353

         PROMPT>java KSPCWords d2-wordfreq-meks.txt          (MessageEase)
         KSPC = 1.8209716971531273

         PROMPT>java KSPCWords d2-wordfreq-pagerks.txt       (Glenayre pager)
         KSPC = 3.132031659103719

         PROMPT>java KSPCWords d2-wordfreq-datestamp1ks.txt  (date stamp method #1)
         KSPC = 10.65975600545338

         PROMPT>java KSPCWords d2-wordfreq-datestamp2ks.txt  (date stamp method #2)
         KSPC = 10.619927472302642

         PROMPT>java KSPCWords d2-wordfreq-datestamp6ks.txt  (date stamp method #6)
         KSPC = 4.226292050082005

         PROMPT>java KSPCWords d2-wordfreq-wpk10ks.txt
         KSPC = 0.8131640271181506

         PROMPT>java KSPCWords d2-wordfreq-wpk5ks.txt
         KSPC = 0.748312907208014

         PROMPT>java KSPCWords d2-wordfreq-wpk2ks.txt
         KSPC = 0.7085798740624372

         PROMPT>java KSPCWords d2-wordfreq-wpk1ks.txt
         KSPC = 0.7390759336078825

         PROMPT>java KSPCWords d2-wordfreq-wps1ks.txt
         KSPC = 0.7390759336078825

         PROMPT>java KSPCWords d2-wordfreq-wps2ks.txt
         KSPC = 0.6465846451367377

         PROMPT>java KSPCWords d2-wordfreq-wps5ks.txt
         KSPC = 0.5506287228310269

         PROMPT>java KSPCWords d2-wordfreq-wps10ks.txt
         KSPC = 0.5000315114434339

Invocations - Brown corpus: (bc-wordfreq.txt – 41,532 words)

         PROMPT>java KSPCWords bc-wordfreq-mtks.txt
         KSPC = 2.0442649462511326

         PROMPT>java KSPCWords bc-wordfreq-t9ks.txt
         KSPC = 1.008214539459543

         PROMPT>java KSPCWords bc-wordfreq-lwks.txt
         KSPC = 1.1623250386744075

         PROMPT>java KSPCWords bc-wordfreq-meks.txt
         KSPC = 1.8239574145624717

         PROMPT>java KSPCWords bc-wordfreq-pagerks.txt
         KSPC = 3.140325186207169

         PROMPT>java KSPCWords bc-wordfreq-datestamp1ks.txt
         KSPC = 10.564776588456656

         PROMPT>java KSPCWords bc-wordfreq-datestamp2ks.txt
         KSPC = 10.603084634745237

         PROMPT>java KSPCWords bc-wordfreq-datestamp6ks.txt
         KSPC = 4.314453728184652

         PROMPT>java KSPCWords bc-wordfreq-wpk10ks.txt
         KSPC = 0.8124519768507685

         PROMPT>java KSPCWords bc-wordfreq-wpk5ks.txt
         KSPC = 0.7488902395077912

         PROMPT>java KSPCWords bc-wordfreq-wpk2ks.txt
         KSPC = 0.7082677289025504

         PROMPT>java KSPCWords bc-wordfreq-wpk1ks.txt
         KSPC = 0.7372019741154122

         PROMPT>java KSPCWords bc-wordfreq-wps1ks.txt
         KSPC = 0.7372019741154122

         PROMPT>java KSPCWords bc-wordfreq-wps2ks.txt
         KSPC = 0.7372019741154122

         PROMPT>java KSPCWords bc-wordfreq-wps5ks.txt
         KSPC = 0.6479416532634211

         PROMPT>java KSPCWords bc-wordfreq-wps10ks.txt
         KSPC = 0.5551980768504509

Invocations - Finnish corpus: (fi-wordfreq.txt – 200,000 words)

         PROMPT>java KSPCWords fi-wordfreq-mtks.txt
         KSPC = 2.2371840963420784

         PROMPT>java KSPCWords fi-wordfreq-t9ks.txt
         KSPC = 1.0043453727052178

         PROMPT>java KSPCWords fi-wordfreq-wpk1ks.txt
         KSPC = 0.7637596123000695

Author:
  Scott MacKenzie, 2001-2015

Constructor Summary
`KSPCWords()`

Method Summary
`static void` | `main(java.lang.String[] args)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### KSPCWords

    public KSPCWords()

Method Detail

### main

    public static void main(java.lang.String[] args)
                     throws java.io.IOException

  Throws:
    `java.io.IOException`

Package | Class | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD