Am Thu, 03 Dec 2009 17:16:21 +0100
schrieb Ulf Bro <[email protected]>:

> 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.

Ausser mit carpalx (Installation veralteter Perl-Module bereitete
Probleme | carpalx vermochte ich die Umlaute nicht vollständig
beizubringen, denn meine Programmiererfahrung ist hoffnungslos
veraltet) habe ich mich mit dem Auswerten von Tastenbelegungen kaum
auseinander gesetzt. Dazu werde ich vorerst kaum kommen, obschon das
Thema mich interessiert.

Dennoch seien Fragen als Anregung im Hinblick auf den weiteren Ausbau
des Auswerteprogramms gestellt. Sofern unsinnige Fragen oder Anregungen
darunter sind, die darauf zurückzuführen sind, das Programm nicht
ausprobiert zu haben (sorry), betrachte sie als
irrelevant.

buchstaben.txt, bigramme.txt:
Ist die Angabe von ausschließlich absoluten Häufigkeiten (ganzzahlig)
vorgesehen oder können die Zeilen auch mit relativen Häufigkeiten (mit
Punkt als Dezimaltrennzeichen) beginnen?

Wird als Trennzeichen genau eine Leerstelle genutzt, oder würden
mehrere Leerstellen als ein Trennzeichen ausgewertet?

Den Kommentar im Quelltext interpretiere ich so, dass auch mehrere
Leerzeichen als Trennzeichen zwischen dem Häufigkeitswert und dem/den
zu untersuchenden Zeichen möglich sind. Falls man erfahren möchte, wie
sich die Belegung des Leerzeichens als häufigstes Zeichen im Hauptfeld
auswirken könnte, könnten die mit einem Leerzeichen beginnenden
Bigramme nicht erfasst werden (in buchstaben.txt (bzw. zeichen.txt) und
bigramme.txt).

Praktisch für den weiteren Ausbau des Auswerteprogramms wäre das Folgen
genau eines Trennzeichens (Tab erscheint mir praktischer, damit sich aus
Tabellenkalkulationsprogrammen kopierte Listen direkt verwenden lassen)
auf den absoluten bzw. relativen Häufigkeitswert.

Zitat aus dem Pyton-Quelltext:
> # Es ist klug, die Bigramm-Datei von Buchstabenwiederholungen
> # zu bereinigen, etwa "mm" oder ".."

Für den Anwender könnte es praktischer sein, die bigramme.txt nicht
um Doppelzeichen bereinigen zu müssen.
Gilt das nur für diese erste Version des Auswerteprogramms oder
müsste das bei zukünftigen Versionen immer beachtet werden?

> 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.

Wäre es möglich, eine Ebenen-Matrix einzuführen?
E[0] enthält T[0] bis T[31] für Ebene1,
E[1] enthält T[0] bis T[31] für Ebene2.
Oder:
T[0,0]:  (1, 1, 0, 5), # Eingabe für Ebene1
T[0,31]: (8, 6, 1, 6) # Eingabe für Ebene1
...
T[1,0]:  (1, 1, 0, 5), # Eingabe für Ebene2
T[1,31]: (8, 6, 1, 6) # Eingabe für Ebene2

Ausgabe bei Qwertz:
qwert zuiopü
asdfg hjklöä
yxcvb nm,.ß

QWERT ZUIOPÜ
ASDFG HJKLÖÄ
YXCVB NM;:?

Könnte es die Handeingabe ersparen, wenn eine vorhandene Datei
tastatur.txt eingelesen würde?

> 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

Das individuelle Anpassen an Strafpunkte könnte durch das Einlesen einer
Datei strafpunkte.txt geschehen, die für Strafpunkte jede Ebene enthält:
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

7 5 5 5 6  5 4 4 4 6 8
3 2 2 2 4  3 1 1 1 2 8
8 7 7 7 9  8 6 6 6 7

> Ich bitte zu bemerken, dass man nicht ganzzahlige Punkte vergeben
> muss!
Das gefällt mir sehr gut.

> 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 –

Im Quelltext wurde empfohlen, die Bigramme von Zeichenwiederholungen
zu bereinigen. Jetzt verstehe ich, warum (um Zeichenwiederholungen
nicht als Fingerwiederholung auszuwerten).
Wäre es möglich, für Zeichenwiederholungen eine Ausnahme hinzuzufügen,
damit sie nicht genauso wie eine Fingerwiederholung gehandhabt wird?

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

Offensichtlich holen sie für jede Auswertung die Daten aus deren
Textkorpora neu, was bei nicht kleinen Korpora natürlich lange
Auswertezeiten nach sich zieht. Da ist es klüger, statistische
Zusammenfassungen aus dem Textkorpus zu holen, und die Auswertungen auf
sie anzuwenden. Das hatte ich mir gewünscht, vermochte es aber selber
nicht umzusetzen. Vielen Dank für Deine Arbeit!
Einen eleganten Weg hast Du eingeschlagen.

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

Leerzeichen, Großbuchstaben und ;:? würde ich für schnelle
Untersuchungen damit erfassen wollen:
cat textkoerper.txt grep -o
'[ abcdefghijklmnopqrstuvwxyzäöüß,\.ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ?;:]\{1\}'
| sort | uniq -c | sort -nr > buchstaben.txt

Im Moment kann ich nicht ausprobieren. Bei mir funktioniert das \t in
verschiedenen regulären Ausdrücken nicht wie erhofft.
Kann als Trennzeichen zwischen absoluter Häufigkeit und dem
dazugehörigen Zeichen das Tabstop-Zeichen eingebaut werden?

Mir gefällt die eingeschagene Richtung der Auswertung sehr gut.

Mit netten Grüßen
Karl



Antwort per Email an