Silbentrennung in PHP für die deutsche Sprache?
Bevor man direkt loslegt und darauf Los programmiert erstmal ein wenig Lesestoff um überhaupt ein Überblick zum Thema zu bekommen. In englischer Sprache wird Die Silbentrennung übrigens „hyphenation“ genannt.
Also fangen wir mal an mit etwas Hintergrundwissen
- Wikipedia zum Thema Silbentrennung
- Orthographie – Silbentrennung – von Rüdiger Weingarten
- Überblick über Silbentrennung
- Etwas zu Silbenschnitt und Tonakzente
- Lange Vokale, Dehungszeichen,…
- Literaturliste zum Thema
Folgende Themen betrachten wir etwas genauer:
- Hyphenation – Silbentrennung
- Stemming – Stammformreduktion, Normalformenreduktion
- Inflection – Flexion
- Pronunciation – Aussprache
Algorithmen, Methoden und Vorgehensweisen:
- Porter Stemmer
- Frank Liang, Word Hy-phen-a-tion by Com-put-er Algorithmus – [PDF]
- Org_Heigl_Hyphenator
Fertige Lösungen
- PHP – http://www.phpblogger.net/download/silben_trennen.phps
- PEAR PHP – http://pear.php.net/package/Text_TeXHyphen
- Phyton – http://nedbatchelder.com/code/modules/hyphenate.py
Tests
Wie teste ich das ganze?
Zum testen gibt es mehrere Möglichkeiten. Was man auf jeden Fall benötigt sind Wörter von denen die richtige Trennung bekannt ist. Diese werden als Referenzliste verwendet um die Genauigkeit festzustellen. Problematisch dabei ist, dass man schon ziemlich viele Referenz Trennungen benötigt damit die Genauigkeit der Genauigkeit (gnn..) genau ist. (Hilfe!!).
Natürlich ist das Aufbauen einer solchen Liste ein ziemlicher Aufwand einige tausend Datensätze benötigt man schon. Zum Glück gibt es zahlreiche Projekte die sich mit diesen Thema beschäftigen. Eine Referenzliste für Trennungen die ziemlich gut ist z.B. diese hier: A database of German words with hyphenation information. Projektseite, GitHub
Diese Quelle beinhaltet eine Sammlung von Wörter mit der Angabe an welchen Stellen das Wort richtig getrennt wird. Die Trennungen sind soweit ziemlich genau und von der Anzahl her mit 460.548 ziemlich umfangreich..
Vorgehensweise
Im grunde ist der Aufwand für die implementierung und realisieren eines Algorithmus ziemlich Aufwendig. Daher sollte man zuerst mal testen wie die Performance ist wenn nach einem Wort in der Liste gesucht wird, wenn diese in einer MySQL Datenbank gespeichert wird.
….todo…
Die ersten Experimente
Fazit
…todo…
Fertige Lösungen
Eine fertige Lösung wurde mir von einem Leser zugesendet die sich sehr Interessant anhört. Die Lösung findet man auf dem blog.beran-solutions.de unter dem Artikel: Worttrennung mit PHP. Vielen Dank…..
Pingback: Worttrennung mit PHP – Der Blog eines Datenreisenden!
Super, Danke.(-;