HMMからの属性決定調整

 今回は新たに追加された新着論文レビューに対し、文章解析が上手く行われるようにプログラム・パラメータの調整を行いました。
 まずはHMMのプログラムの調整ですが、前回発見したバグは、Perlで配列のインデックスを「-1」にすると、配列の最後の要素を指し示すという仕様によるものだと判明したので、インデックスを指し示す前に0より大きいかどうかを確かめる文を追加しました。

for ($j =0; $j < @lineList; $j++) { #属性に応じて行を分類
if ($estAttr[$j]) {
push @{$vector[$estAttr[$j] -1]}, $lineList[$j];
}
}

また、隠れ状態から属性決定に移る部分で、出現確率と遷移確率のどちらを信用するか、その順序を決めていなかったので、これらのうちより値の高い方は信用し、値が小さい方について確率に応じた変更を加えるというように、プログラムを書き換えました。

if ($pk[$state[$i]] <0.4 && $pk[$state[$i]] < ${$trans[$state[$i -1]]}[$state[$i]]) { #出現確率が低かったら修正

elsif (${$trans[$state[$i -1]]}[$state[$i]] <0.4) { #遷移確率が低かったら修正

というように変更しました。

 その後属性ベクトルを与える単語辞書について見直し、論文レビューの意味解析が上手く行くように調整しようと思いましたが、上手く行くレビューもありましたが、例えば「ウイルスによるmiR-196aの遺伝子導入はCELF2の発現抑制を介し球脊髄性筋萎縮症の表現型を改善する」などについてはまだ上手く行かないようです。
 次回も単語辞書を調整しながら、上手く推定できるようにしていきたいと思います。