web-dev-qa-db-ja.com

Hunspellのカスタム辞書の作り方

Hunspell用のカスタム辞書の作成について質問があります。現在、一般的な英語の辞書と接辞ファイルを使用しています。ユーザーごとにその辞書にユーザー指定の単語を追加するにはどうすればよいですか?

25
Amin Y

自分の言語用の独自の単語リストと接辞ファイルを作成します(存在しない場合)。さて、キュラソーの母国語であるパピアメント語の場合、そのような辞書は存在しません。しかし、私はそのようなファイルを作成する方法を見つけるのに苦労したので、ここでそれを文書化しています: http://www.suares.com/index.php?page_id=25&news_id=2

16
Serak Shiferaw

私は同じことをしようとしていますが、まだ始めるのに十分な情報が見つかりません。

ただし、 hunspell --Hunspell辞書と接辞ファイルの形式 を確認することをお勧めします。

[〜#〜]更新[〜#〜]

.NETを使用している場合は、 Hunspell .NETポート をダウンロードできます。使い方もかなり簡単です。

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");
5
Ray Cheng

このタイプの機能も実装しています。関連付けられた辞書を使用してHunspellオブジェクトを作成したら、それに個々の単語を追加できます。

ただし、これらの単語は、Hunspellオブジェクトが存続している間のみ使用可能であることに注意してください。新しいオブジェクトにアクセスするたびに、すべてのユーザー定義の単語を再度追加する必要があります。

1
Kevin

hunspellを機能させる秘訣は(少なくとも私にとっては)、私が所有していた検索場所を見つけ出し、そこにカスタム辞書を配置することでした。また、辞書は特定の形式であるため、これらの規則に従う必要があることにも注意してください。

hunspell -Dを実行すると、検索パスが表示されます。 MacOSでは、私のものには/Users/scott/Library/Spellingが含まれているので、そのディレクトリを作成してそこに置きました。辞書をmydictと呼び、単語の入力データファイルをdict.txtと呼びます。先ほど示したパスを使用します。

まず、デフォルトの.affファイルをコピーします。上記のようにhunspell -Dを実行すると表示されます。私にとって、それは/Library/Spelling/en_US/にあります。そう

cp /Library/Spelling/en_US.aff /Users/scott/Library/Spelling/mydict.aff

次に、入力リスト(dict.txt)を更新するたびに、次のようにします。

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

hunspellを実行するには、両方の辞書を指定するだけです。だから私にとっては、スペルミスのリストが欲しいので、

hunspell -l -d scott,en_US <filename>

1
Scott C Wilson