精製チャンクを利用した行属性推定

 Wikipediaから得たチャンクリストを使って、新着論文レビューから得たチャンクリストから無意味なチャンクを除いたので、今回はそれらが実際に論文レビューでどのように出現しているのかを確かめながら、チャンクを行属性推定に用いるために属性ごとに分類してみました。
 レビューを読んでみて、新規知識だと感じる文に出現するチャンクをテキストファイルに書き写し、とりあえずまとめてみました。以下に一部を載せます。

#前提属性
不明であった 139
報告されている 289
近年, 148
しかしながら, 305
考えられた 680
研究により, 120
これまで 216


#手法属性
そこで, 651
解析した 349
検討する 120
ところ, 914

といった感じです。今後はこれを使って実際に行属性推定プログラムを走らせてみて、属性行に存在するリストに無いチャンクを自動で回収するプログラムを用意して、チャンクリストを拡張していきたいなと思っています。
 また、チャンクによっては複数の属性で出現するものもあり、これについては複数の属性のパートにチャンクを重複して記載してあります。よって一つのチャンクで複数属性のフラグが立つことになり、分別がつきにくくなると思われます。なので、行推定プログラムのほうで行の推定ベクトルの値を0か1だけでなく、チャンクの個数を数えて登録するようにし、あとで行ベクトルの要素の値を比較して大きいものを優先するように、多数決をとることにしました。以前のコードを少し書き換えて、

maxValue =0
pushAttr = stateAttr[state[i]]

vector[i].each do |value|
if (value > maxValue)
maxValue = value #行ベクトル内で最大の値を取得
end

for j in 0...vector[i].length
if vector[i][j] == maxValue && j != pushAttr -1
pushAttr = j +1 #最大値が同じで別の属性があれば変更
break
end
end
end

として最大値を与える属性を優先するようにしました。