Re: [Neo] Neues Auswerteprogramm ausw4.py

2009-12-06 Diskussionsfäden Michael Kiesenhofer
On Thu, 3 Dec 2009 20:51:09 +0100
Pascal Hauck n...@pascalhauck.de wrote:

 Ein Dank an Ulf für diese Arbeit. Solche Statistiken sind essentielle 
 Grundlage für einen Anfang der Entwicklungsreihe Neo3, die nun
 bereits als im Gange angesehen werden darf.

Das finde ich ja bei Ulf überhaupt witzig. Zuerst kommt er daher,
beschwert sich das Neo so furchtbar schlecht ist … und dann schlägt ihm
irgendjemand vor sich an der Entwicklung zu beteiligen … und schwupps
hatten wir einen der aktivsten Entwickler :-)
Sehr brav und lobenswert!

Zu schade, dass mir selbst die Zeit, Schreibkunst, Know-How und
Kreativität fehlen.

lg 
Michael alias Mike1



Re: [Neo] Neues Auswerteprogramm ausw4.py

2009-12-06 Diskussionsfäden Dennis Heidsiek

Hallo allerseits,


Ulf Bro ſchrieb am 03.12.2009 17:16 Uhr:

Ich stelle ein neues Auswertungsprogramm für Tastaturen vor.


Auch von mir nochmal herzlichen Dank für Deine Bemühungen um eine eine 
solide Computer-gestützte Analyse verschiedener Tastaturbelegungen! Das 
ist eine wichtige Arbeit, die gewissermaßen das Rückrat von Neo 3 bilden 
sollte :-).


Michael Kiesenhofer ſchrieb am 06.12.2009 22:43 Uhr:

Das finde ich ja bei Ulf überhaupt witzig. Zuerst kommt er daher, beschwert 
sich das Neo so furchtbar schlecht ist … und dann schlägt ihm irgendjemand vor 
sich an der Entwicklung zu beteiligen … und schwupps hatten wir einen der 
aktivsten Entwickler :-)
  


Enthusiasmus ist offensichtlich etwas ansteckendes ;-).


Viele Grüße,
Dennis-ſ




Re: [Neo] Neues Auswerteprogramm ausw4.py

2009-12-04 Diskussionsfäden Pascal Hauck
Am Freitag, 4. Dezember 2009 11:17:21 schrieb Karl Köckemann:
 Mir ging es um das Einfügen des Tabstops zwischen der Häufigkeit und
 dem Zeichen

Auf die Gefahr hin, wieder falsch zu verstehen:
a=0.147 #relative Häufigkeit
b=r #Zeichen
echo -e $a\\t$b #Ausgabe von Häufigkeit und Zeichen, durch Tab getrennt

Dies funktioniert in der Bash, wahrscheinlich aber nicht in jeder Shell, da 
sich echo dort z.T. anders verhält.


Gruß,
Pascal


signature.asc
Description: This is a digitally signed message part.


[Neo] Neues Auswerteprogramm ausw4.py

2009-12-03 Diskussionsfäden Ulf Bro
Ich stelle ein neues Auswertungsprogramm für Tastaturen vor. Es ist so
blitzschnell, dass man keine Laufzeit überhaupt wahrnimmt. Man drückt
also Enter und schwupp ist es fertig.

Man braucht keinen Textkörper für dieses Auswerteprogramm. Das Programm
benötigt allerdings zwei Daten-Dateien, mit den Namen buchstaben.txt
und bigramme.txt. Jede dieser Dateien muss in jeder Zeile eine Zahl
haben, die die Häufigkeit angibt, und einen Buchstaben bzw. ein Bigramm.

Die Tastaturen werden wie in den bisherigen Auswerteprogramme in einer
Datei namens tastaturen.txt – eine pro Zeile – angegeben. Man gibt
eine Tastatur an, wie bisher, indem man jede Taste einmal drückt,
angefangen mit der oberen Reihe links und endend mit der unteren Reihe
rechts. Jede Tastatur muss genau 32 Zeichen enthalten, nämlich die 30
deutschen Buchstaben und Punkt und Komma.

Das Programm gibt in dieser Version (ausw4.py) keine Gesamtwertung über
die Tastatur ab. Es hat sich nämlich in der manuellen Tastaturbastelei
als nicht hilfreich erwiesen. Wenn der Bastler etwas macht – etwa 2 oder
mehr Buchstaben vertauscht, dann guckt er typisch nach den Auswirkungen,
die diese Änderung bewirkt. Eine veränderte Buchstabenlage? Mehr
Fingerkollisionen? Die Gesamtwertung spielt da eine untergeordnete
Rolle.

Einerseits braucht man eine zusammenfassende Wertung der Buchstabenlage.
Das geschieht, wie in vorhergehenden Mails ausgiebig erörtert, durch
Vergabe von Strafpunkten für bestimmte Lagen. Jede Lage hat eine Anzahl
Strafpunkte zugeordnet.

5 3 3 3 4 4 3 3 3 5 7
1 0 0 0 2 2 0 0 0 1 7
6 5 5 5 7 7 5 5 5 6

Die Punkte werden wie oben angegeben vergeben. Der Python-Quelltext
dokumentiert genau, wie diese Punkte vergeben werden. Jeder, der Lust
hat, kann den Programmcode ändern. Ich bitte zu bemerken, dass man nicht
ganzzahlige Punkte vergeben muss! Wer einen größeren Spielraum möchte –
was in den Diskussionen immer wieder geäußert wurde – kann auch 2.5
(bitte Dezimalpunkt benutzen) oder etwa 5.183 Punkte vergeben.

