Chapter 06

辞書について

ikawaha
ikawaha
2020.12.14に更新

kagome では辞書はプログラムに埋め込める形式で用意されています。これらの辞書は import するだけでプログラムから利用できます。辞書は一度メモリに読み込まれると、singleton で使い回して、複数の形態素解析器から利用されます。

辞書は IPADIC、UniDIC の2種類の辞書をサポートしています。IPADIC は MeCab のいわゆる標準的な辞書で、UniDICにくらべて直感に合うような区切りをしています。UniDic は形態素の単位が短く、規則的です。どちらの辞書も作成からだいぶ月日がたってしまっています。区切りも違うので単純に比較できませんが、IPADIC の語彙数がおおよそ 40万、UniDic の語彙数が 75万となっています。メモリが潤沢でない環境では IPADIC を使うのがよいかも知れません。また、UniDic は語彙単位が短いので検索などの区切りに向いているかも知れません。

辞書 ソース package
MeCab IPADIC mecab-ipadic-2.7.0-20070801 github.com/ikawaha/kagome-dict/ipa
UniDIC unidic-mecab-2.1.2_src github.com/ikawaha/kagome-dict/uni

実験的ではありますが、NEologd と Korean MeCab も利用可能です。NEologd はネットなどから固有表現を収集し、膨大な語彙をカバーします。Korean MeCab は MeCab で利用できる韓国語の形態素解析辞書です。

辞書 ソース package
mecab-ipadic-NEologd mecab-ipadic-neologd github.com/ikawaha/kagome-ipa-neologd
Korean MeCab mecab-ko-dic-2.1.1-20180720 github.com/ikawaha/kagome-dict-ko

辞書情報

IPADIC と UniDic では辞書に含まれる情報が異なります。それぞれの辞書での解析のサンプルと辞書内容を示します。

IPADIC

解析結果

公園	名詞,一般,*,*,*,*,公園,コウエン,コーエン
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
行っ	動詞,自立,*,*,五段・カ行促音便,連用タ接続,行く,イッ,イッ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS

辞書素性

No. 素性 説明
0 品詞階層 0 (大分類) 品詞は階層0〜3の4つ組で表現されます。0から順に大分類、中分類と粒度が細かくなります
1 品詞階層 1 (中分類)
2 品詞階層 2 (小分類)
3 品詞階層 3 (再分類)
4 活用型 eg. 五段・カ行促音便
5 活用形 eg. 連用タ接続
6 原形 辞書の見出し形式 eg. 行っ -> 行く.
7 読み カタカナで読みが与えられます eg. コウエン.
8 発音 読みと同様カタカナで与えられます eg. コーエン.

UniDic

解析結果

公園に行ったex
公園	名詞,普通名詞,一般,*,*,*,コウエン,公園,公園,コーエン,公園,コーエン,漢,*,*,*,*
に	助詞,格助詞,*,*,*,*,ニ,に,に,ニ,に,ニ,和,*,*,*,*
行っ	動詞,非自立可能,*,*,五段-カ行,連用形-促音便,イク,行く,行っ,イッ,行く,イク,和,*,*,*,*
た	助動詞,*,*,*,助動詞-タ,終止形-一般,タ,た,た,タ,た,タ,和,*,*,*,*

辞書素性

参考:ftp://ftp.jaist.ac.jp/pub/sourceforge.jp/unidic/57618/unidic-mecab.pdf

No. 名前 素性 説明
0 POS0 品詞階層 0 (大分類) 品詞は階層0〜3の4つ組で表現されます。0から順に大分類、中分類と粒度が細かくなります
1 POS1 品詞階層 1 (中分類)
2 POS2 品詞階層 2 (小分類)
3 POS3 品詞階層 3 (再分類)
4 cType 活用型 eg. 五段-カ行.
5 cForm 活用形 eg. 連用形-促音便.
6 lForm 語彙素読み 語彙素の読み eg. コウエン、 イク
7 lemma 語彙素表記 語彙素の表記 eg. 公園, 行く
8 orth 書字形 eg. 行く -> 行っ.
9 pron 発音形 形態素の読み eg. コーエン, イッ.
10 orthBase 書字形基本形 辞書見出し形式 eg. 行っ -> 行く
11 pronBase 発音形基本形 辞書見出し形式での読み .e.g. イク
12 goshu 語種
13 iType 語頭変化型
14 iForm 語頭変化形
15 fType 語末変化型
16 fForm 語末変化型

辞書のオプション

辞書を利用する際に、品詞情報以外のコンテンツ(見出し語やヨミなどの情報)が不要な場合は、それらの情報をメモリに読み込まない選択肢が用意されています。DictShrink() を利用してください。すでに Dict() が利用されている場合は full に読み込んだ辞書を代わりに利用します。ただし、DictShrink() してから Dict() 呼ぶと、両方の辞書がメモリに載ってしまうので注意してください。

GAE で利用する場合などに役立つはずです。

	t, err := tokenizer.New(ipa.DictShrink())
	if err != nil {
		panic(err)
	}

参考: GAE のインスタンスのメモリとCPU

Instance Class Memory Limit CPU Limit
B1 128 MB 600 Mhz
B2 256 MB 1.2 Ghz
B4 512 MB 2.4 Ghz
B4_1G 1024 MB 2.4 Ghz
B8 1024 MB 4.8 Ghz
F1 128 MB 600 Mhz
F2 256 MB 1.2 Ghz
F4 512 MB 2.4 Ghz
F4_1G 1024 MB 2.4 Ghz