Sudachiの辞書は、テキスト形式(CSV)で作成したあと、高速化のためにバイナリ形式(.dic)に変換(ビルド)して使用します。
- 辞書ソース(CSV)の作成: ルールに従って単語を記述。
- バイナリへのビルド:
sudachipy ubuildコマンドを使用。 - 設定ファイルへの登録:
sudachi.jsonで作成した辞書を指定。
1. CSVフォーマットの詳細
辞書ソースは UTF-8 の CSV 形式で記述します。全18カラムありますが、ユーザー辞書作成において重要な項目を整理しました。
カラム一覧と設定値
| 番号 | 項目名 | 内容・指定例 |
| 1 | 見出し | 登録したい単語(例:推しの子) |
| 2 | 左連接ID | 通常は -1(自動設定) |
| 3 | 右連接ID | 通常は -1(自動設定) |
| 4 | コスト | 出現しやすさ。小さいほど優先される(例:5000) |
| 5 | 見出し | 1と同じでOK |
| 6-11 | 品詞1〜4, 活用型, 活用形 | 品詞情報(例:名詞,固有名詞,*,*,*,*) |
| 12 | 読み | 全角カタカナ(例:オシノコ) |
| 13 | 正規化表記 | 表記ゆれを統一する際の形 |
| 14 | 辞書形ID | 通常は * |
| 15 | 分割タイプ | A, B, C または * |
| 16 | A単位分割情報 | 分割する場合のIDまたは単語 |
| 17 | B単位分割情報 | 分割する場合のIDまたは単語 |
| 18 | 未使用 | 空白(*) |
ポイント:コストの決め方
すでに存在する単語と競合して意図通り分割されない場合は、コストを
1000〜3000程度に下げると優先的に抽出されやすくなります。
CSVの記述例 (user_dict.csv)
推しの子,-1,-1,5000,推しの子,名詞,固有名詞,*,*,*,*,オシノコ,推しの子,*,*,*,*,*
タイパ,-1,-1,5000,タイパ,名詞,一般,*,*,*,*,タイパ,タイムパフォーマンス,*,*,*,*,*
2. ステップバイステップ:辞書作成の流れ
ここからは具体的に Python 環境(SudachiPy)での手順を解説します。
Step 1: 必要なパッケージの確認
まずは SudachiPy とシステム辞書がインストールされているか確認します。
pip install sudachipy sudachidict_core
Step 2: システム辞書のパスを確認
ビルド時にシステム辞書の場所が必要になります。以下のコマンドでパスを確認しておきましょう。
# Pythonでパスを確認する場合
python -c "import sudachidict_core; print(sudachidict_core.dictionary_path)"
Step 3: ユーザー辞書のビルド
作成した user_dict.csv を、Sudachiが読み込めるバイナリ形式(user.dic)に変換します。
# -s: システム辞書のパス, -o: 出力ファイル名
sudachipy ubuild -s $(python -c "import sudachidict_core; print(sudachidict_core.dictionary_path)") -o user.dic user_dict.csv
Step 4: sudachi.json の設定
作成した user.dic を読み込むよう設定します。カレントディレクトリに sudachi.json を作成(または既存のものを編集)し、userDict フィールドを追記します。
{
"userDict" : ["user.dic"]
}
Step 5: 動作確認
実際に単語が登録されているかテストしてみましょう。
# 設定ファイルを指定して実行
echo "タイパを重視する" | sudachipy -r sudachi.json
実行結果(例):
タイパ 名詞,一般,*,*,*,* タイムパフォーマンス
を 助詞,格助詞,一般,*,*,* を
...
「タイパ」が「タイムパフォーマンス」として正規化され、一つの名詞として認識されていれば成功です!
まとめ
Sudachiのユーザー辞書を使いこなせれば、特定のドメインにおける解析精度を劇的に向上させることができます。
- CSVはUTF-8で保存
- 左/右連接IDは
-1で自動計算 - 分割単位(A, B, C)を意識して単語を登録
この3点を押さえて、自分だけの最強の辞書を構築してみてください。


コメント