Gegen Internetzensur
Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
  • Flickr Photos

    www.flickr.com
1. Dez
Fre

Silbentrennung

Aus Langeweile, Spaß an der Sache und, weil mich das Thema schon seit längerem reizt, kam ich vor ein paar Tagen dazu, mich einmal wieder mit der automatisierten Verarbeitung von Worten zu beschäftigen. Ein Teilproblem umfasste das Auftrennen von Worten in Silben ohne Zutun des Benutzers. Was am Anfang etwas knifflig aussah, entpuppte sich recht schnell als leicht zu lösendes Problem – und anschließend als Todesfalle. Wer mit einer Vorahnung wie der meinen versucht, sich in Recherchen über das Thema zu stürzen, wird sehr schnell merken, dass die (deutsche) Sprache offenbar komplexeren Regeln folgt, als man glauben würde. Von den Unregelmäßigkeiten einmal ganz zu schweigen.

Phonotaktik

Nach der klassischen Phonotaktik – grob gesagt: Der Lehre der Unterteilung und Klassifizierung von Lauten – folgt die Silbentrennung von Worten einem noch recht simplen Schema. Die Silbe setzt sich grundlegend aus zwei Komponenten zusammen: Dem Anlaut (Auftakt, Kopf, onset) und dem Reim (rime). Der Reim wiederum ist unterteilt in Kern (Gipfel, Nukleus, nucleus) und Auslaut (Koda, coda). Anlaut und Auslaut bilden die Silbenschale und damit die Randzone der Abtrennung einer Silbe gegenüber der nächsten oder vorhergehenden. Sie werden jeweils aus einem oder mehreren Konsonanten gebildet, können aber ausbleiben.
Der Silbenkern ist das ausschlaggebende Merkmal der Silbe. Er wird im Deutschen durch die Vokale gebildet, welche als Einzelvokale – a, e, i, o, u, den Umlauten ä, ü, ö und seltener auf dem y – aber auch als Doppelvokale – aa, ee, ie, oo – Dipthtong – ai, au, äu, ei, eu – oder auch als Triphtong – ieu, ueu, üeu, uei etc. – auftreten.
Nach der Phonotaktik gilt, dass die Lautstärke (bzw. Schallfülle, Sonorität) beim Sprechen der Silbe von Anlaut zum Kern zunimmt und von dort zum Auslaut wieder abfällt. Die Sonorität der einzelnen Phoneme (sozusagen “Laute”) sind der Sonoritätshierarchie unterworfen. Dabei nimmt die Sonorität in folgender Reihenfolge zu (siehe auch: Abfolge der konsonantischen Stärke):

  1. Plosive
    1. stimmloser Plosiv (p, t, k)
    2. stimmhafter Plosiv (b, d, g)
  2. Frikative
    1. stimmloser Frikativ (f, s)
    2. stimmhafter Frikativ (v, z)
  3. Nasal (m, n)
  4. Liquide
    1. lateraler Liquid (l)
    2. zentraler Liquid (r)
  5. hoher Vokal (i, u)
  6. mittlerer Vokal (e, o)
  7. niedriger Vokal (a)

Damit wäre zur automatischen Wortverarbeitung nichts weiter nötig, als jedem Buchstaben eine Sonoritätsklasse zuzuordnen, die Stellen der höchsten und niedrigsten Sonorität zu markieren und das Wort an letzteren zu trennen. Das funktioniert erstaunlich gut, allerdings gibt es eine kleine Ungenauigkeit an dieser Stelle: Wenn Anlaut oder Auslaut ausfallen, ist das Problem so gut wie gelöst – sind aber beide in aufeinanderfolgenden Silben vorhanden, kann nicht mit Sicherheit gesagt werden, welches Phonem zu welcher Silbe gehört; Die Trennung kann schlichtweg falsch sein.

Am Beispiel des Wortes “Nase”. Die Sonoritäten wären (nach der obigen, unvollständigen Liste) wie folgt: 3 – 7 – 2 – 6. Es ist bei sturer Betrachtung der Sonoritäten nicht möglich zu unterscheiden, ob die zusammengehörenden Phoneme nun 3-7-2 und 6 oder aber 3-7 und 2-6 sind. Die Tendenz scheint hier zur optimalen Silbe zu gehen, einer Silbe also, die ausser Silbenkern lediglich noch einen Silbenanlaut besitzt (“Na” und “se” wären eben solche).

Ein unabhängiger Ansatz

