Jagger 形態素解析向けに mecab-unidic-nelogdn で辞書をつくるメモ
背景
高速日本語形態素解析 jagger を動かすメモ
で, KWDLC 以外の辞書つくりたい(学習したい)
(日本語)形態素解析用辞書いくつかあるけどなにがええんじゃ...
2022年最新版 Python + mecab の周辺事情
2024/03 時点では, ここから進化はないようです.
なので unidic がメンテ続いていていい気がしますが, コンパイルされた(?)バイナリの辞書しか配布されていません
語彙集 csv がほしいのに...
(mecab ソースコード読んで語彙 dump するほうほう見つけるのでもいいかもですが, めんどい...)
full のほうに lex.csv で語彙集がありました! しかしとりあえずはタイトル通り mecab-unidic-neologdn を使うことにします.
アップデートは止まっていますが, mecab-unidic-neologdn を試します!
mecab-unidic-neologdn
(株)姫野工務店,4786,4786,4065,名詞,固有名詞,一般,*,*,*,カブシキガイシャヒメノコウムテン,姫野工務店,(株)姫野工務店,カブシキガイシャヒメノコームテン,(株)姫野工務店,カブシキガイシャヒメノコームテン,固,*,*,*,*
(株)姫野精工所,4786,4786,4065,名詞,固有名詞,一般,*,*,*,カブシキガイシャヒメノキヨシコウショ,姫野精工所,(株)姫野精工所,カブシキガイシャヒメノキヨシコウショ,(株)姫野精工所,カブシキガイシャヒメノキヨシコウショ,固,*,*,*,*
(株)孝松工務店,4786,4786,4065,名詞,固有名詞,一般,*,*,*,カブシキガイシャコウマツコウムテン,孝松工務店,(株)孝松工務店,カブシキガイシャコーマツコームテン,(株)孝松工務店,カブシキガイシャコーマツコームテン,固,*,*,*,*
な感じで, 会社名とかあるのもいいですね.
語彙数は 338 万ありました.
3384963 4470301 832984199 mecab-unidic-user-dict-seed.20200910.csv
ファイルサイズは 800MB くらいです.
train する
特に気を付けることはないでしょう.
以下のようにしてぺろっと train できます.
(train.JAG
は品詞付与されたデータ(e.g. KWDLC. オリジナルの jagger での train 参照))
./src/train_jagger -d model/mecab-unidic-neologdn/mecab-unidic-user-dict-seed.20200910.csv model/mecab-unidic-neologdn/train.JAG > model/mecab-unidic-neologdn/patterns
./src/jagger -m model/mecab-unidic-neologdn/patterns
メモリ消費は 8 GB くらいでした.
生成された辞書は 700 MB くらいでした.
形態素解析する
吾輩は猫である。名前はまだない。
吾輩は猫である 名詞,固有名詞,人名,一般,*,*,シャムマディラジュ,シャム・マディラジュ,シャムマディラジュ,シャムマディラジュ,シャムマディラジュ,シャムマディラジュ,固,*,*,*,*
。 特殊,句点,*,*,。,。,*
名前 名詞,普通名詞,*,*,名前,なまえ,*
は 助詞,副助詞,*,*,は,は,*
まだ 副詞,*,*,*,まだ,まだ,*
ない 形容詞,*,イ形容詞アウオ段,基本形,ない,ない,*
。 特殊,句点,*,*,。,。,*
EOS
「吾輩は猫である」が固有名詞として解釈されました. 最長一致ベースなのでこうなりますね.
mecab-jumandic では英単語はないのでうまく形態素解析できませんでしたが, unidic ではいくらか登録されているようで, hello, I am legend.
がある程度分解できました.
hello 名詞,固有名詞,一般,*,*,*,ハロー,Hello,hello,ハロー,hello,ハロー,固,*,*,*,*
, I 特殊,読点,*,*,*,*,*
am 名詞,固有名詞,一般,*,*,*,アム,AM,am,アム,am,アム,固,*,*,*,*
名詞,普通名詞,*,*,*,*,*
legend 名詞,固有名詞,一般,*,*,*,レジェンド,LEGEND,legend,レジェンド,legend,レジェンド,固,*,*,*,*
. 名詞,普通名詞,*,*,*,*,*
EOS
, I
で分解されててちょっとへんですが...
.
が句点とはなりませんでしたが, しょうがないですかね.
問題点
名詞の feature(読みとか) がおかしいです.
吾輩は猫である 名詞,固有名詞,人名,一般,*,*,シャムマディラジュ,シャム・マディラジュ,シャムマディラジュ,シャムマディラジュ,シャムマディラジュ,シャムマディラジュ,固,*,*,*,*
10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。
10日 名詞,固有名詞,一般,*,*,*,トオカ,10日,10日,トオカ,10日,トオカ,固,*,*,*,*
放送 名詞,サ変名詞,*,*,放送,ほうそう,*
の 助詞,格助詞,*,*,の,の,*
「 特殊,括弧始,*,*,「,「,*
中居正広のミになる図書館 名詞,固有名詞,人名,一般,*,*,ウォルターラングトリオエルフ,ウォルター・ラング・トリオ‘エルフ',ウォルター・ラング・トリオ‘エルフ’,ウォルターラングトリオエルフ,ウォルター・ラング・トリオ‘エルフ’,ウォルターラングトリオエルフ,固,*,*,*,*
」 特殊,括弧終,*,*,」,」,*
( 特殊,括弧始,*,*,(,(,*
テレビ朝日 名詞,固有名詞,一般,*,*,*,テレビアサヒ,テレビ朝日,テレビ朝日,テレビアサヒ,テレビ朝日,テレビアサヒ,固,*,*,*,*
系 名詞,普通名詞,*,*,系,けい,*
) 特殊,括弧終,*,*,),),*
で 助詞,格助詞,*,*,で,で,*
、 特殊,読点,*,*,、,、,*
SMAP 名詞,固有名詞,一般,*,*,*,スマップ,SMAP,SMAP,スマップ,SMAP,スマップ,固,*,*,*,*
の 助詞,接続助詞,*,*,の,の,*
中居正広 名詞,固有名詞,人名,一般,*,*,ウォルターラサリー,ウォルター・ラサリー,ウォルター・ラサリー,ウォルターラサリー,ウォルター・ラサリー,ウォ ルターラサリー,固,*,*,*,*
が 助詞,接続助詞,*,*,が,が,*
、 特殊,読点,*,*,、,、,*
篠原信一 名詞,固有名詞,一般,*,*,*,カーンプル,カーンプル,カーンプル,カーンプル,カーンプル,カーンプル,固,*,*,*,*
の 助詞,接続助詞,*,*,の,の,*
過去 名詞,普通名詞,*,*,過去,かこ,*
の 助詞,接続助詞,*,*,の,の,*
勘違い 名詞,サ変名詞,*,*,勘違い,かんちがい,*
を 助詞,格助詞,*,*,を,を,*
明 名詞,固有名詞,人名,一般,*,*,シバタアンドアスナ,SHIBATA&ASUNA,SHIBATA&ASUNA,シバタアンドアスナ,SHIBATA&ASUNA,シバタアンドアスナ,固,*,*,*,*
かす 名詞,固有名詞,一般,*,*,*,カス,かす,かす,カス,かす,カス,固,*,*,*,*
一 名詞,数詞,*,*,一,いち,*
幕 名詞,固有名詞,一般,*,*,*,サンビャクニジュウキロ,320キロ,320キロ,サンビャクニジュウキロ,320キロ,サンビャクニジュウキロ,固,*,*,*,*
が 助詞,格助詞,*,*,が,が,*
あった 動詞,*,子音動詞ラ行,タ形,ある,あった,*
。 特殊,句点,*,*,。,。,*
EOS
あとは, 「明かす」が「明」「かす」で両方名詞でちょっとへん.
jagger では, surface でまずマッチングを取り, その後 feature 文字列の一致探索みたいなことをしているのですが, いくつか語彙とかにサイズ制限がある感じなので, そのあたりでおかしくなるバグに引っかかったと思われます...
大まかな品詞がわかればよい用途では問題ないと思われます...
あとは, POS-tagged 教師データが KWDLC だと弱い気がします.
人手で品詞付与作業はめんどいので, Wikipedia の品質高い記事を抜き出し, Sudachi などで品詞付与して教師データを作るといいかもしれません.
TODO
- unidic から語彙集を抜き出す方法を調べる. full のパッケージに lex.csv でありました.
- 名詞の feature がバグる原因を調べる
- 品詞付与教師データを拡充する
Discussion