Ich habe eine Frage zur Erstellung eines benutzerdefinierten Wörterbuchs für hunspell. Ich verwende im Moment ein allgemeines englisches Wörterbuch und eine Affix-Datei. Wie kann ich benutzerspezifische Wörter für jeden meiner Benutzer zu diesem Wörterbuch hinzufügen?
Antworten
Zu viele Anzeigen?Erstellen Sie Ihre eigene Wortliste und Affix-Datei für Ihre Sprache, falls diese nicht existiert. Nun, für Papiamentu - die Muttersprache von Curaçao - gibt es ein solches Wörterbuch nicht. Aber ich hatte Mühe, herauszufinden, wie man solche Dateien erstellt, also dokumentiere ich es hier: http://www.suares.com/index.php?page_id=25&news_id=233
Ich versuche, dasselbe zu tun, habe aber noch nicht genügend Informationen gefunden, um damit zu beginnen.
Sie sollten sich jedoch Folgendes ansehen hunspell - Format von Hunspell-Wörterbüchern und Affix-Dateien .
UPDATE
Wenn Sie mit .NET arbeiten, können Sie Folgendes herunterladen Hunspell .NET-Anschluss . Die Benutzung ist auch ziemlich einfach.
var bee = new Hunspell();
bee.Load("path_to_en_US.aff");
bee.Load("path_to_en_US.dic");
bee.Add("my_custom_word1");
bee.Add("my_custom_word2");
var suggestions = bee.Suggest("misspel_word");
Das Geheimnis, wie man hunspell
um zu funktionieren (zumindest bei mir), war es, die Orte herauszufinden, die von mir durchsucht werden sollten, und die benutzerdefinierten Wörterbücher dort abzulegen. Denken Sie auch daran, dass die Wörterbücher ein bestimmtes Format haben, so dass Sie sich an diese Regeln halten müssen.
Laufen hunspell -D
zeigt Ihnen den Suchpfad an. Unter MacOS enthält mein Pfad /Users/scott/Library/Spelling
also habe ich dieses Verzeichnis erstellt und meins dort abgelegt. Nehmen wir an, Sie wollen Ihr Wörterbuch aufrufen mydict
und Ihre Eingabedatei mit Wörtern heißt dict.txt
. Wir werden den Weg verwenden, den ich gerade gezeigt habe.
Kopieren Sie zunächst die Standard .aff
Datei. Sie sehen sie, wenn Sie die Datei hunspell -D
wie oben beschrieben. Für mich ist es in /Library/Spelling/en_US/
. Also
cp /Library/Spelling/en_US.aff /Users/scott/Library/Spelling/mydict.aff
Dann wird jedes Mal, wenn Sie Ihre Eingabeliste aktualisieren ( dict.txt
), tun Sie dies:
DICT=/Users/scott/Library/Spelling/mydict.dic cd ~/doc/dict cat dict.txt | sort | uniq > dict.in wc -l dict.in > $DICT cat dict.in >> $DICT rm dict.in
Zum Laufen hunspell
geben Sie einfach beide Wörterbücher an. Da ich also eine Liste von Rechtschreibfehlern haben möchte, verwende ich
hunspell -l -d scott,en_US <filename>
Ich bin auch dabei, diese Art von Funktion zu implementieren. Sobald Sie das Hunspell-Objekt mit einem zugehörigen Wörterbuch erstellt haben, können Sie ihm einzelne Wörter hinzufügen.
Beachten Sie jedoch, dass diese Wörter nur so lange verfügbar sind, wie das Hunspell-Objekt aktiv ist. Jedes Mal, wenn Sie ein neues Objekt aufrufen, müssen Sie alle benutzerdefinierten Wörter erneut hinzufügen.
Werfen Sie einen Blick auf die Dokumentation in openoffice
http://www.openoffice.org/lingucomponent/
speziell dieses Dokument http://www.openoffice.org/lingucomponent/dictionary.html
Das ist ein guter Ausgangspunkt