| | 1 | = SortWords = |
| | 2 | |
| | 3 | [[PageOutline]] |
| | 4 | |
| | 5 | SortWords ist ein Bash-Skript, dass eine Liste von Wörtern nach ihren auftretenden Buchstaben sortiert. Damit können Buchstaben in KTouch-Lektionen der Reihe nach eingeführt werden und in jeder Stufe nur die Wörter abgefragt werden, deren Buchstaben bereits bekannt sind. |
| | 6 | |
| | 7 | Die [wiki:KTouchFuerNeoEinrichten#Lektionen Lektion] ''Deutsch (Neo2 10.000 Wörter)'' wurde mit diesem Skript erstellt. |
| | 8 | |
| | 9 | Unter Linux lässt sich das Skript ohne weitere Vorbereitung ausführen, unter Windows kann man es mit Hilfe von [http://www.cygwin.com/ cygwin] auch ausführen. |
| | 10 | |
| | 11 | == Download == |
| | 12 | Alle Dateien befinden sich im Repository unter [source:ktouch/tools/sortWords]. Dabei sind nur folgende Dateien zum Ausführen notwendig: |
| | 13 | |
| | 14 | * [export:ktouch/tools/sortWords/in.txt in.txt] - Eine beliebige Textdatei mit den zu sortierenden Wörtern. |
| | 15 | * [export:ktouch/tools/sortWords/key.conf key.conf] - Konfigurationsdatei mit der Reihenfolge der Buchstaben |
| | 16 | * [export:ktouch/tools/sortWords/sortWords.sh sortWords.sh] - Das Skript selbst |
| | 17 | |
| | 18 | Die beiden `out`-Dateien sind Beispiel-Ausgaben. |
| | 19 | |
| | 20 | == Einrichten == |
| | 21 | === in.txt === |
| | 22 | Zum Einrichten lässt sich einerseits die Eingabedatei [source:ktouch/tools/sortWords/in.txt in.txt] beliebig wählen. Sie enthält die zu sortierenden Wörter und muss UTF-8 kodiert sein. Die Wörter müssen durch eine beliebige Anzahl von Whitespacezeichen (also Windows-Zeilentrennzeichen, Linux-Zeilentrennzeichen, Leerzeichen, Tabulator, ...) von einander getrennt sein. Die Datei im Repository enthält die 10.000 häufigsten Wörter der deutschen Sprache. Quelle: http://wortschatz.uni-leipzig.de/html/wliste.html |
| | 23 | |
| | 24 | === key.conf === |
| | 25 | Zum anderen lässt sich über die Datei [source:ktouch/tools/sortWords/key.conf key.conf] die Reihenfolge der in der KTouch-Lektion zu erlernenden Buchstaben festlegen. Zum editieren der Datei sind in ihr einige Kommentare als Hilfe gestellt. Die vorgegebene Datei ist auf die [http://www.neo-layout.org/grafik/tastatur3d/hauptfeld/tastatur_neo_Ebene1.png 1.Ebene] der Neo2-Tastaturbelegung eingestellt. |
| | 26 | |
| | 27 | == Syntax == |
| | 28 | Nach dem Download lässt sich die Syntax über den Befehl |
| | 29 | {{{ |
| | 30 | ./sortWords.sh --help |
| | 31 | }}} |
| | 32 | einblenden: |
| | 33 | {{{ |
| | 34 | Usage: ./sortWords.sh [OPTIONEN] |
| | 35 | Liest aus der Datei "in.txt" alle Wörter ein und gibt diese sortiert nach der in |
| | 36 | der Datei "key.conf" festgelegten Reihenfolge weider aus. |
| | 37 | Sie werden einmal in eine Klartextdatei "out.txt" und in eine KTouch-Lektion |
| | 38 | "out.ktouch.xml" geschrieben. |
| | 39 | Dabei ist egal, wie die Worte in "in.txt" voneinander getrennt sind. |
| | 40 | (Windows-Zeilentrennzeichen, Linux-Zeilentrennzeichen, Leerzeichen, Tabulator, ...) |
| | 41 | |
| | 42 | -k berücksichtige nur komplett klein geschriebene Worte |
| | 43 | -w wandle alle Worte in klein-schreibeise um. Setzt automatisch die Option '-k' |
| | 44 | -e entfernt doppelt vorkommende Worte und sortiert dabei die Ergebnisliste nach |
| | 45 | dem Alphabet. Empfehlenswert in Verbindung mit der Option '-w', da hierbei zwei |
| | 46 | gleiche Worte auftreten können, die sich zuvor durch Groß/kleinschreibung |
| | 47 | unterschieden haben |
| | 48 | -f:<SPALTEN> faltet die Ausgabedatei "out.txt" nach der angegebenen Anzahl von |
| | 49 | Spalten. Standard=80 |
| | 50 | -z:<ZEILEN> maximale Anzahl an Zeilen pro Trainings-Lektion-Stufe. |
| | 51 | (WARNUNG: Ausführung dauert sehr lange!) |
| | 52 | |
| | 53 | Beispiel: ./sortWords.sh -w -e -z:4 |
| | 54 | }}} |
| | 55 | |
| | 56 | Bei den Optionen ist zu beachten: |
| | 57 | * `-f` bestimmt die maximale Zeilenlänge in jeder Stufe. Sofern `-f` nicht angegeben ist, wird das Skript mit dem Standardwert `-f:80` ausgeführt |
| | 58 | * Ohne der Option `-z` wird pro Stufe genau ein neuer Buchstabe eingeführt. Dadurch kann aber bei einer Eingabeliste von vielen Tausend Wörtern schnelle eine Stufe der Lektion aus mehreren Hundert Wörtern bestehen. Mit `-z:<ZEILE>` wird die maximale Anzahl an Zeilen pro Stufe begrenzt auf `<ZEILE>`. Die Ausführung des Skriptes dauert mit dieser Option unverhältnismäßig lange, da sie schlecht implementiert ist (ich habe es halt nicht besser hinbekommmen ;-) ) |
| | 59 | |
| | 60 | == Ausführen == |
| | 61 | Es wird der in der Hilfe angegebene Beispiel-Aufruf ausgeführt: |
| | 62 | {{{ |
| | 63 | Beispiel: ./sortWords.sh -w -e -z:4 |
| | 64 | }}} |
| | 65 | mit den Logmeldungen: |
| | 66 | {{{ |
| | 67 | Zeichenreihenfolge wird geladen: Aus Datei "key.conf"...OK |
| | 68 | Quelldatei "in.txt" wird eingelesen...OK |
| | 69 | Wörter gesamt = 10170 |
| | 70 | Formatiere den Quelltext...OK |
| | 71 | Nach dem Filtern bleiben 9204 Wörter übrig. |
| | 72 | |
| | 73 | Buchstaben | Anzahl der neuen Wörter |
| | 74 | ===================================== |
| | 75 | en | 3 |
| | 76 | ar | 9 |
| | 77 | ud | 54 |
| | 78 | it | 141 |
| | 79 | l | 109 |
| | 80 | g | 281 |
| | 81 | c | 10 |
| | 82 | h | 318 |
| | 83 | o | 180 |
| | 84 | s | 926 |
| | 85 | w | 376 |
| | 86 | k | 476 |
| | 87 | p | 367 |
| | 88 | m | 803 |
| | 89 | z | 492 |
| | 90 | b | 1163 |
| | 91 | ä | 441 |
| | 92 | , | 0 |
| | 93 | v | 653 |
| | 94 | f | 1109 |
| | 95 | ö | 245 |
| | 96 | . | 0 |
| | 97 | x | 51 |
| | 98 | q | 22 |
| | 99 | ü | 514 |
| | 100 | j | 165 |
| | 101 | ß | 216 |
| | 102 | y | 80 |
| | 103 | |
| | 104 | Falte die Datei "out.txt" nach spätestens 80 Spalten...OK |
| | 105 | Trainings-Lektions-Stufen werden auf 4 Zeilen begrenzt............................OK |
| | 106 | Erstelle KTouch-Lektion "out.ktouch.xml"...OK |
| | 107 | }}} |
| | 108 | |
| | 109 | In Verbindung mit den beiden vorgegebenen Dateien [source:ktouch/tools/sortWords/in.txt in.txt] und [source:ktouch/tools/sortWords/key.conf key.conf] erstellt das Skript die bereits im Repository hinterlegten Ausgabedateien: |
| | 110 | * [source:ktouch/tools/sortWords/out.txt out.txt] - Die sortierten Wörter in einem Klartextformat |
| | 111 | * [source:ktouch/tools/sortWords/out.ktouch.xml out.ktouch.xml] - Die sortierten Wörter als KTouch-Lektion |
| | 112 | |
| | 113 | Dabei bewirkten die verwendeten Optionen: |
| | 114 | * Durch die Option `-w` wurden alle Wörter in kleinschreibweise umgewandelt, damit zum vereinfachten Lernen von Neo2 der Fokus auf den neu positionierten Buchstaben liegt. |
| | 115 | * Die Eingabeliste `in.txt` ist nicht besonders gut bearbeitet. Es wiederholen sich ständig Wörter. Mit der Option `-e` werden die doppelten Einträge entfernt und die Liste (als Nebeneffekt) nach dem Alphabet sortiert. Dadurch werden Worte mit ähnlichem Anfang direkt hintereinander getippt. Beispiel: |
| | 116 | {{{ |
| | 117 | trage tragen training traurig |
| | 118 | }}} |
| | 119 | Als Vorteil prägt man sich beim Schreiben die zu tippende Buchstabenfolge besser ein. [[BR]] |
| | 120 | * Mit der Option `-z:4` wird verhindert, dass eine Stufe aus mehreren Hundert Wörtern bestehen kann. Pro Stufe sind also 4 Zeilen zu je höchstens 80 Zeichen erlaubt. Das bläht die Lektion auf annährend 300 Stufen auf. |
| | 121 | |
| | 122 | ---- |
| | 123 | |
| | 124 | Siehe auch: [wiki:Tipptrainer], [wiki:KTouchFuerNeoEinrichten], [wiki:EigeneKTouchLektionenSchreiben] |