LSTMとCRFを組み合わせたNERが実装できました。したデータセットで検証してみます。CRMモデルを雑に開設しました。2016)ではcharacterレベルの情報が用いられていました。https://arxiv.org/pdf/1603.01360.pdf簡単にいうと、各単語を文字単位のLSTMに突っ込んでその出力を通常の単語ベクトルにconcatするというアイディアです。元のモデルを細かく表示するとこんな感じ。これらがそれぞれ25次元。事前学習済みの単語ベクトルからMarsの単語ベクトルを取得します(emars)。25でconcatして150次元。これを単語レベルLSTMの入力に使う単語ベクトルとします(事前学習済みの単語ベクトルに文字レベルの情報を付与したと言える)。雑メモ文字レベルの情報を考慮することにより、prefixやsuffix、つまり単語の先頭や末尾の情報をバッチリ考慮できます。taggingやNERによく効くのは感覚的にわかるでしょう。簡単な実験をしてみました。文字レベルのLSTMを追加することでどれだけ精度が変わるか。embの次元数を増やしても対して性能上がらないけど(ていうか下がってる)、文字レベルの情報を入れることでかなり精度が上がりました。単方向のLSTMなのでbidirectionalにしてCRF乗っけたらもっと良くなりそう。aclwebコードは以下に置きました。適当に試してみてください。Githubしかし、GPU利用にしているはずなのに手元のMacと計算時間が変わらない。LSTMの系列長が可変だからうまいことGPU利用できてない?pack_padded_sequence()で系列長揃えると早くなるんだっけ?そこらへん勉強不足です。technology.MENU自己紹介Swampdog(VR解剖)未定(論文構造解析)。