[Trennmuster] Parser fuer Wortliste
Guenter Milde
milde at users.sf.net
Mo Mär 12 12:44:56 CET 2012
On 12.02.12, Stephan Hennig wrote:
> Am 11.02.2012 19:26, schrieb Werner LEMBERG:
...
> :-) Die wesentlichen Skripten sind gar nicht im Repositorium. Daher
> beschränke ich mich auf das Korrigieren einzelner Einträge in der
> Wortliste (wenn überhaupt). Bei einem neuen Eintrag, der Umlaute
> enthält, wüsste ich gar nicht, wo der von Hand einzusortieren wäre. Die
> Sortierung der Liste geschieht meines Wissens mit einem Skript, welches
> nur bei dir auf dem Rechner schlummert. Dafür suche ich zum Beispiel
> eine portable Lösung.
Ja, das Skript wortliste/skripte/python/sort.py macht genau das. Es kann
sowohl nach Duden-Regeln, als auch analog zum bisherigen Algorithmus
(also nach ganzer Zeile anstelle des ersten Wortes)¹ sortieren.
Anwendung: cd /wortliste/skripte/python/
python sort.py
Ergebnis: ein Patch /wortliste/wortliste.patch
Einarbeiten: cd ../..
recode utf8..latin1 wortliste.patch # oder iconv
patch wortliste wortliste.patch
¹ Die gegenwärtig genutzten Sortierregeln sind problematisch und
undurchsichtig, weil z.B. eine Korrektur der Sprachvarianten eine
Änderung der Einsortierung nach sich zieht, so gilt z.B.
Stopp;-2-;-3-;Stopp
Stoppelbärten;Stop-pel=bär-ten
aber
Stoppelbärten;Stop-pel=bär-ten
Stopp;Stopp
denn während die Satzzeichen ignoriert werden, gelten die Zahlen mit.
Die Sortierung ist also analog zu
Stopp23Stopp
StoppelbärtenStoppelbärten
StoppStopp
Ich schlage eine Umstellung aller Zweige auf Sortierung nach dem
ungetrennten Wort vor. Das ist auf zweierlei Wegen möglich:
a) anstelle von `sort -d wortliste`:
1. Ersetzen aller ';' durch Lehrzeichen, z.B.
Stopp -2- -3- Stopp
Das Lehrzeichen wird bei der Sortierung vor alle druckbaren
Zeichen sortiert, somit sind kürzere Wörter automatisch an der
richtigen Stelle.
2. `sort wortliste` # mit passender locale
3. Rückwandlung: Lehrzeichen in ';'
Anstelle des Hin- und Rückwandelns kann auch vereinbart
werden, daß das Lehrzeichen als Feldtrenner verwendet wird.
b) 1. einmaliges Umstellen des Skripts sort.py
- sortiert = sorted(wortliste, key=sortkey_wl)
- # sortiert = sorted(wortliste, key=sortkey_duden)
+ # sortiert = sorted(wortliste, key=sortkey_wl)
+ sortiert = sorted(wortliste, key=sortkey_duden)
2. `wortliste/skripts/python/sort.py`
Günter
Günter
Mehr Informationen über die Mailingliste Trennmuster