📖

sudachpyでユーザー辞書をつくる

2024/08/08に公開

またつかいそうなのでメモ

https://github.com/WorksApplications/Sudachi/blob/develop/docs/user_dict.md
こいつをもとに

池田,4786,4786,5000,池田,名詞,固有名詞,一般,*,*,*,イケダ,池田,*,*,*,*,*
簡単コメント,4786,4786,5000,簡単コメント,名詞,固有名詞,一般,*,*,*,カンタンコメント,簡単コメント,*,*,*,*,*

こんな感じのテキストファイルを作成
これをsudachipyのubuildを使ってビルドする

sudachipy ubuild -s /path/to/your/system.dic user_dict.txt

system.dicはpip show sudachidict-core(or full or small)とか打てば出てくるディレクトリ内のresources/system.dicにある。user_dict.txtはさっき作成したもの。

次にsudachi.jsonを設定する。
またpip show sudachipyと打って出てきたディレクトリ内のresources/sudachi.jsonを編集する

{
    "systemDict" : "path/to/system.dic",
    "characterDefinitionFile" : "char.def",
    "userDict" : [ "/path/to/user.dic" ],
    "inputTextPlugin" : [
        { "class" : "com.worksap.nlp.sudachi.DefaultInputTextPlugin" },
        { "class" : "com.worksap.nlp.sudachi.ProlongedSoundMarkPlugin",
          "prolongedSoundMarks": ["ー", "-", "⁓", "〜", "〰"],
          "replacementSymbol": "ー"},
	    { "class": "com.worksap.nlp.sudachi.IgnoreYomiganaPlugin",
          "leftBrackets": ["(", "("],
          "rightBrackets": [")", ")"],
          "maxYomiganaLength": 4}
    ],
    "oovProviderPlugin" : [
        { "class" : "com.worksap.nlp.sudachi.MeCabOovPlugin",
          "charDef" : "char.def",
          "unkDef" : "unk.def" },
        { "class" : "com.worksap.nlp.sudachi.SimpleOovPlugin",
          "oovPOS" : [ "補助記号", "一般", "*", "*", "*", "*" ],
          "leftId" : 5968,
          "rightId" : 5968,
          "cost" : 3857 }
    ],
    "pathRewritePlugin" : [
        { "class" : "com.worksap.nlp.sudachi.JoinNumericPlugin",
          "enableNormalize" : true },
        { "class" : "com.worksap.nlp.sudachi.JoinKatakanaOovPlugin",
          "oovPOS" : [ "名詞", "普通名詞", "一般", "*", "*", "*" ],
          "minLength" : 3
        }
    ]
}

今回は1行目と3行目を変更したが3行目のuserdictを追加するだけでもいいと思う。
これで試しに実行する

sudachipy
簡単コメント
簡単コメント    名詞,固有名詞,一般,*,*,*        簡単コメント
EOS

ユーザー辞書が適用されていることが確認できる。

参考

https://github.com/WorksApplications/SudachiPy/blob/develop/docs/tutorial.md
https://github.com/WorksApplications/Sudachi/blob/develop/docs/user_dict.md
https://www.nogawanogawa.com/entry/sudachipy_userdict
https://toohsk.hateblo.jp/entry/2019/07/30/114719

Discussion