11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ミクシィグループAdvent Calendar 2020

Day 8

BERTでSemantic Role Labeling(意味役割付与)やってみた

Last updated at Posted at 2020-12-07

Semantic Role Labeling(意味役割付与)とは

文の述語と構造を抽出し、「誰が誰に何をしたか」、 「いつ」 、 「どこで」 などを意味役割(抽象度の高い表現)を特定するものです。
これをすることで、様々な自然言語処理のタスクで活用できる言われています。

例えば、次のような文章に以下のようにラベル付けします。

  • 彼は赤い服を着ている
    • [動作主]彼は
    • [対象]赤い服を
    • [述語]着ている

Semantic Role Labelingの歴史

Semantic Role Labelingの動向について説明します。

現在BERTなどの事前学習済みの言語モデルを用いて意味役割する手法はCoNLL-2005などでstate-of-the-artを達成しています。AllenNLPでも実装

軽く調べただけなので、もっと良い手法があったら教えて下さい。

BERTを使ったSemantic Role Labeling

Semantic Role Labelingは4つのサブタスクからなります。

  • predicate detection: 述語検出
  • predicate sense disambiguation: 述語意味曖昧性解消
  • argument identification: 引数識別
  • argument classification: 引数分類

ここで述語はデータセットに付与されているため、述語検出のタスクは考慮していません。

入力文の入力形式は以下のように行います。
[[CLS] 文章 [SEP] 述部 [SEP]]

また正解ラベルにはspan-basedを用いて、PropBank形式のラベルを用いています。

PropBankの基本的なラベル
ARG0:動作主
ARG1:対象
ARG2、ARG3、ARG4:起点、着眼、対象、など

詳細なラベル
ARGM-ADJ:形容詞(名詞を修飾する)
ARGM-ADV:副詞(動詞を修飾する)
ARGM-CAU:原因
ARGM-COM:共格
ARGM-DIR:方向
ARGM-EXT:程度
ARGM-LOC:相互(人)
ARGM-MNR:様態
ARGM-PRP:目的
ARGM-REC:相互
ARGM-TMP:時間
など

さらにBIO taggingでタグ付をします。
NLPででてくる BIO Tag って何? | CV・NLP TIPS

B: ‘beginning’ 固有表現の始点を意味する
I: ‘inside’ 固有表現の内部を意味する
O: ‘outside’ 固有表現の外側を意味する

例としては以下のようなものです。

Barack Obama went to Paris
[ARG0] Barack Obama
[V] went
[ARG4] to Paris

入力文:[CLS] Barack Obama went to Paris [SEP] went [SEP]
ラベル:B-ARG0 I-ARG0 B-V B-ARG4 I-ARG4

最終的に隠れ層一層のMLPを通してラベルを学習します。

日本語での学習

日本語データセット

BERTを使ったSemantic Role Labelingを日本語を用いて学習させたいと思います。
まず、データセットとして岡山大学竹内研様の述語項構造シソーラスというものが利用できそうだったので、使用させていただきました。この場を借りて感謝いたします。

述語項構造シソーラス (岡山大学竹内研)

述語の項構造データになっていて、PropBank形式の意味役割のラベルが付与されています。
例文が記載されており、それに対して構造データが付与されているため、例文をJUMAN++KNPを使って形態素分析し構造データを紐付け、データセットを作成しました。

学習済みモデル

そしてBERTの事前学習済みモデルにはは京都大学の黒橋・河原研究室様の公開されているモデルを使用させていただきました。
Tokenizerなども公開されているものを使用しています。

BERT日本語Pretrainedモデル

結果

23000件ほどで、9割を学習用に、残りを評価用に使用し、データが少ないため2Epochのみ学習しました。(数分で終わります)

precision recall f1-score
92.6 93.3 92.7

わずか2Epochでの学習で9割近いスコアになりました。試した感じは割とうまく行ってそうです。

彼女は料理が へたくそだ
['彼女', 'は', '料', '理', 'が', 'へ', 'たく', 'そ', 'だ']
B-Arg0 I-Arg0 B-Arg1 I-Arg1 I-Arg1 B-V I-V I-V I-V

まとめ

Semantic Role Labelingについて調べたことをまとめました。

データセットを作成する際、述語の項構造データと例文の紐付けなど苦戦し、データセットの作り方など工夫する必要がありそうです。

参考になれば幸いです。

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?