#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS