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``
158 Schreibe getrennte Wörter für eine Sprachvarante.
160 Aufruf: siehe ``./sprachauszug.py -h``
164 python sprachauszug.py < wortliste > wortliste-de
167 Wandlung zwischen Lang- und Kurzformat der Wortliste
171 umformatierung.py < kurzeintraege > langeintraege
173 umformatierung.py -k < langeintraege > kurzeintraege
176 Python-Modul für die Arbeit mit der `Wortliste`.
177 Wird von den anderen Python-Skripten importiert.
179 Aufruf mit ``python wortliste.py`` startet einen
180 Selbst-Test der Werkzeuge und der inneren Konsistenz der Wortliste
181 (Doppeleinträge, Übereinstimmung Schlüssel-Trennmuster).
190 Automatische Bestimmung der S-Schreibung auf Basis der Silbentrennung
191 in der `Wortliste der deutschsprachigen Trennmustermannschaft`.
194 Filter zum Wandeln von Wörtern mit Rund- und Lang-S in
195 Pseudo-Trennbeispiele (ausſagen -> aus-sagen)."""
198 Filter zum Wandeln von Wörtern mit langem S in
199 Pseudo-Trennbeispiele (ausſagen -> auss-agen, eſſen -> es-s-en).
208 prepare-ligature-wordlist.py
210 Erstelle eine Patgen-Wortliste für Ligaturmuster.
212 Dieses Skript erstellt aus einer Wortliste im Format des
213 Trennmuster-Projekts eine Wortliste für Patgen, um Ligaturmuster zu
214 erzeugen. Die Muster markieren dann die Stellen, an denen Ligaturen
215 unterdrückt werden müssen.
218 ``python prepare-ligature-wordlist.py input.utf8.txt output.utf8.txt log.utf8.txt``
222 Ausführliche Dokumentation für prepare-ligature-wordlist.py
226 trennstellenkategorisierung
227 ---------------------------
229 Skripte zur Trennstellenkategorisierung
230 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 Nur noch von historischer Bedeutung. Mit diesen Skripten wurden unspezifische
233 Trennstellen (·) in "kategorisierte Trennstellen" (-, =, <, >) umgewandelt.
238 Trennstellenkategorisierung mit Hilfe der Python-Skripte,
241 * Erstellen einer Liste mit Teilwörtern (Zerlegung ausgezeichneter Komposita
242 an den Wortfugen "="):
244 - in `analyse.py` die gewünschte Sprachvariante ein-/auskommentieren.
246 - ``python analyse.py``
248 Die erstellte Wortliste ist ``teilwoerter-<Sprachtag>.txt``.
250 * Bearbeiten der generierten Datei
252 - im Texteditor (suchen/ersetzen, regexp-replace, ...)
254 - mit Skripten (``abgleich_praefixe.py``,
255 ``abgleich_suffixe.py``,
256 ``vorsilben_in_teilwoertern.py``)
258 * Rückübertragen der Korrekturen auf die Wortliste
260 - in `abgleich_teilwoerter.py` die gewünschte Sprachvariante und
261 Bearbeitungsfunktion ein-/auskommentieren.
263 - ``python abgleich_teilwoerter.py``
265 - Prüfen der Kontrollausgabe, ggf. Korrektur von ``wortliste.patch``.
267 - ``patch ../../wortliste < wortliste.patch``
269 ---------------------------------------------------------------------------
272 Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher
275 Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen``
279 Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Präfix
281 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
282 kann (siehe Arbeitsfluss_).
284 abgleich_sprachvarianten.py
285 Abgleich der Trennstellen zwischen Sprachvarianten
287 Aufruf: ``python abgleich_sprachvarianten.py``
289 * Übertragen von kategorisierten Trennstellen zwischen Sprachvarianten
290 desselben Wortes, und/oder
291 * Zusammenfassen von Feldern mit gleichem Inhalt wenn das Ergebnis ein
292 wohlgeformter Eintrag ist.
293 * Ergänzen der Alternative bei Schluss ss/ß und sst/ßt.
296 Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Suffix.
298 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
299 kann (siehe Arbeitsfluss_).
301 abgleich_teilwoerter.py
302 Übertragen von kategorisierten Trennstellen von Teilwörtern auf
303 Vorkommen dieser Teilwörter mit unkategorisierten Trennstellen.
305 Aufruf: ``python abgleich_teilwoerter.py``
307 Vorher in Zeile 26 ff. die gewünschte Sprachvariante
308 durch ein/auskommentieren wählen.
311 Sammeln und Sortieren von Teilwörtern
313 Aufruf: ``python analyse.py``
315 Vorher in Zeile 355 ff. die gewünschte Sprachvariante
316 durch ein/auskommentieren wählen.
318 Schreibt eine Liste der Teilwörter von in der Wortliste markierten
319 zusammengesetzten Wörtern mit den Häufigkeiten des Auftretens
320 in eine Datei ``teilwoerter-<Sprachtag>.txt``
321 (z.B. ``teilwoerter-de-1901.txt``).
323 Auf der Standardausgabe erscheint eine Zusammenfassung zum Stand der
327 Test der Markierung von Komposita in der Wortliste
330 vorsilben_in_teilwoertern.py
331 Spezialwerkzeug zur Präfixmarkierung.
333 Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
337 Suche nach "Teilwortkandidaten" in der Wortliste.
340 Liste der Teilwörter der Komposita in der `Wortliste`.
341 Erstellt mit ``analyse.py`` durch Trennen an "=".
342 Listet Häufigkeiten des Auftretens als:
344 :S: Einzelwort (Solitär)
345 :E: erstes Wort in Verbindungen
346 :M: mittleres Wort in Verbindungen
347 :L: letztes Wort in Verbindungen
351 * Teilwort mit Trennungen. Großschreibung wie Gesamtwort
352 * Leerraum (whitespace)
353 * Häufigkeiten in der Reihenfolge S;E;M;L
360 Verzeichnis für Hilfsdateien (Daten/Text)