Julian用認識文法を生成する
公式のリファレンスに従うだけなのに、はまったので、メモ。
Juliusの再コンパイル
% make distclean % ./configure --enable-julian # 語彙サイズが大きくなりすぎるときは --enable-words-int というオプションが必要 % make % make install % make install.man.ja # これは好み
model.grammarの生成
model.vocaファイルに含まれない構文制約を含んではならない。
model.vocaの生成
読みをひらがなで記述した、model.yomiを作る。その後、julius-4.1.2/gramtools/yomi2voca/yomi2voca.plを用いて、model.vocaを生成する。
model.yomi
# コメント % CLASS 魑魅魍魎 ちみもーりょー
- 構文制約(CLASS)にmodel.grammarに含まれないものを書いてはいけない。
- 書き(魑魅魍魎)は表示にしか関わらないので、読みと関連が無くても良い。
- 読み(ちみもーりょー)はひらがなで書く(カタカナはエラーが出る)。
- 読みはJuliusディクテーション実行キットのmodel/lang_m/web.60k.htkdicに沢山書いてあるので、慣れるまで参考にする。
完成したら、yomi2voca.plを用いて、変換する。PerlだがMSYS環境なら、そのまま動く。
$ yomi2voca.pl model.yomi > model.voca
行数が出るのは仕様のようです。
Julian形式への変換
julius-4.1.2/gramtools/mkdfa/mkdfa.plのmkfaとdfa_minimizeのパスを修正する必要があった。
# mkfa executable location ($thisdir) = ($0 =~ /(.*(\/|\\))[^\/\\]*$/o); #$mkfabin = "${thisdir}mkfa"; $mkfabin = "${thisdir}mkfa-1.44-flex/mkfa"; # dfa_minimize executable location #$minimizebin = "${thisdir}dfa_minimize"; $minimizebin = "${thisdir}../dfa_minimize/dfa_minimize";
とすると動いた。
一応、「mkdfa.pl ../dir/model」を実行したときの../dir/modelは../dir/にmodel.grammarとmodel.vocaが同じディレクトリにあることを示している。
これで、生成できるので、SampleGrammer等からjconfファイルを取ってきて、実行すればよい。