Python-Skript Update.
[wortliste.git] / skripte / python / MANIFEST
blob96ff9688d4f72d079d21bd56eb06cf5761de8b04
1 skripte/python
2 ==============
4 Vorwort
5 =======
7 Selbstdokumentierende Python-Module, Hilfsdateien und experimentelle Skripte
8 zur Arbeit mit der Wortliste.
10 Siehe Abschnitt `Arbeitsfluss`_ für einen Vorschlag zur Anwendung.
12 Das Programm PyLit_ kann die ausführbaren Dateien ``*.py`` reversibel in
13 Textdokumente ``*.py.txt`` konvertieren. Mit Docutils_ lassen sich aus den
14 in reStructuredText_ geschriebenen Texten Dokumentationen im HTML- oder
15 PDF-Format erstellen.
17 .. _PyLit: http://pypi.python.org/pypi/pylit
18 .. _`pylit.py`:
19    http://repo.or.cz/pylit.git/blob_plain/HEAD:/pylit.py
20 .. _reStructuredText: http://docutils.sourceforge.net/rst.html
21 .. _Docutils: http://docutils.sourceforge.net/rst.html
24 Unterverzeichnisse
25 ==================
27 patuse/
28 -------
30 Anwendungen der mit `patgen` generierten Pattern.
32 hyphenation.py
33   Hyphenation using a pure Python implementation of Frank Liang's algorithm.
35   This module provides a class to hyphenate words.
36   Verwendet in hyphenate_neueintraege.py
38   Command-line usage: ``./hyphenation.py [options] [words to be hyphenated]``
40 long_s_conversion.py
41   Rund-S nach Lang-S Wandlung über "hyphenation patterns".
43   Aufruf: siehe ``./long_s_conversion.py -h``
46 skripte/python/edit_tools
47 -------------------------
49 Skripte zur Arbeit mit der Wortliste
50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 wortliste.py
53   Python-Modul für die Arbeit mit der `Wortliste`.
54   Wird von den anderen Python-Skripten importiert.
56   Aufruf mit ``python wortliste.py`` startet einen
57   Test der Werkzeuge und der inneren Konsistenz der Wortliste
58   (Doppeleinträge, Übereinstimmung Schlüssel-Trennmuster).
61 (Trennstellenkategorisierung, Neueinträge, Korrekturen)
63 Siehe auch den Abschnitt `Arbeitsfluss`_ am Ende dieses Dokumentes.
65 .. Achtung:: Experimentell
67   Die Skripte wurden für die eigene Arbeit mit der Wortliste entwickelt und
68   erfordern zum Teil Anpassungen im Quelltext, eine gewisse Einarbeitung,
69   Lesen der enthaltenen Dokumentation und gegebenenfalls Rücksprachen mit
70   dem Autor.
72 * Die Skripte können ohne Schaden anzurichten probiert werden, denn sie
73   ändern nicht direkt die Wortliste sondern erstellen eine Datei
74   ``wortliste.patch``.
76 * Die Änderungen können nach Korrekturlesen mittels ::
78     patch ../../wortliste < wortliste.patch
80   auf die Wortliste angewendet werden.
83 abgleich_endungen.py
84   Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher
85   Endung.
87   Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen``
88   definiert.
90 abgleich_neueintraege.py
91   Übertragen von Trennstellen aus (Teil-) Wörtern der "Wortliste"
92   auf neu aufzunehmende, ungetrennte Wörter oder
93   Einträge im Format der Wortliste (zum Test auf Mehrdeutigkeiten
94   oder Fehler).
95   
96   Hilfe und Details mit ::
97     
98     python abgleich_neueintraege.py --help
100   Die Ausgabe kann nach ``neu.todo`` gespeichert und (nach Durchsicht) mit
101   ``prepare_patch.py neu`` in die Wortliste eingepflegt werden, z.B. ::
103     python abgleich_neueintraege.py < neue-woerter.txt > todo.txt
105 abgleich_praefixe.py
106   Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Präfix
108   Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
109   kann (siehe Arbeitsfluss_).
111 abgleich_sprachvarianten.py
112   Abgleich der Trennstellen zwischen Sprachvarianten
114   Aufruf: ``python abgleich_sprachvarianten.py``
116   * Übertragen von kategorisierten Trennstellen zwischen Sprachvarianten
117     desselben Wortes, und/oder
118   * Zusammenfassen von Feldern mit gleichem Inhalt wenn das Ergebnis ein
119     wohlgeformter Eintrag ist.
120   * Ergänzen der Alternative bei Schluss ss/ß und sst/ßt.
122 abgleich_suffixe.py
123   Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Suffix.
125   Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
126   kann (siehe Arbeitsfluss_).
128 abgleich_teilwoerter.py
129   Übertragen von kategorisierten Trennstellen von Teilwörtern auf
130   Vorkommen dieser Teilwörter mit unkategorisierten Trennstellen.
132   Aufruf: ``python abgleich_teilwoerter.py``
134           Vorher in Zeile 26 ff. die gewünschte Sprachvariante
135           durch ein/auskommentieren wählen.
138 analyse.py
139   Sammeln und Sortieren von Teilwörtern
141   Aufruf: ``python analyse.py``
143           Vorher in Zeile 355 ff. die gewünschte Sprachvariante
144           durch ein/auskommentieren wählen.
146   Schreibt eine Liste der Teilwörter von in der Wortliste markierten
147   zusammengesetzten Wörtern mit den Häufigkeiten des Auftretens
148   in eine Datei ``teilwoerter-<Sprachtag>.txt``
149   (z.B. ``teilwoerter-de-1901.txt``).
151   Auf der Standardausgabe erscheint eine Zusammenfassung zum Stand der
152   Präfixauszeichnung.
154 expand_teilwoerter.py
155   Erweitern der Wortliste um Kombinationen von Teilwörtern
157   Zerlegen von Composita an den Wortfugen und Übernahme der Teile als
158   eigenständige Einträge.
160 hyphenate_neueintraege.py
161   Kategorisierte Trennung mit "hyphenation"-Algorithmus.
163   Benötigt Pattern-Dateien welche über die "make" Ziele
164   `make pattern-refo`, 
165   `make major pattern-refo`, 
166   `make fugen pattern-refo` und 
167   `make suffix pattern-refo` 
168   generiert werden können.
170   Aufruf: siehe ``./hyphenate_neueintraege.py -h``
172 prepare_patch.py
173   Helfer für kleine Editieraufgaben, u.a. entfernen von Doppeleinträgen,
174   Einsortieren neuer Einträge, Überschreiben mit korrigierten Einträgen, ...
175   Erstellt eine Patch-Datei.
177   Aufruf: siehe ``./prepare_patch.py -h``
179 test_teilwoerter.py
180   Test der Markierung von Komposita in der Wortliste
182 teilwoerter_*.txt
183   Liste der Teilwörter der Komposita in der `Wortliste`.
184   Erstellt mit ``analyse.py`` durch Trennen an "=".
185   Listet Häufigkeiten des Auftretens als:
187   :S: Einzelwort (Solitär)
188   :E: erstes Wort in Verbindungen
189   :M: mittleres Wort in Verbindungen
190   :L: letztes Wort in Verbindungen
192   Format:
194   * Teilwort mit Trennungen. Großschreibung wie Gesamtwort
195   * Leerraum (whitespace)
196   * Häufigkeiten in der Reihenfolge S;E;M;L
198   Beispiel:
200   Ho-se 1;0;0;7
203 vorsilben_in_teilwoertern.py
204   Spezialwerkzeug zur Präfixmarkierung.
206   Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden
207   kann.
209 wortfugen.py
210   Suche nach "Teilwortkandidaten" in der Wortliste.
212 wortteile/
213   Verzeichnis für Hilfsdateien (Daten/Text)
216 lang_s
217 ------
219 Lang-s Schreibung
221 s2long-s.py
222   Automatische Bestimmung der S-Schreibung auf Basis der Silbentrennung
223   in der `Wortliste der deutschsprachigen Trennmustermannschaft`.
225 de_Latf_quasihyph.py
226   Filter zum Wandeln von Wörtern mit Rund- und Lang-S in
227   Pseudo-Trennbeispiele (ausſagen -> aus-sagen)."""
229 long_s_quasihyph.py
230   Filter zum Wandeln von Wörtern mit langem S in
231   Pseudo-Trennbeispiele (ausſagen -> auss-agen, eſſen -> es-s-en).
234 Arbeitsfluss
235 ============
237 Trennstellenkategorisierung mit Hilfe der Python-Skripte,
238 2-stufiges Vorgehen:
240 * Erstellen einer Liste mit Teilwörtern (Zerlegung ausgezeichneter Komposita
241   an den Wortfugen "="):
243   - in `analyse.py` die gewünschte Sprachvariante ein-/auskommentieren.
245   - ``python analyse.py``
247   Die erstellte Wortliste ist ``teilwoerter-<Sprachtag>.txt``.
249 * Bearbeiten der generierten Datei
251   - im Texteditor (suchen/ersetzen, regexp-replace, ...)
253   - mit Skripten (``abgleich_praefixe.py``,
254                   ``abgleich_suffixe.py``,
255                   ``vorsilben_in_teilwoertern.py``)
257 * Rückübertragen der Korrekturen auf die Wortliste
259   - in `abgleich_teilwoerter.py` die gewünschte Sprachvariante und
260     Bearbeitungsfunktion ein-/auskommentieren.
262   - ``python abgleich_teilwoerter.py``
264   - Prüfen der Kontrollausgabe, ggf. Korrektur von ``wortliste.patch``.
266   - ``patch ../../wortliste < wortliste.patch``
269 Trennung unbekannter Wörter (2 Alternativen):
271 * Mit `abgleich_neueintraege.py` versuchen, ob Trennstellen durch Vergleich
272   mit vorhandenen Einträgen bestimmt werden können. Liefert Vorschläge für
273   gewichtete, kategorisierte Einträge, die nach Durchsicht und Korrekturen
274   mit prepare_patch.py eingepflegt werden können.
276 * Mit `hyphenate_neueintraege.py` Trennstellen durch Anwendung des
277   TeX-Algorithmus bestimmen. Liefert kategorisierte Einträge ohne Wichtung,
278   die nach Durchsicht und Korrekturen mit prepare_patch.py eingepflegt
279   werden können.