Author Topic: Evaluating keyboard layouts with word-based metrics  (Read 517 times)

0 Members and 1 Guest are viewing this topic.

Offline iandoug

  • Thread Starter
  • Posts: 69
Evaluating keyboard layouts with word-based metrics
« on: Wed, 06 December 2017, 12:10:04 »
Hi

Current methods for evaluating keyboard layouts are usually based on analyzing what the fingers do.

But way back when Maltron arrived, they used a different metric: how many words you could type on their home row, compared to QWERTY or Dvorak.

So I've written some programs to do that sort of analysis, for the following categories:

1. home keys (because 'home row' is not always in a straight row, these days)
2. home block (see definition on site)
3. easy block (ditto)
4. one-handed words (where a low score is desirable).

Over 300 layouts analyzed.

Follow links here: http://www.keyboard-design.com/best-layouts.html

Comments and critiques welcome. Also if you think there are bugs or methodological (is that a word?) errors in my programs :-).

Cheers, Ian

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #1 on: Thu, 07 December 2017, 05:18:29 »
Great work!
I would ask for a version where we can change the word list to cater for non-english users and programing languages but that would be too much... eheheheh

One question is why do you have the "Easy Block" on ANSI for the left hand be:
W | E
S | D | F
V

instead of:
W | E
S | D | F
C

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #2 on: Thu, 07 December 2017, 16:08:20 »
One question is why do you have the "Easy Block" on ANSI for the left hand be:
W | E
S | D | F
V

instead of:
W | E
S | D | F
C

V is on index… c is on middle.
« Last Edit: Fri, 08 December 2017, 04:23:45 by iandoug »

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #3 on: Fri, 08 December 2017, 04:19:28 »
You're right, I just find C so more easily reachable by the index than V that I forgot that.

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #4 on: Fri, 08 December 2017, 04:37:52 »
Great work!
I would ask for a version where we can change the word list to cater for non-english users and programing languages but that would be too much... eheheheh

Yes, I've heard rumours that other languages apart from English exist....

On a practical side, there are several issues...
1. which languages? Mandarin, Hindi, Arabic, French, Spanish? (most spoken).
2. are there good word lists available for these languages?
3. are there lots of different keyboard layouts for these languages?

I would be completely out of my depth working with Mandarin, Hindi or Arabic. French, Spanish and German I can handle, but AFAIK there are basically two or three different layouts for French, maybe three for German, and maybe three for Spanish if we include the old defunct official Portuguese one.

It looks like "alternate keyboard layout" is very much a western thing (English, French and German, with a smattering of Nordic). I think the Easterns' problem is much different, they need something very different to anything looking like ANSI 104.

The comparisons I did were done in batch, it takes quite a while to run through hundreds of thousands of words for over 300 layouts.

I suppose it is possible to build an interactive version where you upload a layout, specify a language, and get some scores. But the layout would need to be in KLA json format, preferably.

Den's current version of KLA does something along those lines already (based on your input text rather than long word lists):
http://shenafu.com/code/keyboard/klatest/#/main

See the "words" tab on the results page.

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #5 on: Fri, 08 December 2017, 09:43:40 »
What ''old defunct official Portuguese one."? How old are we talking? I remember typewriters where mostly azerty and we now use a pretty standard localized ISO qwerty with dead keys and a ç.

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #6 on: Fri, 08 December 2017, 09:48:16 »
What ''old defunct official Portuguese one."? How old are we talking? I remember typewriters where mostly azerty and we now use a pretty standard localized ISO qwerty with dead keys and a ç.

1937 :-)

https://en.wikipedia.org/wiki/HCESAR

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #7 on: Fri, 08 December 2017, 11:46:37 »
Heck that's pretty nifty, I remember seeing a very old typewriter with a H as first letter and wondering what was up with that, ONCE. I guess stuff from the old regime got shut down in the 70's.

Now i really want to compare it to pt-nativo http://xahlee.info/kbd/pt-nativo_keyboard_layout.html (which was intended for brazilian portuguese).

Also these can't be used in "spanish", they lack the "~" on the "n" and the inverted "?" and "!" and more importantly the "¨".
And they talk a completely different language in each part of spain just to further complicate things.

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #8 on: Fri, 08 December 2017, 14:39:52 »
Now i really want to compare it to pt-nativo http://xahlee.info/kbd/pt-nativo_keyboard_layout.html (which was intended for brazilian portuguese).

Curious layout ... why would the Brazilians need German, Danish and Old English letters?  (and I think slash-l is Eastern European?) Or are those just Nice to Have?

Also these can't be used in "spanish", they lack the "~" on the "n" and the inverted "?" and "!" and more importantly the "¨".

Yeah was wondering after I co-mingled Spanish and Portuguese together if I was talking sense ... we used to use Portuguese spelling for a few places down here (Moçambique etc..) and we still have people giving their children names like François, but never seen much in the way of ñ or ¿.

[Aside: the Afrikaans community here has roots in Dutch, French Hugenout and some Portuguese ... and love to give their children names with diacritics (Ánel, Riëtte, etc ... there's one with an acute and gravè accent in which I can't remember now). Which are easy to write but a pain when it comes to keyboards and data capture, since we use standard USA ANSI keyboards .... situation was worse before UTF-8 arrived. Different font, see a mess...]



Offline Snarfangel

  • Posts: 268
Re: Evaluating keyboard layouts with word-based metrics
« Reply #9 on: Sun, 10 December 2017, 12:00:23 »
My version [Y RINA QUO] did pretty well in English. I cranked up the value of rolls, too, which tends to decrease alternation of hands.

