Hi,
Kurzform: *Unterschiedliche Daten und Berechnungsgrundlagen machen Ergebnisse scheinbar selbst bei Punkten völlig unvergleichbar.* Ich habe lange Zeit gerätselt, wie Ulf auf seinen wahnwitzigen Wert von 0.8% Fingerwiederholungen kommt, während ich nur mit massivem Rechenaufwand in die Nähe von 1% komme. Gestern habe ich dann, als ich die Nordtast-Seite gelesen habe, einfach mal das Nordtast-Layout meinem Testscript hinzugefügt. Ergebnis: $ ./check_neo.py Neo [['^', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '`', ()], [(), 'x', 'v', 'l', 'c', 'w', 'k', 'h', 'g', 'f', 'q', 'ß', '´', ()], ['⇩', 'u', 'i', 'a', 'e', 'o', 's', 'n', 'r', 't', 'd', 'y', '⇘', '\n'], ['⇧', (), 'ü', 'ö', 'ä', 'p', 'z', 'b', 'm', ',', '.', 'j', '⇗'], [(), (), (), ' ', (), (), (), ()]] # 1.425330573 billion total penalty compared to notime-noeffort # 19.3670078482 million keystrokes disbalance of the fingers # 4.82198888113 % finger repeats in file 2gramme.txt # 0.307224610884 % finger repeats top to bottom or vice versa # 4.70844781487 % of trigrams have no handswitching (uppercase ignored) # 3.9755737368 mean key position cost in file 1gramme.txt Qwertz for comparision [['^', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'ß', '´', ()], [(), 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i', 'o', 'p', 'ü', '+', ()], [(), 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä', (), '\n'], ['⇧', (), 'y', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '-', '⇗'], [(), (), (), ' ', (), (), (), ()]] # 2.079132135 billion total penalty compared to notime-noeffort # 19.6850637926 million keystrokes disbalance of the fingers # 6.72632774411 % finger repeats in file 2gramme.txt # 0.233732243474 % finger repeats top to bottom or vice versa # 11.5644849023 % of trigrams have no handswitching (uppercase ignored) # 5.95987411112 mean key position cost in file 1gramme.txt And the Nordtast Layout [['^', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'ß', '´', ()], [(), 'ä', 'u', 'o', 'b', 'p', 'k', 'g', 'l', 'm', 'f', 'x', '+', ()], [(), 'a', 'i', 'e', 't', 'c', 'h', 'd', 'n', 'r', 's', 'ß', (), '\n'], ['⇧', (), '.', ',', 'ü', 'ö', 'q', 'y', 'z', 'w', 'v', 'j', '⇗'], [(), (), (), ' ', (), (), (), ()]] # 1.360731284 billion total penalty compared to notime-noeffort # 7.50010236662 million keystrokes disbalance of the fingers # 1.83742456166 % finger repeats in file 2gramme.txt # 0.260071071233 % finger repeats top to bottom or vice versa # 3.80773505265 % of trigrams have no handswitching (uppercase ignored) # 4.28745556484 mean key position cost in file 1gramme.txt Ich verwende zur Berechnung den vollständigen Leipziger Korpus (bzw. die daraus extrahierten 1- und 2-gramme). → http://lists.neo-layout.org/pipermail/diskussion/2009-December/015238.html → http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/1gramme.txt → http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/2gramme.txt → http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/3gramme.txt Sonderzeichen ignoriere ich, und Großbuchstaben werden zu 0.5*(left_shift+key+right_shift+key), weil in der aktuellen Version beim Behandeln der Großbuchstaben noch nicht bekannt ist, wo die Tasten liegen werden, also welches Shift genommen werden sollte. Das Ergebnis sind bei Nordtast 1,8% Fingerwiederholungen; zumindest nach meiner Berechnungsmethode. Es mag sein, dass ich einen Fehler drin habe, der meine Daten stark verfälscht (ich ihn aber noch nicht kenne, sonst wäre er nicht mehr drin :) ), aber zumindest sehe ich damit, dass meine Optimierungen nicht völlig kaputt sind. Und nach der Methode ist Neo bei weitem nicht so weit abgeschlagen (2,7 mal so viele Fingerwiederholungen statt 7,8 mal so viele). @Ulf: Hast du eine Idee, woran das liegen kann? Hast du andere Daten verwendet als ich? Die unterschiedliche Bewertung der Tastenkosten ist klar, aber warum unterscheiden sich die Fingerwiederholungen so stark? Vielleicht die Shift-Tasten? Fazit: Unterschiedliche Berechnungsmethoden und unterschiedliche Bewertungskriterien ergeben stark unterschiedliche Ergebnisse. Daher ist es wichtig, dass wir die Kriterien hier besprechen und dann klären, was rein soll. Der Computer mag das Denken unterstützen, aber er kann es nicht abnehmen. Egal wie intelligent er wird, wir müssen ihm immernoch genau sagen, was wir eigentlich wollen. Wer das selbst testen will, kann das übrigens auf 2 Arten machen (nur unter GNU/Linux getestet): 1. Tarball-Snapshot (braucht Python3 → http://python.org/download ) - wget http://bitbucket.org/ArneBab/evolve-keyboard- layout/get/55e78a669261.bz2 - tar xf 55e78a669261.bz2 - cd evolve-keyboard-layout/ - ./check_neo.py 2. Versionsverwaltung (braucht Python3 und Mercurial): - (falls noch nicht vorhanden: easy_install mercurial ) - hg clone https://arne...@bitbucket.org/ArneBab/evolve-keyboard-layout/ - cd evolve-keyboard-layout/ - ./check_neo.py Liebe Grüße, Arne PS: Damit klar ist aus welcher Version des Skriptes die Daten stammen: $ hg id b97f85a3d973 tip