スペルチェッカーの hunspell の使い方です
スペルチェッカーといえば
- ispell
- aspell
- hunspell
- enchant
あたりが定番です.2022年の時点でデファクトは hunspell ?という状況です
hunspell は Linux環境だと特に問題なく”普通"に使えますが,自分でビルドしたり,Windows環境で使う場合は,少しハマります.
以下,トラブルシューティングの方法も含めて,hunspell の使い方をメモしておきます
hunspell の使い方(コマンドラインから)
コマンドラインで使用するのは動作確認時ぐらいでしょう
オプション -d で辞書を指定して起動します
$ hunspell -d en_US
例えば hatena のスペルを確認してみます
$ hunspell -d en_US Hunspell 1.3.2 hatena & hatena 3 0: Athena, hate, Nate
stdinに"hatena"と入力すると, Athena, hate, Nateのスペルミスじゃない?って回答が出ます.
これが正常な動作です
hunspellの使い方(Emacsから)
必要最低限な設定は以下の通り
(use-package ispell :init (setq ispell-program-name "hunspell") (setq ispell-really-hunspell t) (setq ispell-local-dictionary "en_US") ;; 日本語交じりの文書を扱う (add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")) )
Emacsに標準付属の ispell.el が hunspell にも対応しています.注意すべきポイントは
- aspell や ispell などのコマンドがインストールされていると,hunspell ではなく,そちらを使う(場合がある)
- hunspell に固定する場合は,以下の二つの設定が必要
(setq ispell-program-name "hunspell") (setq ispell-really-hunspell t)
動作しない場合
ここからが本題です. Windowsや自分でビルドした場合はうまく動作しないことがあります.その対処方法をまとめます
状況を確認する
hunspellが動作しない原因の大半は,辞書が見つからないことに起因します.
hunspell の動作の仕組みとしては,まずhunspellの動作には辞書ファイルが必要です.例えば en_US の辞書が指定されると,hunspellは SEARCH PATHにある en_US.aff をサーチして,最初に見つかったファイルを利用します.
オプション"-D"をつけて hunspellを起動すると,この動作の確認ができます
$ hunspell -D
- SEARCH PATH に検索パス
- AVAILABLE DICTIONARIES に利用可能な辞書の一覧
が表示されます
必要な辞書が見つからない場合は,辞書をインストールし忘れてないか?インストール先ディレクトリは間違ってないか?確認しましょう