From 49bc75e0c10292199cc89a972b8d7102a175f908 Mon Sep 17 00:00:00 2001 From: Guenter Milde Date: Fri, 24 Apr 2015 18:55:52 +0200 Subject: [PATCH] Neustrukturierung der Python Skripte als Paket. --- skripte/python/MANIFEST | 184 ++++++++++++--------- skripte/python/__init__.py | 6 + skripte/python/edit_tools/__init__.py | 7 + .../python/{ => edit_tools}/abgleich_endungen.py | 4 +- .../{ => edit_tools}/abgleich_neueintraege.py | 6 +- .../python/{ => edit_tools}/abgleich_praefixe.py | 2 +- .../{ => edit_tools}/abgleich_sprachvarianten.py | 6 +- .../python/{ => edit_tools}/abgleich_suffixe.py | 2 +- .../{ => edit_tools}/abgleich_teilwoerter.py | 4 +- skripte/python/{ => edit_tools}/analyse.py | 12 +- .../python/{ => edit_tools}/expand_teilwoerter.py | 6 +- .../{ => edit_tools}/hyphenate_neueintraege.py | 2 +- skripte/python/{ => edit_tools}/prepare_patch.py | 8 +- .../python/{ => edit_tools}/test_teilwoerter.py | 4 +- .../{ => edit_tools}/vorsilben_in_teilwoertern.py | 2 +- skripte/python/{ => edit_tools}/wortfugen.py | 6 +- .../{werkzeug.py => edit_tools/wortliste.py} | 17 +- .../python/{ => edit_tools}/wortteile/endsilben | 0 .../python/{ => edit_tools}/wortteile/erstsilben | 0 skripte/python/{ => edit_tools}/wortteile/praefixe | 14 +- .../{ => edit_tools}/wortteile/teilwoerter-fremd | 0 .../python/{ => edit_tools}/wortteile/vorsilben | 0 .../{ => edit_tools}/wortteile/vorsilbenausnahmen | 128 +++++++++++++- skripte/python/{ => lang_s}/de_Latf_quasihyph.py | 0 skripte/python/{ => lang_s}/long_s_quasihyph.py | 0 skripte/python/{ => lang_s}/s2long-s.py | 2 +- skripte/python/patuse/__init__.py | 16 ++ skripte/python/{ => patuse}/en-US.pat | 0 skripte/python/{ => patuse}/hyphenation.py | 8 +- skripte/python/{ => patuse}/long_s_conversion.py | 0 skripte/python/{ => spell}/spellcheck.py | 2 +- skripte/sort.py | 6 +- 32 files changed, 319 insertions(+), 135 deletions(-) create mode 100644 skripte/python/__init__.py create mode 100644 skripte/python/edit_tools/__init__.py rename skripte/python/{ => edit_tools}/abgleich_endungen.py (98%) rename skripte/python/{ => edit_tools}/abgleich_neueintraege.py (99%) rename skripte/python/{ => edit_tools}/abgleich_praefixe.py (97%) rename skripte/python/{ => edit_tools}/abgleich_sprachvarianten.py (95%) rename skripte/python/{ => edit_tools}/abgleich_suffixe.py (97%) rename skripte/python/{ => edit_tools}/abgleich_teilwoerter.py (96%) rename skripte/python/{ => edit_tools}/analyse.py (96%) rename skripte/python/{ => edit_tools}/expand_teilwoerter.py (97%) rename skripte/python/{ => edit_tools}/hyphenate_neueintraege.py (97%) rename skripte/python/{ => edit_tools}/prepare_patch.py (97%) rename skripte/python/{ => edit_tools}/test_teilwoerter.py (98%) rename skripte/python/{ => edit_tools}/vorsilben_in_teilwoertern.py (99%) rename skripte/python/{ => edit_tools}/wortfugen.py (97%) rename skripte/python/{werkzeug.py => edit_tools/wortliste.py} (98%) rename skripte/python/{ => edit_tools}/wortteile/endsilben (100%) rename skripte/python/{ => edit_tools}/wortteile/erstsilben (100%) rename skripte/python/{ => edit_tools}/wortteile/praefixe (98%) rename skripte/python/{ => edit_tools}/wortteile/teilwoerter-fremd (100%) rename skripte/python/{ => edit_tools}/wortteile/vorsilben (100%) rename skripte/python/{ => edit_tools}/wortteile/vorsilbenausnahmen (97%) rename skripte/python/{ => lang_s}/de_Latf_quasihyph.py (100%) rename skripte/python/{ => lang_s}/long_s_quasihyph.py (100%) rename skripte/python/{ => lang_s}/s2long-s.py (99%) create mode 100644 skripte/python/patuse/__init__.py rename skripte/python/{ => patuse}/en-US.pat (100%) rename skripte/python/{ => patuse}/hyphenation.py (97%) rename skripte/python/{ => patuse}/long_s_conversion.py (100%) rename skripte/python/{ => spell}/spellcheck.py (97%) diff --git a/skripte/python/MANIFEST b/skripte/python/MANIFEST index 4d66f81..4c26c82 100644 --- a/skripte/python/MANIFEST +++ b/skripte/python/MANIFEST @@ -22,32 +22,41 @@ PDF-Format erstellen. Unterverzeichnisse ================== -wortteile/ - Verzeichnis für Hilfsdateien (Daten/Text) +patuse/ +------- +Anwendungen der mit `patgen` generierten Pattern. -Module -====== +hyphenation.py + Hyphenation using a pure Python implementation of Frank Liang's algorithm. -werkzeug.py - Python-Module für die Arbeit mit der `Wortliste` + This module provides a class to hyphenate words. + Verwendet in hyphenate_neueintraege.py + + Command-line usage: ``./hyphenation.py [options] [words to be hyphenated]`` + +long_s_conversion.py + Rund-S nach Lang-S Wandlung über "hyphenation patterns". + + Aufruf: siehe ``./long_s_conversion.py -h`` + + +edit_tools +---------- + +wortliste.py + Python-Modul für die Arbeit mit der `Wortliste` Wird von den anderen Python-Skripten importiert. - Aufruf mit ``python werkzeug.py`` startet einen + Aufruf mit ``python wortliste.py`` startet einen Test der Werkzeuge und der inneren Konsistenz der Wortliste (Doppeleinträge, Übereinstimmung Schlüssel-Trennmuster). -hyphenation.py - Hyphenation using a pure Python implementation of Frank Liang's algorithm. - - This module provides a class to hyphenate words. - Verwendet in hyphenate_neueintraege.py - - Command-line usage: ``./hyphenation.py [options] [words to be hyphenated]`` +Skripte zur Arbeit mit der Wortliste +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Skripte zur Trennstellenkategorisierung -======================================= +(Trennstellenkategorisierung, Neueinträge, Korrekturen) Siehe auch den Abschnitt `Arbeitsfluss`_ am Ende dieses Dokumentes. @@ -62,46 +71,43 @@ Achtung experimentell: ändern nicht direkt die Wortliste sondern erstellen eine Datei ``wortliste.patch``. -* Die Änderungen in dieser Datei können nach Korrekturlesen mittels :: +* Die Änderungen können nach Korrekturlesen mittels :: patch ../../wortliste < wortliste.patch auf die Wortliste angewendet werden. -prepare_patch.py - Helfer für kleine Editieraufgaben, u.a. entfernen von Doppeleinträgen, - Einsortieren neuer Einträge, Überschreiben mit korrigierten Einträgen, ... - Erstellt eine Patch-Datei. - - Aufruf: siehe ``./prepare_patch.py -h`` +abgleich_endungen.py + Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher + Endung. -analyse.py - Sammeln und Sortieren von Teilwörtern + Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen`` + definiert. - Aufruf: ``python analyse.py`` +abgleich_neueintraege.py + Versuche Trennstellen neuer Wörter aus vorhandenen zu ermitteln - Vorher in Zeile 355 ff. die gewünschte Sprachvariante - durch ein/auskommentieren wählen. + Übertragen von kategorisierten Trennstellen vorhandener Wörter + auf neu aufzunehmende, ungetrennte Wörter. - Schreibt eine Liste der Teilwörter von in der Wortliste markierten - zusammengesetzten Wörtern mit den Häufigkeiten des Auftretens - in eine Datei ``teilwoerter-.txt`` - (z.B. ``teilwoerter-de-1901.txt``). + Erwartet eine Datei mit 1 Wort/Zeile. + Pfad/Dateiname im Abschnitt Konfiguration anpassen! - Auf der Standardausgabe erscheint eine Zusammenfassung zum Stand der - Präfixauszeichnung. + Schreibt eine Liste von Einträgen für die Wörter, welche durch Abgleich + mit der Datenbasis getrennt werden konnten auf stdout. + Die Liste kann nach ``neu.todo`` gespeichert und (nach Durchsicht) mit + ``prepare_patch.py neu`` in die Wortliste eingepflegt werden. -abgleich_endungen.py - Abgleich der Trennstellen für Ableitungen/Varianten mit unterschiedlicher - Endung. +abgleich_praefixe.py + Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Präfix - Die zu vergleichenden Endungen sind im Skript in der Liste ``endungen`` - definiert. + Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden + kann (siehe Arbeitsfluss_). -abgleich_sprachvarianten.py + abgleich_sprachvarianten.py Abgleich der Trennstellen zwischen Sprachvarianten Aufruf: ``python abgleich_sprachvarianten.py`` @@ -111,9 +117,15 @@ abgleich_sprachvarianten.py * Zusammenfassen von Feldern mit gleichem Inhalt wenn das Ergebnis ein wohlgeformter Eintrag ist. - + * Ergänzen von Formen mit SS statt ß. - + + +abgleich_suffixe.py + Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Suffix. + + Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden + kann (siehe Arbeitsfluss_). abgleich_teilwoerter.py @@ -126,40 +138,35 @@ abgleich_teilwoerter.py durch ein/auskommentieren wählen. -abgleich_praefixe.py - Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Präfix - - Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden - kann (siehe Arbeitsfluss_). - -abgleich_suffixe.py - Abgleich der Trennstellen zwischen Wörtern mit unterschiedlichem Suffix. +analyse.py + Sammeln und Sortieren von Teilwörtern - Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden - kann (siehe Arbeitsfluss_). + Aufruf: ``python analyse.py`` + Vorher in Zeile 355 ff. die gewünschte Sprachvariante + durch ein/auskommentieren wählen. -abgleich_neueintraege.py - Versuche Trennstellen neuer Wörter aus vorhandenen zu ermitteln + Schreibt eine Liste der Teilwörter von in der Wortliste markierten + zusammengesetzten Wörtern mit den Häufigkeiten des Auftretens + in eine Datei ``teilwoerter-.txt`` + (z.B. ``teilwoerter-de-1901.txt``). - Übertragen von kategorisierten Trennstellen vorhandener Wörter - auf neu aufzunehmende, ungetrennte Wörter. + Auf der Standardausgabe erscheint eine Zusammenfassung zum Stand der + Präfixauszeichnung. - Erwartet eine Datei mit 1 Wort/Zeile. - Pfad/Dateiname im Abschnitt Konfiguration anpassen! +expand_teilwoerter.py + Erweitern der Wortliste um Kombinationen von Teilwörtern - Schreibt eine Liste von Einträgen für die Wörter, welche durch Abgleich - mit der Datenbasis getrennt werden konnten auf stdout. + Zerlegen von Composita an den Wortfugen und Übernahme der Teile als + eigenständige Einträge. - Die Liste kann nach ``neu.todo`` gespeichert und (nach Durchsicht) mit - ``prepare_patch.py neu`` in die Wortliste eingepflegt werden. hyphenate_neueintraege.py - Versuche kategorisierte Trennung über "hyphenation"-Algorithmus und + Versuche kategorisierte Trennung über "hyphenation"-Algorithmus und patgen-patterns. - + Verwendet Pattern-Dateien welche über die "make" Ziele - `make pattern-refo`, `make major pattern-refo` und + `make pattern-refo`, `make major pattern-refo` und `make fugen pattern-refo` im Wurzelverzeichnis der Wortliste generiert werden können. @@ -170,31 +177,59 @@ hyphenate_neueintraege.py gespeichert und (nach Durchsicht) mit ``prepare_patch.py neu`` in die Wortliste eingepflegt werden. -wortfugen.py - Suche nach "Teilwortkandidaten" in der Wortliste. +prepare_patch.py + Helfer für kleine Editieraufgaben, u.a. entfernen von Doppeleinträgen, + Einsortieren neuer Einträge, Überschreiben mit korrigierten Einträgen, ... + Erstellt eine Patch-Datei. + + Aufruf: siehe ``./prepare_patch.py -h`` test_teilwoerter.py Test der Markierung von Komposita in der Wortliste +teilwoerter_*.txt + Liste der Teilwörter der Komposita in der Wortliste_. + Erstellt mit ``analyse.py`` durch Trennen an "=". + Listet Häufigkeiten des Auftretens als: + + :S: Einzelwort (Solitär) + :E: erstes Wort in Verbindungen + :M: mittleres Wort in Verbindungen + :L: letztes Wort in Verbindungen + + Format: + + * Teilwort mit Trennungen. Großschreibung wie Gesamtwort + * Leerraum (whitespace) + * Häufigkeiten in der Reihenfolge S;E;M;L + + Beispiel: + + Ho-se 1;0;0;7 + + vorsilben_in_teilwoertern.py Spezialwerkzeug zur Präfixmarkierung. Benötigt eine Liste der Teilwörter, die mit ``analyse.py`` erstellt werden kann. +wortfugen.py + Suche nach "Teilwortkandidaten" in der Wortliste. + +wortteile/ + Verzeichnis für Hilfsdateien (Daten/Text) + + +lang_s +------ Lang-s Schreibung -================= s2long-s.py Automatische Bestimmung der S-Schreibung auf Basis der Silbentrennung in der `Wortliste der deutschsprachigen Trennmustermannschaft`. -long_s_conversion.py - Rund-S nach Lang-S Wandlung über "hyphenation patterns". - - Aufruf: siehe ``./long_s_conversion.py -h`` - de_Latf_quasihyph.py Filter zum Wandeln von Wörtern mit Rund- und Lang-S in Pseudo-Trennbeispiele (ausſagen -> aus-sagen).""" @@ -203,6 +238,7 @@ long_s_quasihyph.py Filter zum Wandeln von Wörtern mit langem S in Pseudo-Trennbeispiele (ausſagen -> auss-agen, eſſen -> es-s-en). + Arbeitsfluss ============ @@ -249,5 +285,3 @@ Trennung unbekannter Wörter (2 Alternativen): TeX-Algorithmus bestimmen. Liefert kategorisierte Einträge ohne Wichtung, die nach Durchsicht und Korrekturen mit prepare_patch.py eingepflegt werden können. - - diff --git a/skripte/python/__init__.py b/skripte/python/__init__.py new file mode 100644 index 0000000..f6c5aab --- /dev/null +++ b/skripte/python/__init__.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- +# :Copyright: © 2015 Günter Milde. +# :Id: $Id: $ + +# Python-Module und experimentelle Skripte zur Arbeit mit der Wortliste. diff --git a/skripte/python/edit_tools/__init__.py b/skripte/python/edit_tools/__init__.py new file mode 100644 index 0000000..98ac1bc --- /dev/null +++ b/skripte/python/edit_tools/__init__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- +# :Copyright: © 2015 Günter Milde. +# :Id: $Id: $ + +# Python-Module und experimentelle Skripte zur Arbeit mit der Wortliste. +# ====================================================================== diff --git a/skripte/python/abgleich_endungen.py b/skripte/python/edit_tools/abgleich_endungen.py similarity index 98% rename from skripte/python/abgleich_endungen.py rename to skripte/python/edit_tools/abgleich_endungen.py index 1e975a7..479cef1 100644 --- a/skripte/python/abgleich_endungen.py +++ b/skripte/python/edit_tools/abgleich_endungen.py @@ -14,7 +14,7 @@ # :: import re, sys, codecs, copy -from werkzeug import (WordFile, WordEntry, join_word, udiff, +from wortliste import (WordFile, WordEntry, join_word, udiff, uebertrage, TransferError, sprachabgleich, toggle_case) from analyse import read_teilwoerter, teilwoerter @@ -335,7 +335,7 @@ if __name__ == '__main__': # `Wortliste` einlesen:: - wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen + wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen wortliste = list(wordfile) wortliste_neu = [] diff --git a/skripte/python/abgleich_neueintraege.py b/skripte/python/edit_tools/abgleich_neueintraege.py similarity index 99% rename from skripte/python/abgleich_neueintraege.py rename to skripte/python/edit_tools/abgleich_neueintraege.py index 5e6d052..3829416 100644 --- a/skripte/python/abgleich_neueintraege.py +++ b/skripte/python/edit_tools/abgleich_neueintraege.py @@ -24,7 +24,7 @@ import sys, codecs from collections import defaultdict # Wörterbuch mit Default -from werkzeug import WordFile, WordEntry, join_word, toggle_case, sortkey_duden +from wortliste import WordFile, WordEntry, join_word, toggle_case, sortkey_duden from expand_teilwoerter import expand_wordfile # Konfiguration @@ -42,7 +42,7 @@ filtern = False # Trennmusterliste -wordfile = WordFile('../../wortliste') +wordfile = WordFile('../../../wortliste') # Funktionen @@ -671,7 +671,7 @@ def zerlege(s): # Zerlege Kompositum in gleichberechtigte Teile:: # >>> from abgleich_neueintraege import split_composits -# >>> from werkzeug import WordEntry +# >>> from wortliste import WordEntry # >>> split_composits(WordEntry(u'Blockheizkraftwerk;Block===heiz==kraft=werk')) # [u'Block', u'heiz', u'kraft', u'werk'] # diff --git a/skripte/python/abgleich_praefixe.py b/skripte/python/edit_tools/abgleich_praefixe.py similarity index 97% rename from skripte/python/abgleich_praefixe.py rename to skripte/python/edit_tools/abgleich_praefixe.py index dcc0695..6f70fcb 100644 --- a/skripte/python/abgleich_praefixe.py +++ b/skripte/python/edit_tools/abgleich_praefixe.py @@ -14,7 +14,7 @@ import re, sys, codecs import difflib -from werkzeug import (WordFile, WordEntry, join_word, uebertrage, TransferError, sprachabgleich, toggle_case) +from wortliste import (WordFile, WordEntry, join_word, uebertrage, TransferError, sprachabgleich, toggle_case) from analyse import read_teilwoerter, teilwoerter # Sprachvarianten diff --git a/skripte/python/abgleich_sprachvarianten.py b/skripte/python/edit_tools/abgleich_sprachvarianten.py similarity index 95% rename from skripte/python/abgleich_sprachvarianten.py rename to skripte/python/edit_tools/abgleich_sprachvarianten.py index 8897a7d..d8f05ef 100755 --- a/skripte/python/abgleich_sprachvarianten.py +++ b/skripte/python/edit_tools/abgleich_sprachvarianten.py @@ -19,7 +19,7 @@ # :: import re, sys, codecs, copy -from werkzeug import WordFile, WordEntry, join_word, udiff, sprachabgleich +from wortliste import WordFile, WordEntry, join_word, udiff, sprachabgleich # Zusammenfassen von Feldern mit gleichem Inhalt z.B. @@ -27,7 +27,7 @@ from werkzeug import WordFile, WordEntry, join_word, udiff, sprachabgleich # hallo;-2-;hal-lo;hal-o --> hallo;hal-lo # # in allen Einträgen von `wortliste`. -# Siehe ``WordEntry.conflate_fields()`` in werkzeug.py. +# Siehe ``WordEntry.conflate_fields()`` in wortliste.py. # # Anwendung 2012-03-13 # (getestet mit ``texlua validate.lua < ../wortliste``) @@ -48,7 +48,7 @@ if __name__ == '__main__': # Die `Wortliste`:: - wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen + wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen wortliste = list(wordfile) wortliste_neu = [] diff --git a/skripte/python/abgleich_suffixe.py b/skripte/python/edit_tools/abgleich_suffixe.py similarity index 97% rename from skripte/python/abgleich_suffixe.py rename to skripte/python/edit_tools/abgleich_suffixe.py index 62c8cb3..bb79800 100644 --- a/skripte/python/abgleich_suffixe.py +++ b/skripte/python/edit_tools/abgleich_suffixe.py @@ -14,7 +14,7 @@ import re, sys, codecs import difflib -from werkzeug import (WordFile, WordEntry, join_word, uebertrage, TransferError, sprachabgleich, toggle_case) +from wortliste import (WordFile, WordEntry, join_word, uebertrage, TransferError, sprachabgleich, toggle_case) from analyse import read_teilwoerter, teilwoerter from abgleich_praefixe import udiff # Sprachvarianten diff --git a/skripte/python/abgleich_teilwoerter.py b/skripte/python/edit_tools/abgleich_teilwoerter.py similarity index 96% rename from skripte/python/abgleich_teilwoerter.py rename to skripte/python/edit_tools/abgleich_teilwoerter.py index ffddcf0..1f25576 100644 --- a/skripte/python/abgleich_teilwoerter.py +++ b/skripte/python/edit_tools/abgleich_teilwoerter.py @@ -15,7 +15,7 @@ from copy import deepcopy import re, sys, codecs -from werkzeug import (WordFile, WordEntry, join_word, udiff, +from wortliste import (WordFile, WordEntry, join_word, udiff, uebertrage, TransferError, sprachabgleich, toggle_case) from analyse import read_teilwoerter, teilwoerter @@ -97,7 +97,7 @@ if __name__ == '__main__': # `Wortliste` einlesen:: - wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen + wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen wortliste = list(wordfile) wortliste_neu = deepcopy(wortliste) diff --git a/skripte/python/analyse.py b/skripte/python/edit_tools/analyse.py similarity index 96% rename from skripte/python/analyse.py rename to skripte/python/edit_tools/analyse.py index 416b9da..5aa57cc 100644 --- a/skripte/python/analyse.py +++ b/skripte/python/edit_tools/analyse.py @@ -26,7 +26,7 @@ # # Ho-se 1;0;0;7 # -# .. _wortliste: ../../wortliste +# .. _wortliste: ../../../wortliste # # .. contents:: # @@ -40,7 +40,7 @@ import sys # sys.exit() zum Abbruch vor Ende (für Testzwecke) import codecs from collections import defaultdict # Wörterbuch mit Default -from werkzeug import WordFile, join_word, udiff, uebertrage, TransferError +from wortliste import WordFile, join_word, udiff, uebertrage, TransferError # teilwoerter # ----------- @@ -182,7 +182,8 @@ def read_teilwoerter(path): def spezialbehandlung(teil): if re.search(ur'[\[{/\]}]', teil): # print teil, - teil = re.sub(ur'\[<(.+)/[^\]]+', ur'\1', teil) # [>> from werkzeug import WordEntry +# >>> from wortliste import WordEntry # # >>> split_entry(WordEntry(u'Aachen;Aa-chen')) # [[u'Aachen', u'Aa-chen']] @@ -207,7 +207,7 @@ if __name__ == '__main__': # `Wortliste` einlesen:: - wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen + wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen # Wichtung:: diff --git a/skripte/python/hyphenate_neueintraege.py b/skripte/python/edit_tools/hyphenate_neueintraege.py similarity index 97% rename from skripte/python/hyphenate_neueintraege.py rename to skripte/python/edit_tools/hyphenate_neueintraege.py index c8ef9c0..89e6d2e 100644 --- a/skripte/python/hyphenate_neueintraege.py +++ b/skripte/python/edit_tools/hyphenate_neueintraege.py @@ -10,7 +10,7 @@ # ============================================================ import sys, codecs, glob, copy -from werkzeug import WordFile, WordEntry, join_word, toggle_case, sortkey_duden +from wortliste import WordFile, WordEntry, join_word, toggle_case, sortkey_duden from abgleich_neueintraege import print_proposal from hyphenation import Hyphenator diff --git a/skripte/python/prepare_patch.py b/skripte/python/edit_tools/prepare_patch.py similarity index 97% rename from skripte/python/prepare_patch.py rename to skripte/python/edit_tools/prepare_patch.py index ab34be8..3c97a1b 100755 --- a/skripte/python/prepare_patch.py +++ b/skripte/python/edit_tools/prepare_patch.py @@ -34,7 +34,7 @@ import optparse, sys, os, codecs from copy import copy, deepcopy -from werkzeug import WordFile, WordEntry, join_word, udiff, sortkey_duden +from wortliste import WordFile, WordEntry, join_word, udiff, sortkey_duden def teste_datei(datei): """Teste, ob Datei geöffnet werden kann.""" @@ -196,7 +196,7 @@ def grossklein(wordfile, datei): return (wortliste, wortliste_neu) # Anpassung der Großschreibung der Trennmuster an das erste Feld -# (ungetrenntes Wort). Siehe "werkzeug.py" für einen Test auf Differenzen. +# (ungetrenntes Wort). Siehe "wortliste.py" für einen Test auf Differenzen. # (Differenzen sind größtenteils auf unvorsichtiges Ersetzen mit Texteditor # zurückzuführen.) # :: @@ -393,8 +393,8 @@ if __name__ == '__main__': parser = optparse.OptionParser(usage=usage) parser.add_option('-i', '--file', dest='wortliste', - help='Eingangsdatei, Vorgabe "../../wortliste"', - default='../../wortliste') + help='Eingangsdatei, Vorgabe "../../../wortliste"', + default='../../../wortliste') parser.add_option('-k', '--todofile', dest='todo', help='Korrekturdatei, Vorgabe ".todo"') parser.add_option('-o', '--outfile', dest='patchfile', diff --git a/skripte/python/test_teilwoerter.py b/skripte/python/edit_tools/test_teilwoerter.py similarity index 98% rename from skripte/python/test_teilwoerter.py rename to skripte/python/edit_tools/test_teilwoerter.py index fd67ec4..6da7413 100755 --- a/skripte/python/test_teilwoerter.py +++ b/skripte/python/edit_tools/test_teilwoerter.py @@ -26,7 +26,7 @@ import sys # sys.exit() zum Abbruch vor Ende (für Testzwecke) from collections import defaultdict # Wörterbuch mit Default from copy import deepcopy -from werkzeug import WordFile, join_word, udiff +from wortliste import WordFile, join_word, udiff # Sprachvarianten # --------------- @@ -44,7 +44,7 @@ sprachvariante = 'de-1901' # "traditionell" # Die freie `Wortliste der deutschsprachigen Trennmustermannschaft`_ # ("Lembergsche Liste"):: -wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen +wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen wortliste = list(wordfile) # Wörterbucher für die Rechtschreibprüfprogramme Ispell/Aspell diff --git a/skripte/python/vorsilben_in_teilwoertern.py b/skripte/python/edit_tools/vorsilben_in_teilwoertern.py similarity index 99% rename from skripte/python/vorsilben_in_teilwoertern.py rename to skripte/python/edit_tools/vorsilben_in_teilwoertern.py index de454d3..cdf59e0 100644 --- a/skripte/python/vorsilben_in_teilwoertern.py +++ b/skripte/python/edit_tools/vorsilben_in_teilwoertern.py @@ -102,7 +102,7 @@ import re # Funktionen und Klassen für reguläre Ausdrücke import sys # sys.exit() zum Abbruch vor Ende (für Testzwecke) import codecs -from werkzeug import WordFile, join_word +from wortliste import WordFile, join_word from analyse import read_teilwoerter from abgleich_praefixe import udiff # unified diff aus Vergleich zweier Listen diff --git a/skripte/python/wortfugen.py b/skripte/python/edit_tools/wortfugen.py similarity index 97% rename from skripte/python/wortfugen.py rename to skripte/python/edit_tools/wortfugen.py index d5a658c..e7f4dac 100755 --- a/skripte/python/wortfugen.py +++ b/skripte/python/edit_tools/wortfugen.py @@ -25,7 +25,7 @@ import codecs from collections import defaultdict # Wörterbuch mit Default from copy import deepcopy -from werkzeug import WordFile, join_word, udiff +from wortliste import WordFile, join_word, udiff from analyse import read_teilwoerter, teilwoerter from abgleich_teilwoerter import wortliste_to_teilwoerter @@ -41,7 +41,7 @@ sys.stdout = codecs.getwriter('UTF-8')(sys.stdout) # Die freie `Wortliste der deutschsprachigen Trennmustermannschaft`_ # ("Lembergsche Liste"):: -wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen +wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen # Sprachvarianten # --------------- @@ -121,7 +121,7 @@ endsilben = set(w for w in wortdatei('wortteile/endsilben')) # ------------------------ # :: -wordfile = WordFile('../../wortliste') # ≅ 400 000 Einträge/Zeilen +wordfile = WordFile('../../../wortliste') # ≅ 400 000 Einträge/Zeilen wortliste = list(wordfile) # Sammeln unbekannter Wortteile:: diff --git a/skripte/python/werkzeug.py b/skripte/python/edit_tools/wortliste.py similarity index 98% rename from skripte/python/werkzeug.py rename to skripte/python/edit_tools/wortliste.py index 69e127c..44e5f8c 100755 --- a/skripte/python/werkzeug.py +++ b/skripte/python/edit_tools/wortliste.py @@ -7,7 +7,7 @@ # any later version. # :Version: 0.1 (2012-02-07) -# werkzeug.py +# wortliste.py # *********** # # :: @@ -100,7 +100,7 @@ class WordFile(file): # # Beispiel: # -# >>> from werkzeug import WordEntry +# >>> from wortliste import WordEntry # # >>> aalbestand = WordEntry(u'Aalbestand;Aal=be>> print aalbestand @@ -515,7 +515,7 @@ def join_word(word, assert_complete=False): # Zerlege ein Wort mit Trennzeichen in eine Liste von Silben und eine Liste # von Trennzeichen) # -# >>> from werkzeug import zerlege +# >>> from wortliste import zerlege # # >>> zerlege(u'Haupt=stel-le') # ([u'Haupt', u'stel', u'le'], [u'=', u'-']) @@ -552,7 +552,7 @@ class TransferError(ValueError): # # Übertrage die Trennzeichen von `wort1` auf `wort2`: # -# >>> from werkzeug import uebertrage, TransferError +# >>> from wortliste import uebertrage, TransferError # # >>> uebertrage(u'Haupt=stel-le', u'Haupt·stel·le') # u'Haupt=stel-le' @@ -768,7 +768,7 @@ def sprachabgleich(entry, vorbildentry=None): # Diese Version funktioniert auch für Wörter mit Trennzeichen (während # str.title() nach jedem Trennzeichen wieder groß anfängt) # -# >>> from werkzeug import toggle_case +# >>> from wortliste import toggle_case # >>> toggle_case(u'Ha-se') # u'ha-se' # >>> toggle_case(u'arm') @@ -809,7 +809,7 @@ def toggle_case(wort): # # Duden-Sortierung für die Wortliste # -# >>> from werkzeug import sortkey_duden +# >>> from wortliste import sortkey_duden # >>> sortkey_duden([u"Abflußröhren"]) # u'abflussrohren a*bflu*szroehren' # >>> sortkey_duden([u"Abflußrohren"]) @@ -913,7 +913,7 @@ def sortkey_duden(entry): # # Beispiel: # -# >>> from werkzeug import udiff +# >>> from wortliste import udiff # >>> print udiff([abbeissen, aalbestand], [abbeissen], 'alt', 'neu') # --- alt # +++ neu @@ -975,8 +975,7 @@ if __name__ == '__main__': print u"Test der Werkzeuge und inneren Konsistenz der Wortliste\n" - # wordfile = WordFile('../../wortliste-binnen-s') - wordfile = WordFile('../../wortliste') + wordfile = WordFile('../../../wortliste') # print 'Dateiobjekt:', wordfile # Liste der Datenfelder (die Klasseninstanz als Argument für `list` liefert diff --git a/skripte/python/wortteile/endsilben b/skripte/python/edit_tools/wortteile/endsilben similarity index 100% rename from skripte/python/wortteile/endsilben rename to skripte/python/edit_tools/wortteile/endsilben diff --git a/skripte/python/wortteile/erstsilben b/skripte/python/edit_tools/wortteile/erstsilben similarity index 100% rename from skripte/python/wortteile/erstsilben rename to skripte/python/edit_tools/wortteile/erstsilben diff --git a/skripte/python/wortteile/praefixe b/skripte/python/edit_tools/wortteile/praefixe similarity index 98% rename from skripte/python/wortteile/praefixe rename to skripte/python/edit_tools/wortteile/praefixe index 301d130..09a27fe 100644 --- a/skripte/python/wortteile/praefixe +++ b/skripte/python/edit_tools/wortteile/praefixe @@ -64,7 +64,7 @@ anglo ant anthropo anti -ap +aperi apo archaeo arche @@ -73,6 +73,7 @@ aristo arterio arthro astro +asym asyn atmo audio @@ -120,6 +121,7 @@ dicho dino dis disko +do down drauf drein @@ -127,10 +129,12 @@ drum drüber durch dys +eco ego ein einher elektro +em emp empor en @@ -151,6 +155,7 @@ etho etymo eu ex +exa exo extra extro @@ -324,6 +329,7 @@ oben ober off ohn +okto olig oligo omni @@ -335,12 +341,12 @@ organi ortho osteo oszillo -ot out over oxy ozeano paläo +palä pan panto par @@ -351,6 +357,7 @@ penta per pere peri +peta petro pharma pharmako @@ -377,13 +384,14 @@ pro prot proto prä +pré pseud pseudo psycho pyro päd pädo -quadru +quadro radio raus re diff --git a/skripte/python/wortteile/teilwoerter-fremd b/skripte/python/edit_tools/wortteile/teilwoerter-fremd similarity index 100% rename from skripte/python/wortteile/teilwoerter-fremd rename to skripte/python/edit_tools/wortteile/teilwoerter-fremd diff --git a/skripte/python/wortteile/vorsilben b/skripte/python/edit_tools/wortteile/vorsilben similarity index 100% rename from skripte/python/wortteile/vorsilben rename to skripte/python/edit_tools/wortteile/vorsilben diff --git a/skripte/python/wortteile/vorsilbenausnahmen b/skripte/python/edit_tools/wortteile/vorsilbenausnahmen similarity index 97% rename from skripte/python/wortteile/vorsilbenausnahmen rename to skripte/python/edit_tools/wortteile/vorsilbenausnahmen index c81c583..b7a0a95 100644 --- a/skripte/python/wortteile/vorsilbenausnahmen +++ b/skripte/python/edit_tools/wortteile/vorsilbenausnahmen @@ -4,17 +4,17 @@ # Wortstämme, deren erste Silbe gleichlautend mit einem # in ``praefixe`` gelisteten Präfix ist ohne einer zu sein. # -# Die Unterscheidung von Vorsilben (Präfixen) von Teilwörtern in Komposita ist -# im Deutschen nicht eindeutig. +# Die Unterscheidung zwischen Vorsilben (Präfixen) und Teilwörtern in +# Komposita ist im Deutschen nicht eindeutig. # # Gelistet werden "Einzelworte" (freie Worte und Bestandteile von -# Wort=verbindungen), ohne markierte Präfixe markierte Suffixe mit +# Wort=verbindungen), ohne markierte Präfixe oder markierte Suffixe mit # Beachtung von Groß- und Kleinschreibung, z.B. # -# abstrakt für ab-strakt -# Abstrakt für Ab-strakt>heit -# Abstraktion für Ab-strak-tion (Suffix "-ion" beginnt nicht an Trennstelle) -# beißen für abheit +# Abstraktion für Ab-strak-tion (Suffix "-ion" beginnt nicht an Trennstelle) +# beißen für ab>> hyphenator.hyphenate_word(u"project") u'project' - version 1: Ned Batchelder, July 2007. - This Python code is in the public domain. + based on http://nedbatchelder.com/code/modules/hyphenate.py + by Ned Batchelder, July 2007. version 2: Internationalization (external pattern files, Unicode) © 2013 Günter Milde """ +# See also the independently developed http://pyphen.org/ import re, optparse diff --git a/skripte/python/long_s_conversion.py b/skripte/python/patuse/long_s_conversion.py similarity index 100% rename from skripte/python/long_s_conversion.py rename to skripte/python/patuse/long_s_conversion.py diff --git a/skripte/python/spellcheck.py b/skripte/python/spell/spellcheck.py similarity index 97% rename from skripte/python/spellcheck.py rename to skripte/python/spell/spellcheck.py index dddcb10..d43d7c2 100644 --- a/skripte/python/spellcheck.py +++ b/skripte/python/spell/spellcheck.py @@ -14,7 +14,7 @@ # :: import re, sys, codecs, copy -from werkzeug import WordFile, WordEntry, join_word, udiff +from wortliste import WordFile, WordEntry, join_word, udiff # from abgleich_teilwoerter import wortliste_to_teilwoerter # Konfiguration diff --git a/skripte/sort.py b/skripte/sort.py index 989009e..830e1bf 100755 --- a/skripte/sort.py +++ b/skripte/sort.py @@ -26,9 +26,9 @@ usage = u'%prog [Optionen] [Eingangsdatei]\n' + __doc__ import unicodedata, sys, optparse, os -# path for local Python modules -sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'python')) -from werkzeug import WordFile, WordEntry, join_word, udiff, sortkey_duden + +from python.edit_tools.wortliste import (WordFile, WordEntry, + join_word, udiff, sortkey_duden) # sortkey_wl # ---------- -- 2.11.4.GIT