MLTL: 機械学習テンプレートライブラリ

Introduction

MLTL機械学習テンプレートライブラリは,自然言語処理へ機械学習を応用する研究や,より自然言語処理に適した機械学習手法の開発を容易にするため,YANS活動の中で清水伸幸と宮尾祐介を中心として作られた C++ テンプレートライブラリです.特に,系列構造や木構造など,自然言語の構造を表現するのに適した構造に対して,様々な機械学習アルゴリズムを利用できるように設計されています.

設計の特徴として,データ構造を表すクラスと学習アルゴリズムを表すテンプレートクラスを分離し,これらの間をつなぐインタフェースを設定することで,汎用性を高めています.これにより,新たにデータ構造クラスを作成した場合に様々な学習アルゴリズムとの組み合わせを容易に試すことができ,逆に,新たな学習アルゴリズムを実装した場合には様々なデータ構造との組み合わせを試すことができます.

現在のところ,以下のデータ構造が実装されています.

また,以下の学習アルゴリズムが実装されています.

これらのデータ構造と学習アルゴリズムの任意の組み合わせを利用することができます(一部制限あり).例えば,マルコフ連鎖とログ線形モデルを組み合わせれば,linear-chain CRF になります.

分類やタグ付けなど,自然言語処理の多くの問題に対しては,上記のように既にデータ構造が用意されているので,そのまま学習器が利用できます.例えば,品詞タグ付けや固有表現認識は,CoNLL 形式のデータを与えることで学習およびテストができます.さらに発展的な使い方として,データ構造や学習アルゴリズムを自分で実装することで,新たなデータ構造や学習アルゴリズムを利用することができます.

Manual

Download