#author("2022-02-07T04:48:47+09:00","default:ryuichi","ryuichi")
#author("2022-02-07T04:52:47+09:00","default:ryuichi","ryuichi")
* hunspellコマンドでカスタム辞書作成 [#e8c0d7cf]
** hunspellのインストール [#kbfb3458]
#shell(){{
$ yum install hunspell hunspell-tools
}}
- 上はDebianの場合
** 辞書のサーチパスの確認 [#u3af5983]
#shell(){{
$ hunspell -D
SEARCH PATH:
(略)
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
/usr/share/hunspell/en_US
}}
- Debianの場合は初期インストールの時点で/usr/share/hunspell/en_USが有効になっている
- なお、1つの辞書は2つのファイルから構成されており、/usr/share/hunspell/en_US.aff と /usr/share/hunspell/en_US.dic が存在している
** カスタム辞書の作成 [#s13a39be]
*** 単語ファイルの作成 [#b469ddd2]
vi words.txt
--------------
FOO
BAR
--------------
*** .dicファイルの作成 [#lb00ac66]
wc -l ./words.txt > mydict.dic
sort ./words.txt | uniq >> ./mydict.dic
*** .affファイルの作成 [#d8068d08]
echo -n > ./mydict.aff
- .affファイルは複雑な指定が可能だが、辞書のサイズが小さければ空のファイルでも何とかなるっぽい
- 本気でやるなら、hunspellのドキュメントを熟読するしかない
*** 辞書の設置 [#bb6473d6]
mkdir ~/.dict
cp mydict.* ~/dict/
export DICPATH=~/.dict
hunspell -D
- 適当な場所(ここでは~/.dict)にディレクトリを作って、そこに.dicファイルと.affファイルを置く
- その場所を環境変数DICPATHに登録する
*** 動作確認 [#u189126a]
#shell(){{
$ echo FOO BAR | hunspell -d mydict -l
$ echo FOO BAR baz | hunspell -d mydict -l
baz
}}
- FOO と BAR は単語リストにあるのでエラーにならない
- bazはエラーになる
** ロケールに合った辞書ファイルを作るには [#n939a78b]
/usr/share/hunspell/en_US以下にある.dicファイルと.affファイルをコピーして、.dicファイルに新しい単語を書き込み、en_US.dic や en_US.aff というファイル名で設置するといいっぽい。が、未確認
** 参考 [#f6b1ece0]
- http://web.archive.org/web/20130810100226/http://www.suares.com/index.php?page_id=25&news_id=233
- https://stackoverflow.com/questions/7561648/how-to-make-custom-dictionary-for-hunspell
- https://www.manpagez.com/man/5/hunspell/
- https://github.com/hunspell/hunspell
- https://stackoverflow.com/questions/8931580/hunspell-cant-open-affix-or-dictionary-files-for-dictionary-named-en-us