[Trennmuster] Alternative Eintragskandidaten

Werner LEMBERG wl at gnu.org
Mo Aug 23 20:55:38 CEST 2021


Liebe Mitstreiter!


Nach ein paar Monaten Pause kommt wieder ein bißchen Aktivität von
mir.  Wie in

  https://lists.dante.de/pipermail/trennmuster/2021-March/004395.html

ausgeführt, gibt's Probleme mit Günters neuer Liste von
Eintragskandidaten im Zweig »eintragskandidaten«.  Aus diesem Grund
habe ich eine Alternative ergänzt (im gleichen Zweig), und zwar ein
Set von 479 kleinen Dateien.  Ich habe die README-Datei dazu
angehängt.


    Werner


======================================================================


2021-08-23
==========

Alternative Kandidaten-Dateien

  german-XXX.txt

mit insgesamt 8756 Einträgen, die

  * nicht in der Wortliste sind und

  * wo es eine Diskrepanz zwischen Günters Skript
    »hyphenate_neueintraege.py« und der tatsächlichen Trennung gibt.

Mein Vorschlag:

  Potentielle Bearbeiter pflegen eine oder mehrere der Dateien
  »german-XXX.txt« ein und entfernen diese gleichzeitig (oder besser sogar
  vorher) aus dem Zweig »eintragskandidaten« des Repositoriums.


Bauanleitung
============

Verwendet wurde als Eingabe die Datei »german.dic« vom 22. August 2021.  Das
nachfolgende Shell-Skript kann sicher optimiert werden; verwendet wird u.a.
GNU sed.

  WORTLISTE_DIR=/home/wl/git/wortliste

  # Konvertiere Zeilenenden und Dateikodierung, entferne Doppeleinträge und
  # sortiere das Ergebnis.
  #
  dos2unix < german.dic \
  | iconv -f cp1252 -t utf8 \
  | $WORTLISTE_DIR/skripte/wortliste/entferne-dopplungen.pl \
      $WORTLISTE_DIR/wortliste \
  | $WORTLISTE_DIR/skripte/extra/wl/wlsort.pl \
  > german.dic.reduced

  # Erzeuge Zerlegungsvorschläge und entferne » # , « am Zeilenende (das
  # ist ein Bug in »abgleich_neueintraege.py«).
  #
  # Achtung!  Dieser Aufruf dauert sehr lange.
  #
  $WORTLISTE_DIR/skripte/lib/py_wortliste/abgleich_neueintraege.py \
  < german.dic.reduced \
  | sed 's/ # , $//' \
  > german.dic.reduced2

  # Entferne Ableitungen, Nichtwörter und Einträge mit weniger als drei
  # Buchstaben.
  #
  $WORTLISTE_DIR/skripte/lib/py_wortliste/filter_wortliste.py \
    --ableitungen \
    --nichtwoerter \
    --kurze \
  < german.dic.reduced2 \
  > german.dic.filtered

  # Zerteile Eingabedatei in Blöcke zu jeweils 1000 Zeilen in zufälliger
  # Anordnung.  Jeder Block wird in eine Ausgabedatei mit dem Präfix
  # »german-« und einem Suffix »XXX.txt« ausgegeben, wobei »XXX« eine stets
  # dreistellige, aufsteigende Zahl ist.  Davor aber werden die Zeilen
  # mittels des Skripts »hyphenate_neueintraege.py« gefiltert, dessen
  # Ausgabe noch weiter reduziert wird.  Aus den 1000 Zeilen der Eingabe
  # werden so rund 15 bis 60 Zeilen pro Datei tatsächlich ausgegeben.
  #
  # Die angewandten %rennmuster wurden von Commit 1936187 (11. März 2021)
  # erzeugt.
  #
  shuf < german.dic.filtered \
  | split --lines=1000 \
          --numeric-suffixes \
          --suffix-length=3 \
          --filter="\
      $WORTLISTE_DIR/skripte/lib/py_wortliste/hyphenate_neueintraege.py \
        --patterns=$WORTLISTE_DIR/muster/dehyphn-x/pattern.8 \
        --patterns_major=$WORTLISTE_DIR/muster/dehyphn-x-major/pattern.8 \
        --patterns_fugen=$WORTLISTE_DIR/muster/dehyphn-x-fugen/pattern.8 \
        --patterns_suffix=$WORTLISTE_DIR/muster/dehyphn-x-suffix/pattern.8 \
      | {
          # Ignoriere der Einfachheit halber Einträge, die »·« enthalten.  Wir
          # entfernen deshalb die betroffenen Zeilen und jeweils die
          # nachfolgenden Kommentarzeilen.
          #
          # Entferne auch Zeilenendkommentare.
          sed -e '/·/,+1d' \
              -e 's/ #.*//'
        } \
      | {
          # Wir verwenden nur einen Abschnitt.
          sed -e '/## Abweichung bei Standard-Trennstellen/,/## Abweichung bei major/!d' \
              -e '/^\s*$/d' \
              -e '/##.*/d'
        } \
      > \$FILE.txt" \
    - \
    german-

# EOF




Mehr Informationen über die Mailingliste Trennmuster