|
German | English
jWordSplitter ist eine kleine Java-Bibliothek zur Zerlegung deutscher Komposita. Die Zerlegung
basiert auf einem Wörterbuch, das im JAR integriert ist.
Download: jWordSplitter 3.4, 2012-09-25 (0,3MB),
Changelog
Maven-Dependency:
<dependency>
<groupId>de.abelssoft</groupId>
<artifactId>jwordsplitter</artifactId>
<version>3.4</version>
</dependency>
Beispiel-Nutzung:
AbstractWordSplitter splitter = new GermanWordSplitter (true);
splitter. setStrictMode(true);
Collection<String> parts = splitter. splitWord("Versuchsreihe");
System. out. println(parts ); // gibt aus: [Versuch, reihe]
Aufruf von der Kommandozeile:
java -jar jwordsplitter-3.4.jar <textdatei>
Hinweise zum verwendeten Algorithmus:
- Der Algorithmus ist sehr einfach und weiß fast nichts über Sprache: er zerschneidet das Wort und
prüft, ob ein Teil wirklich ein Wort ist, d.h. im Wörterbuch vorkommt. Ist das der Fall, wird
das gleiche Vorgehen wieder rekursiv auf den Rest des Wortes angewandt. Sonst wird die Stelle,
an der das Wort zerteilt wird, um einen Buchstaben verschoben. Entsprechend ist es auch egal,
ob die zu zerlegenden Wörter Nomen, Verben oder Adjektive sind.
- Nur mit dem Aufruf von splitter.setStrictMode(true) ist sichergestellt, dass bei der Zerlegung
alle Teilwörter auch wirklich Wörter sind. Ohne diesen Aufruf wird schon zerlegt, wenn nur ein
Teil ein richtiges Wort ist.
- Die Länge der zu zerlegenden Wörter ist nicht begrenzt. jWordSplitter kann auch
das berühmte Beispiel "Donaudampfschifffahrtskapitän" zerlegen (Donau, dampf, schiff, fahrt, kapitän).
- In der ZIP-Datei ist eine README-Datei die beschreibt, wie man das integrierte Wörterbuch exportiert
und wieder neu erstellt.
- Um die Qualität der Zerlegung zu verbessern, muss man den Inhalt des Wörterbuchs anpassen oder
mit der Methode GermanWordSplitter.addException() Ausnahmen hinzufügen.
- Das Wörterbuch sollte auch alle flektierten Wortformen (Plural, Genitiv etc.) beinhalten.
Außerdem gibt es Komposita-Teile wie "Miet" (Mietwohnung, Mietverhältnis) oder "Wohn" (Wohnraum, Wohnrecht),
die eigenständig keine Wörter sind, aber trotzdem im Wörterbuch sein müssen, wenn ihre
Trennung funktionieren soll.
- Der Algorithmus kennt das Fugenelement "s" wie in "Verlagshaus", aber er trennt
auch falsche oder seltene Wörter wie "Verlaghaus".
- Der Algorithmus funktioniert auch für andere Sprachen. Um eine weitere Sprache zu unterstützen, muss die Klasse
AbstractWordSplitter erweitert werden.
Der Sourcecode liegt
bei github.
Für Fragen bin ich unter naber(at)danielnaber.de
erreichbar.
Lizenz: Apache License Version 2.0
Je nach Anwendungsfall könnten compound-splitter
oder der DictionaryCompoundWordTokenFilter von Lucene eine Alternative
zu jWordSplitter sein.
Wer mehr Informationen zu Wörtern und ihren Vollformen braucht, findet hier
ein deutsches Morphologie-Lexikon.
Stichwörter: zusammengesetzte Wörter, Nominalkomposita, Kompositum, Worttrennung, Wortzerlegung
|