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など)を扱える
  • char.defの文字カテゴリに基づく未知語の自動カテゴリ分類
  • 学習されたCRFの重みから連接コスト行列を生成し、MeCab互換のコスト変換(tocost)を適用
  • ゼロコピーのrkyvバイナリ形式によるモデルのシリアライズ(読み込み時はレガシーJSON形式へのフォールバックにも対応)
  • Lindera/MeCab辞書ソースファイル(lex.csvmatrix.defunk.defchar.deffeature.defrewrite.defleft-id.defright-id.def)の直接エクスポート

目次