In meinem stillen Kämmerchen, abends, gegen halb Acht, hatte ich allerdings nicht so richtig die Muße zur Recherche über die Phonotaktik. Genau genommen wusste ich zu dem Zeitpunkt noch nicht einmal, dass das, was ich (unter)suche, eben so heißt. Also habe ich mir anders beholfen und kam nach einiger Spielerei zu einem simplen Schema, das erstaunlich gut funktionierte. (Kugelschreiber und Schreibblock sei Dank)

Dabei wird das vorgegebene Wort grob in Konsonant K und Vokal V unterteilt. Aus “These” würde also “KKVKV”, aus “Sombrero” “KVKKKVKV” etc.
Nun wendet man eine Reihe von Regelsätzen auf diese Abfolge an, die die Trennungsstellen vorgeben. Die ersten Regeln, die ich festlegte, waren die Folgenden:

  • VKKV wird getrennt als VK|KV
  • KVKV wird getrennt als KV|KV
  • KVKK wird getrennt als KVK|K
  • KKVK wird getrennt als KKV|K

Um bei den Beispielen zu bleiben:

  1. “These” –> KKVKV
    1. Anwendung der Regel “KKVK –> KKV|K”
      Resultat: KKV|KV
    2. Ende; Übertragung auf das Wort
      Resultat: The|se
  2. “Sombrero” –> KVKKKVKV
  1. Anwendung der Regel “KVKK –> KVKK”
    Resultat: KVK|KKVKV
  2. Anwendung der Regel “KKVK –> KKV|K”
    Resultat: KVK|KKV|KV
  3. Ende; Übertragung auf das Wort
    Resultat: Som|bre|ro

Meine Freude darüber war natürlich groß, die ersten Hindernisse kamen allerdings schneller als erwartet. Der Buchstabe “y” konnte, beispielsweise, nicht eindeutig zu Vokal oder Konsonant zugeordnet werden, was in meinen Tests glücklicherweise aber nur auf Eigennamen beschränkt blieb (“Ayumari”, “Ulysses”, …) und damit erst einmal aussen vor bleiben konnte. Das nächste, willkürlich gewählte Wort war “Kautschukbaum”.

  1. “Kautschukbaum” –> KVVKKKKVKKVVK

Eine Regel “KVVK” hatte ich nicht. Innerhalb von Diphtongen würde man allerdings auch keine Silbe trennen, also entschloss ich mich, “au” als einzelnen Vokal zu handhaben.

  1. “Kautschukbaum” –> KV2KKKKVKKV2K
  1. KVKK –> KVK|K
    Resultat: KV2K|KKKVKKV2K

An einer Regel “KKKV” mangelte es ebenfalls. Nun ist “sch” wie “ch” allerdings ein Zischlaut, den man, wie Diphtonge auch, nicht trennt.

  1. “Kautschukbaum” –> KV2KK3VKKV2K
  1. KVKK –> KVK|K
    Resultat: KV2K|K3VKKV2K
  2. KVKK –> KVK|K
    Resultat: KV2K|K3VK|KV2K
  3. Ende; Übertragung
    Resultat: K(au)t|(sch)uk|b(au)m

Das nächste Wort war “Taschenmesser”

  1. “Taschenmesser” –> KVK3VKKVKKVK
  1. KVKV –> KV|KV : KV|K3VKKVKKVK
  2. KVKK –> KVK|K : KV|K3VK|KVKKVK
  3. KVKK –> KVK|K : KV|K3VK|KVK|KVK
  4. Ende; Übertragung: Ta|(sch)en|mes|ser

Die These schien also zu stimmen. Am Wort “Naschkätzchen” scheiterte der Versuch allerdings das erste Mal.

  1. “Naschkätzchen” –> KVK3KVKKK2VK
  1. KVKK –> KVK|K : KVK3|KVKKK2VK
  2. KVKK –> KVK|K : KVK3|KVK|KK2VK

KKVK war (noch) nicht vorgesehen, die Überprüfung bis dahin zeigte aber, dass die zweite Aufteilung fehlerhaft war: Na(sch)|kät|z(ch)en, anstelle von Na(sch)|kätz|(ch)en. Der Ansatz “tz” als Zischlaut ähnlich “ch” und damit als Art K2 zu betrachten, funktionierte anfänglich. Allerdings ist dieser Ansatz inkorrekt, wenn man an das Wort “Drahtzaun” denkt.

