📖

Sudachipyの設定ファイルにユーザ辞書を自動で追加するスクリプト

2021/05/15に公開

概要

形態素解析器Sudachiでユーザが任意の辞書ファイルを利用するには、設定ファイルの項目userDictにファイルパスを追加する必要があります。オジリナルのSudachi自体やPython版のsudachipyでは設定ファイルをjson形式で渡すことで自由にユーザ辞書を使うことができますが、sudachiをバックエンドで使っている別のシステムなどでは、設定ファイルを自由に渡すことができない場合があります。そうした状況では設定ファイルを直に書き換える必要がありますが、Pythonパッケージとしてインストールされた設定ファイルを探し出して変更を加えるのは大変ですし、Dockerなどの環境構築時に利用できない問題があります。

そこで、spaCy+GiNZAを利用している状況において、GiNZAが利用するsudachipyの設定ファイルにユーザ辞書のパスを追加するためのスクリプトを作りました。

使い方

$ python modify_sudachi_json.py --user_dict path/to/user.dic --debug

--user_dictは設定ファイルに挿入するユーザ辞書のパスです。相対パスを設定しても内部で絶対パスに変換します。なお--user_dict path/to/user1.dic, path/to/user2.dicのように、複数個指定することが可能です 。

--debugは設定ファイルやユーザ辞書のパスを標準出力に表示するオプションです。実行結果を確認したりログに出力したい時に利用します。

実行例

$ python modify_sudachi_json.py --user_dict user_dict.dic --debug
sudachi.json: /Users/yag_ays/.pyenv/versions/3.8.3/lib/python3.8/site-packages/sudachipy/resources/sudachi.json
userDict: /Users/yag_ays/dev/nlp/sudachi/modify_sudachi_json/user_dict.dic

# poetryの場合
$ poetry run python modify_sudachi_json.py --user_dict user_dict.dic --debug
sudachi.json: /Users/yag_ays/Library/Caches/pypoetry/virtualenvs/hoge-l0yczTy0-py3.8/lib/python3.8/site-packages/sudachipy/resources/sudachi.json
userDict: /Users/yag_ays/dev/nlp/sudachi/modify_sudachi_json/user_dict.dic

コード

参考

Discussion