CRFに基づく形態素解析器のスコア計算の分割によるモデルサイズと解析速度の調整

形態素解析は，日本語の自然言語処理における基礎技術であり，情報検索や機械学習の前処理として利用される．日本語における代表的な形態素解析器としては，MeCab[1]やKyTea[2]が挙げられる．このうち，MeCabはConditionalRandomFields(CRFs)[3]を利用してパラメータを学習し，入力文から形態素ラティスを生成し，単一のノードから得られる素性と，隣合う2つのノードに対応した素性を用い，各素性のパラメータを最尤推定する．素性は解析精度等を考慮して設計されるが，設計によってはモデルサイズが肥大化する．公開されている学習済みモデルを比較すると，IPAdic[4]では連接表のサイズが1,316×1,316であるが，現代書き言葉UniDic[5](Ver.3.1.0)は15,626×15,388であり，各スコアを16-bitで表現すると，連接表だけで459MiBとなる．UniDicでは，素性テンプレートの見直しによってモデルサイズを軽量化する試みが行われているが，依然として組み込み機器やWebフロントエンド等の資源が限られた環境で利用するにはモデルサイズが大きく，可搬性が低い．本稿では，まずCRFに基づく形態素解析について説明し，一部のスコア計算を解析時に行うことで，モデルのパラメータに手を加えずにモデルサイズを軽量化することを提案する．また，解析時のスコア計算を効率的に行う方法についても示す．