Login


 
Newsletter
Werbung
Do, 6. Dezember 2012, 15:00

LanguageTool-Tutorial – Teil II: Komplexere XML-Regeln

Von gulp21

Die schnelle Methode: Indexer

Eine Möglichkeit, mit der das Testen recht schnell geht, ist die Verwendung des Wikipedia-Indexers. Dazu muss jedoch zunächst ein Index aufgebaut werden, der für die schnelle Suche verwendet werden kann. Wenn die XML-Datei im Verzeichnis mit den LanguageTool-Dateien liegt, führt man in diesem Verzeichnis folgenden Befehl aus, um einen Index mit 3000 Artikeln im Verzeichnis wikipediaIndexDe zu erstellen:

$ java -cp LanguageTool.jar:bliki-3.0.3.jar:lucene-core-4.0.0-BETA.jar:lucene-analyzers-common-4.0.0-BETA.jar org.languagetool.dev.wikipedia.WikipediaIndexHandler dewiki-latest-pages-articles.xml wikipediaIndexDe de 3000

Um jetzt die deutsche Regel (de) mit der ID NACHDEM_PRAETERITUM in der Datei grammar.xml im Verzeichnis org/languagetool/rules/de/ zu testen, verwendet man diesen Befehl:

$ java -cp LanguageTool.jar:lucene-core-4.0.0-BETA.jar:lucene-sandbox-4.0.0-BETA.jar:lucene-queries-4.0.0-BETA.jar org.languagetool.dev.index.Searcher NACHDEM_PRAETERITUM org/languagetool/rules/de/grammar.xml de wikipediaIndexDe

Nach kurzer Wartezeit bekommt man alle Sätze, in denen die Regel Fehler gefunden hat, angezeigt.

Die zuverlässigere Methode: testwikipedia.sh

Da der Indexer wegen Limitierungen der Bibliothek Lucene nicht alle Funktionen, die in den Regeln verwendet werden können, unterstützt, gibt es noch eine andere Variante, die zwar langsamer ist, aber mit Sicherheit alle Fehler findet, die auch LanguageTool fände.

Zunächst muss das latest im Dateinamen von dewiki-latest-pages-articles.xml durch ein Datum im Format JJJJMMTT ersetzt werden, also beispielsweise dewiki-20121010-pages-articles.xml. Wenn die xml-Datei im selben Verzeichnis liegt wie die entpackten LanguageTool-Dateien, kann mit folgendem Befehl die deutsche Regel (de) mit der ID NACHDEM_PRAETERITUM anhand von 3000 Wikipediaartikeln geprüft werden, wobei nach 100 gefundenen Fehlern abgebrochen wird:

$ sh testwikipedia.sh - - de dewiki-20121010-pages-articles.xml NACHDEM_PRAETERITUM 3000 100 > out

Die Ausgabe des Befehls wird in die Datei out geschrieben. Um die relevanten Zeilen aus der Datei auszulesen, kann der Befehl grep benutzt werden:

$ grep -v "0 matches" out

Der Test mit testwikipedia.sh zeigt sowohl Schwächen der Regel als auch der Wikipedia-Artikel

Markus Brenneis

Der Test mit testwikipedia.sh zeigt sowohl Schwächen der Regel als auch der Wikipedia-Artikel

Pro-Linux
Frohe Ostern
Neue Nachrichten
Werbung