Dokumentationsupdate.
[wortliste.git] / skripte / python / MANIFEST
blob6b5c6c0b29ca8a8b6895451a88714f60a18fc009
1 skripte/python
2 ==============
4 Vorwort
5 =======
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
13 PDF-Format erstellen.
15 .. _PyLit: http://pypi.python.org/pypi/pylit
16 .. _`pylit.py`:
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
22 __init__.py
23    strukturiert den Aufruf der Skripte als Python-(Unter-)Module.
26 Unterverzeichnisse
27 ==================
30 patuse/
31 -------
33 Anwendungen der mit `patgen` generierten Pattern.
35 hyphenation.py
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]``
44 long_s_conversion.py
45   Rund-S nach Lang-S Wandlung über "hyphenation patterns".
47   Aufruf: siehe ``./long_s_conversion.py -h``
50 edit_tools
51 ----------
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
62   dem Autor.
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
84   werden können.
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
103   oder Fehler).
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
115 edit_wortliste.py
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.
150 prepare_patch.py
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 sprachauszug.py
159   Schreibe getrennte Wörter für eine Sprachvarante.
161   Aufruf: siehe ``./sprachauszug.py -h``
163   Bsp.::
165      python sprachauszug.py < wortliste > wortliste-de
167      python sprachauszug.py -k < wslt > wortliste-de
170 wortliste.py
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).
179 lang_s
180 ------
182 Lang-s Schreibung
184 s2long-s.py
185   Automatische Bestimmung der S-Schreibung auf Basis der Silbentrennung
186   in der `Wortliste der deutschsprachigen Trennmustermannschaft`.
188 de_Latf_quasihyph.py
189   Filter zum Wandeln von Wörtern mit Rund- und Lang-S in
190   Pseudo-Trennbeispiele (ausſagen -> aus-sagen)."""
192 long_s_quasihyph.py
193   Filter zum Wandeln von Wörtern mit langem S in
194   Pseudo-Trennbeispiele (ausſagen -> auss-agen, eſſen -> es-s-en).
197 ligatures
198 ---------
200 Ligaturmuster
201 ~~~~~~~~~~~~~
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.
212   Aufruf:
213   ``python prepare-ligature-wordlist.py input.utf8.txt output.utf8.txt log.utf8.txt``
215 LIESMICH.md
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.
230 Arbeitsfluss
231 ~~~~~~~~~~~~
233 Trennstellenkategorisierung mit Hilfe der Python-Skripte,
234 2-stufiges Vorgehen:
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 ---------------------------------------------------------------------------
266 abgleich_endungen.py
267   Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher
268   Endung.
270   Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen``
271   definiert.
273 abgleich_praefixe.py
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.
290 abgleich_suffixe.py
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.
305 analyse.py
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
319   Präfixauszeichnung.
321 test_teilwoerter.py
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
329   kann.
331 wortfugen.py
332   Suche nach "Teilwortkandidaten" in der Wortliste.
334 teilwoerter_*.txt
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
344   Format:
346   * Teilwort mit Trennungen. Großschreibung wie Gesamtwort
347   * Leerraum (whitespace)
348   * Häufigkeiten in der Reihenfolge S;E;M;L
350   Beispiel:
352   Ho-se 1;0;0;7
354 wortteile/
355   Verzeichnis für Hilfsdateien (Daten/Text)