Die Lösung lag hier in der Erweiterung der Regelsätze von vier auf mehr Zeichen. Ausgehend von der Tatsachen, dass die Folge “VKKKV” in “Drahtzaun” nicht nach dem “tz”, ebenso wie dieselbe Folge “VKKK2V” “Kätzchen” nicht innerhalb des “tz” getrennt werden würde, erweiterte ich die Klassifikation der Buchstaben von Konsonat und Vokal auf Konsonant, Vokal und Zischlaut: K, V und Z.

Die betreffenden Regeln für die beiden Worte hießen dann:

  • KVKZZV –> KVKZ|ZV (Kätzche –> Kätz|che)
  • KKVKKZV –> KKVKK|ZV (Drahtza –> Draht|za)

Ein weiteres Problem gab es bei dem Wort Drahtzaun. Bei der Trennung nach KKVK –> KKV|K ergab sich die Trennung nach dem “Dra” – also falsch – zu “Dra|htzaun”. Eine weitere Zeichenklasse, der gedehnte Vokal H veränderte die zweite Zischlaut-Regel zum kürzeren, aber spezifischeren

  • KKHKZ –> KKHK|Z

Das Spielchen lässt sich fortsetzen, allerdings stößt diese Betrachtungsweise irgendwann auf ihre Grenzen. Die Worte “Birnenbaum” (KVK|KVK|KV2K) und “Birnbaum” (KVKK|KV2K) benötigen völlig unterschiedliche Regeln, die allerdings durchaus im Gegensatz zu anderen Worten und Regeln stehen (Etwa der Regel KVKK –> KVK|K, die das Wort “Birnbaum” fälschlich nach “Bir” trennen würde). Nun ist das Wort “Birnbaum” mundart, allerdings war es nicht meine Prämisse, nur hochdeutsche Wörter zu trennen, sondern alle.

Mit jedem weiteren Sonderfall wurden die Regeln länger und spezifischer – und auch: Widersprüchlicher (Wie war das, man solle nicht ‘s’ vom ‘t’ trennen?). Die Worte “Bassist” und “Hasspredikt” zeigen weitere Schwierigkeiten bei der Trennung von Doppelvokalen. Sie sind lösbar, aber Regeln wie “KVKKVK –> KVK|KVK” und “KVKKKKV –> KVKK|KKV” sind nur bedingt schön. Und es wurde nicht schöner.

Mit anderen Worten: Der scheinbar einfachere Ansatz war unerwartet komplex, funktionierte nach dem Erweitern mit empirisch ertasteten Regeln jedoch recht gut. Als ich dann die Worte “Silbentrennung” und “Buchstabensuppe” trennen ließ, fielen mir allerdings fast die Schrauben aus dem Rechner. Die Frage stellte sich nach der Reihenfolge der Wirksamkeit der Regeln – längere, komplexere zuerst, um Sonderfälle auszumerzen? Oder kürzere zuerst, um eben diese nicht zu übergehen und unnötige, programmatische Schleifen zu verhindern? Zwischenzeitlich habe ich Angaben darüber, an welcher Stelle im Wort die Regeln wirksam sind (Anfang, Ende, beliebig) festgelegt, sowie atomische Silben, die kleinste, erlaubte Kombinationen darstellen und automatisierte Fehlerüberprüfung und -korrektur ermöglichen.
Ich habe das Problem nach einer Weile liegen lassen und etwas anderes getan. Das nächste Mal versuche ich den Weg über die Phonotaktik. Vielleicht bringt mich das ja weiter.

Guerilla Poetry, Shot 2 (klein)

Eine Antwort zu „Silbentrennung”

  1. #1~Imre

    Hallo Markus,

    ich bastele auch gerade an einem solchen Algorithmus (für Ungarisch). Das was zuerst ganz einfach aussieht, entpuppt sich später als wahnsinnig komplex. Mein Ansatz: jede Sprache hat gewisse Lehnwörter (aus dem Englischen, Französischen, Latein usw.) die streng genommen, der Rechtschreibung nicht genügen, diese Wörter werden mit der Originalrechtschreibung in die jew. Sprache aufgenommen. ‘Th’ in ‘These’ (griech./lat.) ist schon mal der erste Störfaktor. Man könnte es als Doppelkonsonant definieren und sagen, wann auch immer ein ‘th’ Buchstabenfolge vorkommt, muss als Doppelbuchstabe behandelt werden. Gut. Und was macht man dann mit ‘th ‘in ‘Rathaus’? :) Entscheidend ist also die Ethymologie des jeweiligen Wortes.

    Andere Fragen kann man vielleicht mittels Regexp klären.