左連接ID、右連接IDとは
Sudachi ではコストの計算に MeCab のモデルを利用しています。コスト計算に関連する部分は辞書ソース上も同じ形式をとっており、左連接ID、右連接ID、(単語) コスト (それぞれ0始まりで1, 2, 3カラム目) は unidic-mecab-2.1.2 の値を加工したものです(MeCab では左文脈ID、右文脈IDとよんでいます)。
MeCab (と Sudachi) のコストは、単語列 $w_0, w_1, \ldots, w_n$ に対して以下のように計算されます。
\mbox{cost} = \sum_i C_w(w_i) + C_t(c_{i-1}^r, c_{i}^l)
このとき $C_w$ は単語コストでその単語の出現しやすさをあらわし、$C_t$ は連接コストで直前の単語とのつながりやすさをあらわします。この $C_t$ のインデックス $c^r, c^l$ が右連接IDと左連接IDです。前件 ($i-1$) を右からみたときの遷移クラスが $c_{i-1}^r$、後件 ($i$) を左からみたときの遷移クラスが $c_{i}^l$ ということですね1。
拡張隠れマルコフモデル
じつは MeCab の配布されている辞書 (UniDic, ipadic) では左右の連接IDは区別せずおなじIDがもちいられています。では、この左右の区別はなんのためにあるのでしょうか。MeCab の配布辞書は条件付き確率場法 (CRF) でコスト推定がなされていますが、MeCab 自身は特定のコスト推定方法に依存しないようにつくられています2。このとき念頭におかれていたのが拡張隠れマルコフモデル3による推定です。
CRFによるコスト推定が提案される以前、ChaSen などでは隠れマルコフモデルによるコスト推定がおこなわれていました。隠れマルコフモデルによる形態素解析では、品詞を遷移クラスとみなし、ある品詞から特定の単語が生起する確率と品詞から品詞へ遷移する確率をかんがえ単語列の生成確率をもとめます4。
当時、これらの確率の推定には最尤推定がもちいられることが一般的でした5。つまりコーパス内の出現頻度を数えてそれぞれの確率をもとめていました。しかし ipadic では助詞、助動詞に個別の品詞をあたえており、また活用型、活用形も品詞としてあつかうため、遷移クラスが数百におよび遷移がコーパス内でじゅうぶんに観測できないことが問題になっていました。そこで遷移クラスの一部をグルーピングし出現数を確保する手法6がとられました。そのひとつがこの拡張隠れマルコフモデルです。
遷移の性質をかんがえたとき、前の単語の活用形は重要ですが後にくる単語の活用形はとくに影響をあたえません。また助動詞「ちゃう」のような縮約形態をとる語は前からみると助詞「て」の性質をもちますし、後ろからみると補助動詞「しまう」とみなせます。このような場合、前 (左) からみたときと後ろ (右) からみたときの遷移クラスをわけることで、おなじ性質をもつ品詞をうまくグルーピングすることができます。このために導入されたのが左連接ID、右連接IDなのです。
CRF では素性を適切に設計することで複数の情報を同時に考慮できるようになり、品詞のグルーピングや左右の連接の区別は不要になりました。
Sudachi での左連接、右連接
Sudachi では unidic-macab のパラメータをもとにコストを付与していますが C 単位や B 単位の語は A 単位の系列とみなしてパラメータを事前に合成しています。このとき B, C 単位の単語では A 単位の系列とみなしたときの先頭単語の左連接IDをその単語の左連接ID、末尾単語の右連接IDを右連接IDとしています。したがって Sudachi の辞書内には左連接IDと右連接IDがことなる語が存在します。
ではよい Sudachi life を。
-
式中で左に出てくるのが右連接IDで、右に出てくるのが左連接IDです。 ↩
-
工藤拓, 「形態素解析の理論と実装」, 近代科学社, 2018, p. 99 ↩
-
浅原正幸, 松本裕治, 形態素解析のための拡張統計モデル, 情報処理学会論文誌, Vol. 43, No. 3, pp. 685-695, 2002, http://id.nii.ac.jp/1001/00011693/ ↩
-
単語生起確率と遷移確率がそれぞれ単語コスト、連接コストに対応します。 ↩
-
隠れ状態 (品詞) が隠れていないので最尤推定が可能。隠れ状態が観測できないふつうの隠れマルコフモデルの場合は EM アルゴリズムをつかって推定します。 ↩
-
たとえば活用型の情報は遷移に影響をあたえないのでこの情報を落としてグルーピングすることができます。 ↩