Yusuke TABATA
yusuk****@w5*****
2006年 9月 17日 (日) 14:53:29 JST
anthy-8116をリリースして http://prdownloads.sourceforge.jp/anthy/21800/anthy-8116.tar.gz として、置きました。 コア部分の改造が一段落したので、状況を説明しておきます。 anthyの遷移行列はsrc-splitter/transition.hにあって、 今までのところ、純粋に遷移確率の行列でした。 チューニングをしようとすると、calctrans/example_text.txtに 誤変換の文を追加して、 $ cd calctrans; ./calctrans example_text.txt -o transition.h という感じで行列を生成しています。 (単に確率を求めるだけなので、数ヶ月前までruby scriptでしたが Cで書き直してます) しかし、このテキストファイルを見るとわかると思うのですが、 *手でクラスを指定する必要があり、作るのが面倒 *一つの文節に対して、「あるクラスに属する」という一つの情報しか与えられない という欠点がありました。 そんなわけで、色々と変更して改善してみました。 calctrans/corpus.0.txtにあるように、 「きょうのてんきははれです |きょうの|てんきは|はれです|」 という感じの例文を受け取ってパラメータを勝手に推定するようになってます。 $ cd calctrans $ ./proccorpus corpus.0.txt > file $ ./calctrans file -o transition.h という感じで使います。 内部的には文節X,Yの連続する確率を P ∝ exp(f_X・λ_c) (ここでcはYのクラスで、λ_cはそれに対応する 重みベクトル、f_XはXの素性ベクトル) として、例文中の確率と一致するように重みを定めています。 ちょっと変な形になってますが、素性としてXのクラスのみを使用した場合に 今までの行列と同じ形式になるのが開発者的にはメリットです。 #過去のしがらみに縛られているとも言えますが... 現時点ではXのクラスとXの付属語のhash値を素性としています。 -- -- CHAOS AND CHANCE! Yusuke TABATA