LanguageTool-Tutorial – Teil II: Komplexere XML-Regeln
Weitere Elemente
Statt für alle einzelnen Elemente ein Beispiel zu geben, sollen jetzt in Kürze weitere Funktionen von LanguageTool vorgestellt werden.
Möchte man, dass an einer Stelle ein beliebiges Wort steht, aber z.B. nicht »kommen«, benutzt man eine Negation mit negate=yes
:
<token negate="yes">kommen</token>
Man kann auch POS-Tags negieren, sodass beispielsweise alle Formen von »kommen«, die nicht dem Infinitiv entsprechen, gefunden werden. Das Token dazu sähe so aus:
<token inflected="yes" negate_pos="yes" postag=".*:INF:.*" postag_regexp="yes">kommen</token>
Hier ist noch ein Tipp zum Arbeiten mit POS-Tags: Will man beispielsweise prüfen, ob eine Verbform eindeutig zweite Person Singular ist, kann man folgende Konstruktion verwenden:
<token postag="VER:2:SIN.*" postag_regexp="yes"> <exception negate_pos="yes" postag="VER:2:SIN.*" postag_regexp="yes"/> </token>
Zunächst werden alle Verben gefunden, die mindestens das POS-Tag VER:2:SIN
haben. Dann werden alle Wörter ausgeschlossen, die ein POS-Tag haben, das nicht VER:2:SIN
entspricht. Diese Methode findet z.B. dann Anwendung, wenn die Kongruenz zwischen Subjekt und Prädikat überprüft werden soll.
Zusammenfassung und Ausblick
Hier ist noch einmal eine Zusammenfassung von allen Elementen, die in Teil II erklärt wurden:
skip
(überspringen),postag
(Wortform),postag_regexp="yes"
,inflected="yes"
(flektierte Form),negate="yes"
(Negation),exception
(Ausnahme),scope="next"
Außerdem wurde das Testen von Regeln mit Hilfe des Indexers und testwikipedia.sh vorgestellt.
Im nächsten Teil wird es um das Erstellen von Java-basierten Regeln gehen, mit denen noch komplexere Regeln erstellt werden können. Weitere Informationen zum Nach- und Weiterlesen gibt es wie immer auf der Development-Webseite von LanguageTool und im Wiki.
Autoreninformation
Markus Brenneis (Webseite) ist seit November 2011 LanguageTool-Entwickler und schreibt regelmäßig u.a. neue Regeln für die deutsche Grammatikprüfung.
Dieser Artikel ist in freiesMagazin 11/2012 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.