7 Selbstdokumentierende Python-Module, Hilfsdateien und experimentelle Skripte
8 zur Arbeit mit der Wortliste.
10 Das Programm PyLit_ kann die ausführbaren Dateien ``*.py`` reversibel in
11 Textdokumente ``*.py.txt`` konvertieren. Mit Docutils_ lassen sich aus den
12 in reStructuredText_ geschriebenen Texten Dokumentationen im HTML- oder
15 .. _PyLit: http://pypi.python.org/pypi/pylit
17 http://repo.or.cz/pylit.git/blob_plain/HEAD:/pylit.py
18 .. _reStructuredText: http://docutils.sourceforge.net/rst.html
19 .. _Docutils: http://docutils.sourceforge.net/rst.html
23 strukturiert den Aufruf der Skripte als Python-(Unter-)Module.
33 Anwendungen der mit `patgen` generierten Pattern.
36 Implementation des von Frank Liang entwickelten Algorithmus in Python.
37 Stellt eine Klasse zum Trennen von Wörtern bereit.
39 Geeignet zum Test der Trennmuster, als Stand-Alone Trennprogramm oder
40 Python-Trennmodul. Verwendet in hyphenate_neueintraege.py
42 Command-line usage: ``./hyphenation.py [options] [words to be hyphenated]``
45 Rund-S nach Lang-S Wandlung über "hyphenation patterns".
47 Aufruf: siehe ``./long_s_conversion.py -h``
52 Skripte zur Arbeit mit der Wortliste
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 Formatwandlung, Neueinträge, Korrekturen
57 .. Achtung:: Experimentell
59 Die Skripte wurden für die eigene Arbeit mit der Wortliste entwickelt und
60 erfordern zum Teil Anpassungen im Quelltext, eine gewisse Einarbeitung,
61 Lesen der enthaltenen Dokumentation und gegebenenfalls Rücksprachen mit
64 Die meisten Skripte ändern nicht direkt die Wortliste sondern erstellen
65 eine Datei ``wortliste.patch``.
67 Die Änderungen können nach Korrekturlesen mittels ::
69 patch ../../wortliste < wortliste.patch
71 auf die Wortliste angewendet werden.
73 Trennung unbekannter Wörter
74 """""""""""""""""""""""""""
76 * Mit `abgleich_neueintraege.py` versuchen, ob Trennstellen durch Vergleich
77 mit vorhandenen Einträgen bestimmt werden können. Liefert Vorschläge für
78 gewichtete, kategorisierte Einträge, die nach Durchsicht und Korrekturen
79 mit prepare_patch.py eingepflegt werden können.
81 * Mit `hyphenate_neueintraege.py` Trennstellen durch Anwendung des
82 TeX-Algorithmus bestimmen. Liefert kategorisierte Einträge ohne Wichtung,
83 die nach Durchsicht und Korrekturen mit prepare_patch.py eingepflegt
86 Die beiden Ansatze können kombiniert werden::
88 ./abgleich_neueintraege.py < ungetrennt.txt > trennvorschläge.txt
90 ./hyphenate_neueintraege.py < trennvorschläge.txt > trennvorschläge2.txt
92 Die Datei ``trennvorschläge2.txt`` enthält dann nach Übereinstimmung der
93 Ergebnisse beider Verfahren sortierte Trennvorschläge. Insbesondere die
94 nicht übereinstimmend getrennten Wörter weisen auf Handlungsbedarf hin.
96 -------------------------------------------------------------------------
99 abgleich_neueintraege.py
100 Übertragen von Trennstellen aus (Teil-) Wörtern der "Wortliste"
101 auf neu aufzunehmende, ungetrennte Wörter oder
102 Einträge im Format der Wortliste (zum Test auf Mehrdeutigkeiten
105 Hilfe und Details mit ::
107 python abgleich_neueintraege.py --help
109 Die Ausgabe kann nach ``neu.todo`` gespeichert und (nach Durchsicht) mit
110 ``prepare_patch.py neu`` in die Wortliste eingepflegt werden, z.B. ::
112 python abgleich_neueintraege.py < neue-woerter.txt > todo.txt
116 vereinfachte Filter-Variante von ``prepare_patch.py``.
118 Aufruf: siehe ``./edit_wortliste.py -h``
121 expand_teilwoerter.py
122 Erweitern der Wortliste um Kombinationen von Teilwörtern
124 Zerlegen von Composita an den Wortfugen und Übernahme der Teile als
125 eigenständige Einträge.
127 Schreibt nicht in der "wortliste" vorhandene Einträge in die Cache-Datei
128 "wortliste-expandiert".
130 Im Quelltext kann eingestellt werden, welche Einträge ausgefiltert werden.
132 Wird von ``abgleich_neueintraege.py`` genutzt.
135 hyphenate_neueintraege.py
136 Kategorisierte Trennung mit "hyphenation"-Algorithmus.
138 Aufruf: siehe ``./hyphenate_neueintraege.py -h``
140 Benötigt Pattern-Dateien welche über die "make" Ziele
141 ``make pattern-refo``,
142 ``make major pattern-refo``,
143 ``make fugen pattern-refo`` und
144 ``make suffix pattern-refo``
145 generiert werden können.
147 Der Hilfetext zeigt das Erstell-Datum der verwendeten Muster.
151 Helfer für kleine Editieraufgaben, u.a. entfernen von Doppeleinträgen,
152 Einsortieren neuer Einträge, Überschreiben mit korrigierten Einträgen, ...
153 Erstellt eine Patch-Datei.
155 Aufruf: siehe ``./prepare_patch.py -h``
159 Schreibe getrennte Wörter für eine Sprachvarante.
161 Aufruf: siehe ``./sprachauszug.py -h``
165 python sprachauszug.py < wortliste > wortliste-de
167 python sprachauszug.py -k < wslt > wortliste-de
171 Python-Modul für die Arbeit mit der `Wortliste`.
172 Wird von den anderen Python-Skripten importiert.
174 Aufruf mit ``python wortliste.py`` startet einen
175 Selbst-Test der Werkzeuge und der inneren Konsistenz der Wortliste
176 (Doppeleinträge, Übereinstimmung Schlüssel-Trennmuster).
185 Automatische Bestimmung der S-Schreibung auf Basis der Silbentrennung
186 in der `Wortliste der deutschsprachigen Trennmustermannschaft`.
189 Filter zum Wandeln von Wörtern mit Rund- und Lang-S in
190 Pseudo-Trennbeispiele (ausſagen -> aus-sagen)."""
193 Filter zum Wandeln von Wörtern mit langem S in
194 Pseudo-Trennbeispiele (ausſagen -> auss-agen, eſſen -> es-s-en).
203 prepare-ligature-wordlist.py
205 Erstelle eine Patgen-Wortliste für Ligaturmuster.
207 Dieses Skript erstellt aus einer Wortliste im Format des
208 Trennmuster-Projekts eine Wortliste für Patgen, um Ligaturmuster zu
209 erzeugen. Die Muster markieren dann die Stellen, an denen Ligaturen
210 unterdrückt werden müssen.
213 ``python prepare-ligature-wordlist.py input.utf8.txt output.utf8.txt log.utf8.txt``
217 Ausführliche Dokumentation für prepare-ligature-wordlist.py
221 trennstellenkategorisierung
222 ---------------------------
224 Skripte zur Trennstellenkategorisierung
225 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
227 Nur noch von historischer Bedeutung. Mit diesen Skripten wurden unspezifische
228 Trennstellen (·) in "kategorisierte Trennstellen" (-, =, <, >) umgewandelt.
233 Trennstellenkategorisierung mit Hilfe der Python-Skripte,
236 * Erstellen einer Liste mit Teilwörtern (Zerlegung ausgezeichneter Komposita
237 an den Wortfugen "="):
239 - in `analyse.py` die gewünschte Sprachvariante ein-/auskommentieren.
241 - ``python analyse.py``
243 Die erstellte Wortliste ist ``teilwoerter-<Sprachtag>.txt``.
245 * Bearbeiten der generierten Datei
247 - im Texteditor (suchen/ersetzen, regexp-replace, ...)
249 - mit Skripten (``abgleich_praefixe.py``,
250 ``abgleich_suffixe.py``,
251 ``vorsilben_in_teilwoertern.py``)
253 * Rückübertragen der Korrekturen auf die Wortliste
255 - in `abgleich_teilwoerter.py` die gewünschte Sprachvariante und
256 Bearbeitungsfunktion ein-/auskommentieren.
258 - ``python abgleich_teilwoerter.py``
260 - Prüfen der Kontrollausgabe, ggf. Korrektur von ``wortliste.patch``.
262 - ``patch ../../wortliste < wortliste.patch``
264 ---------------------------------------------------------------------------
267 Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher
270 Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen``
274 Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Präfix
276 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
277 kann (siehe Arbeitsfluss_).
279 abgleich_sprachvarianten.py
280 Abgleich der Trennstellen zwischen Sprachvarianten
282 Aufruf: ``python abgleich_sprachvarianten.py``
284 * Übertragen von kategorisierten Trennstellen zwischen Sprachvarianten
285 desselben Wortes, und/oder
286 * Zusammenfassen von Feldern mit gleichem Inhalt wenn das Ergebnis ein
287 wohlgeformter Eintrag ist.
288 * Ergänzen der Alternative bei Schluss ss/ß und sst/ßt.
291 Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Suffix.
293 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
294 kann (siehe Arbeitsfluss_).
296 abgleich_teilwoerter.py
297 Übertragen von kategorisierten Trennstellen von Teilwörtern auf
298 Vorkommen dieser Teilwörter mit unkategorisierten Trennstellen.
300 Aufruf: ``python abgleich_teilwoerter.py``
302 Vorher in Zeile 26 ff. die gewünschte Sprachvariante
303 durch ein/auskommentieren wählen.
306 Sammeln und Sortieren von Teilwörtern
308 Aufruf: ``python analyse.py``
310 Vorher in Zeile 355 ff. die gewünschte Sprachvariante
311 durch ein/auskommentieren wählen.
313 Schreibt eine Liste der Teilwörter von in der Wortliste markierten
314 zusammengesetzten Wörtern mit den Häufigkeiten des Auftretens
315 in eine Datei ``teilwoerter-<Sprachtag>.txt``
316 (z.B. ``teilwoerter-de-1901.txt``).
318 Auf der Standardausgabe erscheint eine Zusammenfassung zum Stand der
322 Test der Markierung von Komposita in der Wortliste
325 vorsilben_in_teilwoertern.py
326 Spezialwerkzeug zur Präfixmarkierung.
328 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
332 Suche nach "Teilwortkandidaten" in der Wortliste.
335 Liste der Teilwörter der Komposita in der `Wortliste`.
336 Erstellt mit ``analyse.py`` durch Trennen an "=".
337 Listet Häufigkeiten des Auftretens als:
339 :S: Einzelwort (Solitär)
340 :E: erstes Wort in Verbindungen
341 :M: mittleres Wort in Verbindungen
342 :L: letztes Wort in Verbindungen
346 * Teilwort mit Trennungen. Großschreibung wie Gesamtwort
347 * Leerraum (whitespace)
348 * Häufigkeiten in der Reihenfolge S;E;M;L
355 Verzeichnis für Hilfsdateien (Daten/Text)