Lindera Trainer

Lindera Trainerは、CRFベースの辞書学習パイプライン(lindera train)を実装するクレートです。アノテーション付きコーパスと種辞書から学習済みモデルを生成し、そのモデルをMeCab形式の辞書ソースファイルにエクスポートしてバイナリ辞書としてビルドできるようにします。内部ではlindera-dictionaryのランタイム型とlindera-crfのCRFコアを利用しています。このクレートは直接利用することも、linderaファサードのtrain feature経由(lindera::dictionary::trainerとして再エクスポート)で利用することもできます。

主な特徴

  • lindera-crfによるCRFベースの重み学習(L1、L2、Elastic Net正則化に対応)
  • MeCab互換の素性テンプレート解析(feature.def: %F[n]、%L[n]、%R[n]、%w、%u、%l、%r、およびそれぞれの?付きオプション形式)
  • MeCab互換の3セクション形式による素性書き換え(rewrite.def: ユニグラム/左文脈/右文脈の書き換えルール)
  • 辞書形式に依存しない設計: surface,left_id,right_id,cost,feature...の列構成に従う辞書であれば任意のもの(IPADIC、UniDic、ko-dic、CC-CEDICTなど)を扱える
  • MeCabの学習器と同じ学習用ラティス: 各位置から始まる種辞書の語と、ランタイムがchar.defとunk.defから作る未知語を候補にし、unk.defのエントリごとに1つのCRFラベルを割り当てる
  • 学習されたCRFの重みから連接コスト行列を生成し、MeCab互換のコスト変換(tocost)を適用
  • ゼロコピーのrkyvバイナリ形式による、形式バージョン付きのモデルのシリアライズ(読み込み時はレガシーJSON形式へのフォールバックにも対応)
  • Lindera/MeCab辞書ソースファイル(lex.csv、matrix.def、unk.def、char.def、feature.def、rewrite.def、left-id.def、right-id.def)の直接エクスポート

目次