Es wurde auch gelegentlich bemängelt, dass ich bei meinen Bewertungen zu
wenig Rücksicht auf Bigramme nehme. Das ist selbstverständlich Quatsch
gewesen, denn ich habe Dinge berücksichtigt, die darüber hinaus gehen.
Diesmal wird es so eine Kritik nicht geben. Das Programm nutzt
ausschließlich Bigramme für die Bewertung. Das geschieht in dieser
Version folgendermaßen:

Wenn die erste Buchstabentaste gedrückt wird, wird entweder die
Leertaste folgen (ein Einzelbuchstabe) oder es folgt ein weiterer
Buchstabe (ein Bi- oder Polygramm). Der nächste Buchstabe kann entweder
von der anderen Hand getippt werden, dann haben wir einen Handwechsel.
Oder er wird von der gleichen Hand getippt. Dann unterscheiden wir in
dieser Version drei Fälle: Der gleiche Finger wird benutzt – dann haben
wir eine Fingerwiederholung – oder ein weiter mittig befindtlicher
Finger wird benutzt – dann ist es eine Einwärtsbewegung – oder ein
weiter seitlich belegener Finger wird benutzt, und dann haben wir eine
Auswärtsbewegung. Da es keine weiteren Fälle gibt, können die
beschriebenen Fälle als Prozent ausgedrückt werden, wobei die Summe dann
immer 100 % wird.



Es ist durchaus möglich, weitere Ergebnisse zu berechnen. Diese ist aber
die erste Version von diesem Typ von Auswerteprogramm, die ich
geschrieben habe, und ich bin ganz am Anfang damit.

Amerikanische Tastaturbastler haben mir versichert, dass die Benutzung
von Python für diesen Zweck nicht möglich ist, weil Python zu langsam
ist.



Da man keinen Textkörper mehr braucht, kann jeder seine
Buchstabenhäufigkeiten und Bigrammhäufigkeiten beziehen, wo er will, sei
es beim Militär, Universitätsinstituten, Internet usw.

Man kann eine Buchstabenhäufigkeitstabelle buchstaben.txt erstellen,
indem man unter Linux eingibt:

cat textkoerper.txt | tr '[:upper:]' '[:lower:]' | grep -o 
'[abcdefghijklmnopqrstuvwxyzäöüß,\.]\{1\}' | sort | uniq -c | sort -nr 
buchstaben.txt

Man kann eine Bigrammtabelle bigramme.txt erstellen, indem man unter
Linux eingibt:

cat textkoerper.txt | tr '[:upper:]' '[:lower:]' | grep -o 
'[abcdefghijklmnopqrstuvwxyzäöüß,\.]\{2\}' | sort | uniq -c | sort -nr 
bigramme.txt



Und jetzt zum mehr Spannenden: Was ergibt das Programm bei bekannten
Tastaturen?

===
Qwertz:

qwert zuiopü
asdfg hjklöä
yxcvb nm,.ß
Lagepunkte309
Fingerwiederholung 14.196 %
Handwechsel... 51.275 %
Einwärtsbewegung.. 16.090 %
Auswärtsbewegung.. 18.439 %

Wir sehen hier, dass die Vergabe von Lagepunkten etwas arbiträr ist.
Merken wir uns die 309. Jeder, der eine Verbesserung machen will, muss
da eine niedrigere Zahl haben. Merken wir uns die anderen Werte auch.

===
Ristome:

qproc btdwjö
zlani uehsfy
xvgmk äüß,.
Lagepunkte170
Fingerwiederholung 15.178 %
Handwechsel... 55.448 %
Einwärtsbewegung.. 17.826 %
Auswärtsbewegung.. 11.549 %

Die preisgekrönte Tastatur aus Jugend Forscht hat tatsächlich
geschafft, eine bessere Buchstabenlage zu bekommen. 15 %

Re: [Neo] Neues Auswerteprogramm ausw4.py

2009-12-03 Diskussionsfäden Pascal Hauck
Am Donnerstag, 3. Dezember 2009 17:16:22 schrieb Ulf Bro:
  Jede Lage hat eine Anzahl Strafpunkte zugeordnet.
 
 5 3 3 3 4 4 3 3 3 5 7
 1 0 0 0 2 2 0 0 0 1 7
 6 5 5 5 7 7 5 5 5 6
 
 Die Punkte werden wie oben angegeben vergeben. Der Python-Quelltext
 dokumentiert genau, wie diese Punkte vergeben werden. Jeder, der Lust
 hat, kann den Programmcode ändern. Ich bitte zu bemerken, dass man nicht
 ganzzahlige Punkte vergeben muss!

Ich werde bei nächster Gelegenheit diesbezüglich die Werte veröffentlichen, die 
durch eine geheime Umfrage unter Neo‑Tippern zustande gekommen ist und sich 
von dieser zum Teil deutlich unterscheidet.
Die Flexibilität eines Auswertungsprogramms ist hier also sehr wesentlich.

Ein Dank an Ulf für diese Arbeit. Solche Statistiken sind essentielle 
Grundlage für einen Anfang der Entwicklungsreihe Neo3, die nun bereits als im 
Gange angesehen werden darf.


Gruß,
Pascal


signature.asc
Description: This is a digitally signed message part.