latticelmはノンパラメトリックベイズ法に基づくPitman-Yor言語モデルを用いた単語分割と言語モデルの教師なし学習ツールです。 ツールの特徴は、通常のテキストだけではなく、ラティスからも学習できることです。 ラティスから言語モデルを学習することによって、連続音声など、入力にノイズが存在する場合でもよりロバストに言語モデルが学習できます。 詳しくは以下の論文をご参照ください。
通常のテキストでも利用可能です。 テキストに対して用いた場合、ACL 2009で発表されているMochihashiらの手法とほぼ同等です(いくつかの細かいところで異なります)。
インストールの前に、OpenFstをインストールする必要があります。 OpenFstをインストールしてから、latticelmのディレクトリでmakeをしてください。 Ubuntu、Fedoraなどで動作を確認しています。 ソースはgithubでも入手可能です。
プログラムの使い方は、ソースと一緒にダウンロードできるチュートリアルを参照してください。 設定は以下のとおりです。
Usage: latticelm -prefix out/ input.txt
Options:
-burnin: burn-inのイタレーション数 (20)
-annealsteps: 焼き鈍し法のステップ数 (3)
Goldwater+ 2009の手法を利用している
-anneallength: 各焼き鈍しステップのイタレーション数 (5)
-samps: サンプルの回数 (100)
-samprate: サンプルの間隔 (1, つまり全てのイタレーション)
-knownn: 言語モデルのn-gram長 (3)
-unkn: 綴りモデルのn-gram長 (3)
-prune: もっとも確率の高いパスより悪いパスを枝刈りする。
ここで指定する値はその枝刈りの対数確率幅
-input: 入力の種類 (text/fst, デフォルトtext)
-filelist: 入力ファイルのリスト。各行に1ファイル。
FST入力はTropical半環のバイナリファイル。
テキスト入力は1行を1文とみなす
-symbolfile: FST入力のシンボルファイル
-prefix: 出力ファイルの名前の先頭に追加する文字列
-separator: 単語の「文字」を分ける文字列(例:_)
-cacheinput: FST入力の場合、入力をメモリに保持する。有効でない
場合は毎回ディスクから読み込む
latticelmはGraham Neubigによって開発されていますが、他の開発者も歓迎します。ご興味がある方はlatticelm@
までご連絡ください。またバグ報告、ご質問等はお気軽に連絡してください。
latticelmはApache License, Version 2.0に基づいて配布しています。