[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