I've been using it for a little over a year. I really like it. YMMV.

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #10 on: Sun, 10 December 2017, 13:25:33 »
My version [Y RINA QUO] did pretty well in English. I cranked up the value of rolls, too, which tends to decrease alternation of hands.

I've been using it for a little over a year. I really like it. YMMV.

Yes, I have it in my panel for testing... :-)
Page about it is here: http://www.keyboard-design.com/letterlayout.html?layout=yrinaquo.en.ergodox

I have done another batch of tests (including your layout) using Den's revised scoring, about to repeat the process using Patrick's original scoring, and then for the third time using Den's current "we don't need no stinkin' pinkies" version... Hope to have the first set of results live in next few days.

Cheers, Ian

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #11 on: Mon, 11 December 2017, 06:20:49 »
Curious layout ... why would the Brazilians need German, Danish and Old English letters?  (and I think slash-l is Eastern European?) Or are those just Nice to Have?

No idea, probably also for the random german name. But i think the AltGr layer was more of a "cram everything" type thing.

Yeah was wondering after I co-mingled Spanish and Portuguese together if I was talking sense ...

Yes, that would be bad to do, don't do that. :p


On another note, how would you "optimize" for more than one language?

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #12 on: Mon, 11 December 2017, 13:04:00 »
On another note, how would you "optimize" for more than one language?

I don't think you can... on another thread here I was helping optimise the eNNe layout, meant to be for Dutch and English. It's better at Dutch than English, and rather good at English too. But don't think it can be best at both.

The letter use per language is just too different... for example, we speak Afrikaans down here, which is derived from Dutch. But we use "y" where Dutch uses "ij", and they use "ch" where Afrikaans uses "k". Etc. So even similar languages won't have same layout, as you pointed out for Spanish and Portuguese.

Online AMongoose

  • happy workman user
  • Posts: 164
Re: Evaluating keyboard layouts with word-based metrics
« Reply #13 on: Mon, 11 December 2017, 13:19:24 »
Yes, I wasn't talking about THE BEST for both, but I understand even defining a middle point would be quite difficult.

I would like to be able to optimize for one with the constraint of a second one, such as that the second language scores at least somewhere in the middle of the scale and no common sequences are hard. Should take a look at that eNNe thread. I've been using workman as I type mostly in english but the portuguese situation is not the best, I should invest some time on this.

Offline iandoug

  • Thread Starter
  • Posts: 69
Re: Evaluating keyboard layouts with word-based metrics
« Reply #14 on: Wed, 13 December 2017, 00:59:14 »
On another note, how would you "optimize" for more than one language?

The letter use per language is just too different... for example, we speak Afrikaans down here, which is derived from Dutch. But we use "y" where Dutch uses "ij", and they use "ch" where Afrikaans uses "k". Etc. So even similar languages won't have same layout, as you pointed out for Spanish and Portuguese.

Contrawise, we (Den and I) have noticed that when a layout does well at English (and typically programming too, depending on where the punctuation is), you can throw just about anything at it that uses standard Roman letters (no diacritics etc) and it will do well.. eg two samples like this:

Code: [Select]
Adjuvilo

Patro nosa, qua estan en cielos,
santa esten tua nomo, advenen tua regno,
esten tua volo, quale en cielos,
tale anke sur la tero;
nosa panon omnadaga donen a nos hodie;
nosas ofendos pardonen a nos,
quale nos pardonan a nosas ofendantos
e ne lasen nos fali en tento,
ma liberifen nos de malbono.

Afrikaans

Onse Vader wat in die hemele is,
laat u naam geheilig word.
Laat u koninkryk kom,
laat u wil geskied,
soos in die hemel net so ook op die aarde.
Gee ons vandag ons daaglikse brood,
en vergeef ons ons skulde,
soos ons ook ons skuldenaars vergewe.
En lei ons nie in versoeking nie,
maar verlos ons van die bose.
Want aan U behoort die koninkryk en die krag
en die heerlikheid tot in ewigheid.
Amen.

Aramaic

Abbun d'bishmayya
yitqadesh shmakh
titey malkhutakh
tihey re`utakh
heykhma debishmayya
keyn af be''ar`a
lachman deme'ar`a
hab lan yoma deyn umachra
ushbaq lan chobayn
heykhma de'af shebaqnan lechayyabayn
we'al ta`eylan lenisayuna
ela atseylan min bisha

or

Code: [Select]
isiXhosa

Nkosi, sikelel' iAfrika;
Malupakam'upondo lwayo;
Yiva imitandazo yetu
Usisikelele.

Chorus

Yihla Moya, Yihla Moya,
Yihla Moya Oyingcwele

Sikelela iNkosi zetu;
Zimkumbule umDali wazo;
Zimoyike zezimhlouele,
Azisikelele.

Sikelel' amadol' esizwe,
Sikelela kwa nomlisela
Ulitwal'ilizwe ngomonde,
Uwusikilele.

Sikelel'amakosikazi;
Nawo onk'amanenekazi;
Pakamisa wonk'umtinjana
Uwusikilele.

Sikelela abafundisi
Bemvaba zonke zelilizwe;
Ubatwese ngoMoya Wako
Ubasikelele.

Sikelel'ulimo nemfuyo;
Gxota zonk'indlala nezifo;
Zalisa ilizwe ngempilo
Ulisikelele

Sikelel'amalinga etu
Awomanyana nokuzaka,
Awemfundo nemvisiswano
Uwasikelele.

Nkosi Sikelel' iAfrika; 
Cima bonk' ubugwenxa bayo
Nezigqito, nezono zayo
Uyisikelele.