アットウィキロゴ

Palmkit

言語モデル作成のツールとして,大変お世話になっている「Palmkit」である. (使用方法等,詳細に関しては,伊藤彰則先生のHPで公開されている)

windows上でのインストールは,MinGWでは色々と足りないものがあるので,四苦八苦することになると思う.やるならCygwinとかの方がいいと思われる.

与えるコーパスは,後のことを考えて,EUCで作成したものを用いるのが良い.

  • 使い方(自分の場合)
text2wfreq hoge.text > hoge.wfreq

          語彙の頻度を算出する.出来たファイルは単語頻度リストである.
          与えるファイルは,分かち書きしてあるデータであればよく,形態素解析済みのものでも問題ない.

wfreq2vocab -gt 10 hoge.wfreq > hoge.vocab

          N-gramで用いる単語リストを作成する.オプションが色々あり,
               ・-top num 上位num個の単語
               ・-gt num 出現回数num数以上の単語
          である.

text2idngram -n 2 -vocab hoge.vocab hoge.text id2gram

          コーパスと語彙リストから,2-gramを作成する.

idngram2lm -n 2 -idngram id2gram -vocab hoge.vocab -arpa 2.arpa.gz

          バックオフをかけて,arpa形式の2-gramの言語モデルを作成する.

text2idngram -n 3 -vocab hoge.vocab hoge.text id3gram

          コーパスと語彙リストから,3-gramを作成する.

reverseidngram -n 3 id3gram rid3gram

          逆向き3-gramを作成する.

idngram2lm -n 3 -idngram rid3gram -vocab hoge.vocab -arpa r3.arpa.gz

          バックオフをかけて,arpa形式の2-gramの言語モデルを作成する.

  • 補足1“真茶”について

          形態素解析の整形器“真茶”を作成した.perlとrubyで実装.
          何故,そんなものが必要なのかについて補足する.

          形態素解析を行う際,話し言葉と書き言葉を意識する必要がある.
          この整形処理をしっかりしておくと,認識精度が良くなるだけでなく,
          雑音のあるような環境で動かした場合であっても,頑健にしっかり認識してくれやすくなる.
          ちなみに,chasenは書き言葉の解析を行う(どこかで読んだ気がする・・・).

          いずれにせよ,解析誤り処理や読みの再付与など,話し言葉風に解析結果を整形する必要がある.


               ・解析誤り箇所の訂正(解る範囲でする,辞書をいじると解決したりもする)
               ・読み無しの単語の除外(記号や未知語など)
               ・フィラーの類(色々種類があるのでまとめてみたり追加したりとかする)
               ・読みの再付与(話し言葉風な読みを再付与:ここが重要)
               ・数字の類(表記をまとめたり,読みの再付与・統一)
               ・類似単語の類

          上に書いたようなことを“真茶”では行っている.
          こうして整形された音声対話用話し言葉コーパスを,Palmkitに投げるわけである.

  • 補足2“mkbingram”について

          Palmkitで作成された言語モデルをjuliusで読み込む際に高速にするために,
          2-gramと後向き3-gramを一つのファイルに統合する.

mkbingram -nlr 2.arpa.gz -nrl r3.arpa.gz hoge_bingram

          このプログラムはjuliusに付属されている.

  • 補足2“発音辞書”について

          音声認識を行うためには,発音辞書が必要である.
          perlやrubyで実装してある.

./vocab2htkdic.rb < hoge.vocab > hoge_dic

          rubyバージョンの入手先は今はないが,要は読みをローマ字に変換するスクリプトである.
          有り難いことに,perlバージョンが,ITtextの“音声認識システム”に付属のCDに入っている.

最終更新:2011年12月07日 12:26