文節境界解析のラベルと性能
文節境界解析で使うラベルで、BIとBILUの2種類でどちらが性能がよいかを検証してみた。結果的にはBIだけのほうが性能が高かった。
前回の輪読会で紹介した固有表現抽出に関する論文の中で印象に残ったことのひとつとして、系列ラベリングに使うラベルで最近はBIOよりもBILOUを使ったほう性能が高いというものがあった。
BIO(Begin, Inside, Outside)とBILOU(Begin, Inside, Last, Outside, Unit(Begin and Last))の違いは固有表現の末尾を考慮するかどうかで、末尾を考慮したほうが性能がよいというもの。
社内輪読会で「Joint Inference of Named Entity Recognition and Normalization for Tweets」を紹介した - skozawa's blog
Comainuでは、同じ系列ラベリングの問題である文節境界解析を行っていて、そこではラベルとしてBIを利用している。文節境界解析の場合、Oはないので、BかIを付与することになる。それで、文節境界解析でも固有表現抽出と同様にラベルとしてBILUを利用することで性能が向上するかを試してみた。
データはBCCWJの一部を学習データのサイズを変えながら試してみる。
学習のモデルはSVMで、素性は形態素情報(書字形、語彙素読み、語彙素、品詞、活用型、活用形、語種情報)と形態素が括弧内かどうかを表すラベル(BIO)。
テストデータ | 学習データ1 | 学習データ2 | 学習データ3 | 学習データ4 | |
文数 | 4534 | 4534 | 13602 | 22670 | 31738 |
結果としては、データサイズに関わらずBIの方がよかった。
- | 学習データ1 | 学習データ2 | 学習データ3 | 学習データ4 |
BI | 95.96 | 96.87 | 97.29 | 97.57 |
BILU | 95.81 | 96.81 | 97.28 | 97.52 |
BIとBILUでの誤りを軽く調べてみたけど(「/」が文節境界)、BIのモデルでは形態素間をくっつける傾向にあって、BILUのモデルだと分割する傾向があった。BILUのほうは「ガッカリ/する」とか、それを分割してしまうのかというのもちらほらあって、分割しすぎて性能が下がっていそうだった。
モデル | 正 | 誤 |
BI | 反論して / きています。 | 反論してきています。 |
BI | 滞在費 / 全て | 滞在費全て |
BILU | つくっていった。 | つくって / いった。 |
BILU | ガッカリする。 | ガッカリ / する。 |
文節境界解析だと、Lを求めるのはほぼBを求めることと同じなので、Lを導入してもあまり性能はよくならなかったのかな。それに、BIだけのOがないタスクだと2値分類なので、BILUで多値分類にすることで問題が複雑になったのかもしれない。
関係ないけど、実験中にComainuのバグを見つけてしまったので、とりあえずやってよかった。
モデルの再学習しないといけないので、今度やってアップデートしよう...