目次
インストール
本家 MeCab より Windows 用のバイナリパッケージをダウンロードします。
ダウンロードしたインストーラーを実行します。 今回は辞書の文字コードは「SHIFT-JIS」を選択。
辞書の作成
以下の形式の csv でデータを作成します。末尾に追加エントリもできるようです。
表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音
作成例1)
山田太郎,,,10,名詞,一般,,,,,やまだたろう,ヤマダタロウ,ヤマダタロウ,独自辞書
作成例2)
管理者権限でコマンドを開いて mecab-dict-index
を実行します。
cd C:\Program Files (x86)\MeCab bin\mecab-dict-index -d "dic\ipadic" -u "dic\userdic\userdic1.dic" -f shift-jis -t utf-8 "dic\userdic\userdic1.csv" bin\mecab-dict-index -d "dic\ipadic" -u "dic\userdic\userdic2.dic" -f shift-jis -t utf-8 "dic\userdic\userdic2.csv"
オプションは以下の通り。
mecab-dict-index [options] files -d : システム辞書のディレクトリ -u : ユーザー辞書の保存先 -f : CSVファイルの文字コード -t : ユーザー辞書の文字コード
実装
前回のアプリを元に修正します。
前項で作成した辞書をシステム辞書と同じ実行ディレクトリの dic
フォルダに配置します。(bin\Debug\netcoreapp3.1\dic
など)
MeCabTagger
を作成する際に、ユーザー辞書を設定したパラメータを引数に指定します。
var param = new MeCabParam(); param.DicDir = @"dic"; param.UserDic = new[] { "userdic1.dic", "userdic2.dic" }; var tagger = MeCabTagger.Create(param);
ユーザー辞書を追加しなかった場合、「山田太郎」が「山田」と「太郎」で分解されます。
ユーザー辞書を追加した場合、「山田太郎」が名詞として1つになっています。また、末尾に追加した「独自辞書」のエントリも問題なく動いてます。
参考
辞書を作成できるサンプルアプリを公開してる方もいらっしゃいました。