KWDLC(京都大学ウェブ文書リードコーパス)を知って、意味関係解析に取り組もう

# この記事を書いた背景
最近、KWDLCがNLPの初心者向けコーパスとして紹介される事例を何件か目にしたことから、その解説記事を書こうと思ったから。
コーパス作成の背景等にも適宜触れますが、今回はどちらかというと、付与されているアノテーションの読み方や想定している使い方について説明します。
論文(多様な文書の書き始めに対する意味関係タグ付きコーパスの構築とその分析,自然言語処理, Vol.21, No.2, pp.213-248, 2014.)に書かれてる内容にも触れますが、論文の側も参照していただけると理解が深まると思います。

# この記事を書いた人
KWDLCの最初のバージョンは私が博士課程の学生時代に作成しました。
実際にアノテーションの作業をしてくださったのはアノテータの方々です。
KWDLCに利用する文章の選定および述語項構造のアノテーションの基準(doc/rel_guideline.pdf)を決定しました。
形態素、構文および固有表現のアノテーションについても、アノテータ間でズレが生じた場合には私が最終判断を下しています。
なお、文間関係のアノテーション(disc/に含まれる内容)については、私の仕事ではありません。[^contribution]

[^contribution]: 私関係ないんで、と言うと冷たく聞こえるかもしれませんが、仕事の貢献について明確にしておくことは非常に重要なので。「文間関係のアノテーションめっちゃいい」って人は、私ではなくそちらの貢献者に感謝してください。

# KWDLCって?
京都大学ウェブリード文書コーパス(Kyoto University Web Leads Corpus)の略称です。ウェブリードコーパスと呼ばれることもあります。
主にゼロ照応解析をターゲットに意味関係解析の研究のためのコーパスです(意味とは、みたいな話はしません)。
意味関係解析に必要と想定される情報として、形態素、構文(係り受け)、固有表現の情報も付与されています。
また、意味関係として、ゼロ照応を含む述語項構造および照応関係の情報が付与されています。

# どんなドキュメントにアノテーションされてるの?
Webからクローリングしてきたドキュメントから、本文を抜き出し、その先頭3文にアノテーションしています。
クローリングの際には、ドメイン等は絞っていませんが、フィルタリングを実施する際に、大分偏ってはいると思います。
このコーパスはWebに出現する表現の分布を再現することを目的としていないので、そこは注意していください。

論文に自動でのフィルタリング基準が書いてありますが、このフィルタリングがない場合、アノテーション可能なドキュメントは数パーセント以下となるため、Presicion重視で荒いルールでガンガン削っています。
自動フィルタリングの結果残ったドキュメントのうち、アノテーション不可能だったものは3割程度だったと記憶しています。

# アノテーションの読み方
## 基本句
アノテーションは「基本句」と呼ばれる単位に付与されています。
基本句は、「内容語一語と付属語列」から構成されており、文節よりも小さい単位です。
KWDLCの中では、文節は「*」、基本句は「+」でマーキングされています。
ともかく実例を見てみましょう。


```w201106-0000060050

# S-ID:w201106-0000060050-1 JUMAN:6.1-20101108 KNP:3.1-20101107 DATE:2011/06/21 SCORE:-44.94406 MOD:2017/10/15 MEMO:
* 2D
+ 1D
コイン こいん コイン 名詞 6 普通名詞 1 * 0 * 0
+ 3D <rel type="ガ" target="不特定:人"/><rel type="ヲ" target="コイン" sid="w201106-0000060050-1" id="0"/>
トス とす トス 名詞 6 サ変名詞 2 * 0 * 0
を を を 助詞 9 格助詞 1 * 0 * 0
* 2D
+ 3D
３ さん ３ 名詞 6 数詞 7 * 0 * 0
回 かい 回 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0
* -1D
+ -1D <rel type="ガ" target="不特定:人"/><rel type="ガ" mode="？" target="読者"/><rel type="ガ" mode="？" target="著者"/><rel type="ヲ" target="トス" sid="w201106-0000060050-1" id="1"/>
行う おこなう 行う 動詞 2 * 0 子音動詞ワ行 12 基本形 2
。 。 。 特殊 1 句点 1 * 0 * 0
EOS
```

この例では、最初の「*」から次の「*」の間ある形態素「コイン」「トス」「を」が1つ目の文節「コイントスを」を構成しています。
「*」の後ろの「2D」はこの文節の係り先の文節IDが「2」(0-index)で「D(pendent)」(通常の係り受け)であることを示しています。(他にもIとかPがありますが、詳細は今回は触れません)この例では、「行う。」という文節に係っています。

一方、基本句は「+」で区切られていますので、先程の文節は「コイン」「トスを」と2つの基本句に分割されます。
「+」の後ろの「1D」「3D」はそれぞれ基本句単位での係り先を示しています。「コイン」は「トスを」に、「トスを」は「行う」に係っています。

文節より細かい基本句という単位でアノテーションをしているのは、文節内の意味関係(意味構造)のアノテーションが重要だと考えているからです。

## アノテーションの基本的な読み方
基本句の後ろについている<rel type…/>がアノテーションになります。先程の「トスを」の基本句を例に説明しましょう。

```
+ 3D <rel type="ガ" target="不特定:人"/><rel type="ヲ" target="コイン" sid="w201106-0000060050-1" id="0"/>
トス とす トス 名詞 6 サ変名詞 2 * 0 * 0
を を を 助詞 9 格助詞 1 * 0 * 0
```
「トスを」の基本句に対するアノテーションは「+ 3D」の後ろについている内容になります。
一つめのアノテーションは「<rel type="ガ" target="不特定:人"/>」です。これは「トスを」のガ格の格要素が「不特定:人」であることを示しています。
用言の格については、表層格で記載されています。「不特定:人」は特に特定はしないが人が動作主であることを表します。具体例はrel_guidelineを見ていただくのが早いと思います。
二つめのアノテーションは「<rel type="ヲ" target="コイン" sid="w201106-0000060050-1" id="0"/>」です。「トスを」のヲ格の格要素が「コイン」であることを示しています。また、この「コイン」が「w201106-0000060050-1」というidを振られた文の「0」番目の基本句であることを表しています。文IDは上に載せたアノテーション例の一行目に書いてあるやつですね。このsidとidが付与されていないもの(1つめの例など)は、「外界照応」になります。

上記例の最後の基本句「行う。」には、「type="ガ"」のものが複数(「不特定:人」「読者」「著者」)付与されており、後ろの二つには「mode="?"」という情報が付与されています。modeは一つの格に複数の要素がアノテーションされている場合に付与されるもので、「AND」「OR」「?」の3つがあります。
「AND」、「OR」はアノテートされた要素が「AND」「OR」関係にある場合、「?」は文脈からは一意に特定できない場合に付与されます。
「AND」「OR」はコーパスの実例を見ていただくのがいいと思います。「?」だけではないですが「著者」「読者」「不特定:人」が複数付与される事例は論文に詳しく記述しています。
論文でのアノテーションの一致率の調査では、これら3種の違いを無視して扱っています。実用的にどこまで重要かはタスク次第だと思います。

なお、KWDLCに付与されているアノテーションについては、KNPと互換がありません。KNPにはアノテーションを読み込む機能があるのですが、その機能を活用する場合には、KNP形式に変換する必要があります。これはそれほど難しくないと思います。

[^KNPformat]: 確か、KWDLCに付与されている形式は旧KNP形式と呼ばれていていたので、昔のKNPの形式なのだと思います。


# 述語項構造のアノテーション
ここでは、用言あるいは動作性名詞に付与されている「ガ」「ヲ」「ニ」などの格要素のアノテーションを述語項構造のアノテーションと呼ぶことにします。
ゼロ照応(述語項構造解析)の研究では、ガ格、ヲ格、ニ格のみが扱われるケースが多いですが、実際にはもっと多くの種類の格が付与されています。具体的にはrel_guidelineの付録Bをに一覧があります。
また、述語項構造については、[私が過去に書いた記事](https://qiita.com/mhangyo/items/41f2ba208d406735f8b7
)もありますので、参考にしていただれば。
この記事は[自然言語処理Advent Calendar 2019](https://qiita.com/advent-calendar/2019/nlp)の19日目の記事です。昨日の[otakumesiさんの記事](https://www.skyrocketing.work/entry/2019/12/18/000000)も述語項構造解析の応用の一つになります。

## ガ２格
「ガ２格」という用語はほぼ京大コーパス系列でしか見ない用語かと思います。
具体的には、「彼はビールが飲みたい」といった文での、「飲みたい」のガ格に「ビール」、ガ２格に「彼」をとるようなアノテーションで使用します。
KWDLCではガ２格の基準が京大コーパスとは少しだけ変わっているので注意が必要です。
京大コーパス基準では「象は鼻が長い」という文では、「「象が長い」とは言えないので、ガ２格とはしない」という基準でしたが、KWDLCではトピック的なものは一律にガ２の付与を許しています。

一方で、ガ格とガ２格のペアは他の格に置き換えられる場合も多く、表層格で明示されていない場合はそちらを優先する基準となっています。
「ビールの好きな彼を誘った」の「好き」は「彼がビールが好き」とも「彼がビールを好き」とも言え、この場合は後者を優先することとしています。
この辺りは個々人の言語感覚に依る部分も大きいので、アノテーションの不一致の一因となっています。言語現象はどこまでいっても、個人の言語感に依存する部分が出てくるので、仕方ないと割り切っています。

## 後方ゼロ照応
アノテーションは文単位で前から読むことを前提に設計されているため、直接は後方ゼロ照応をアノテーションすることができません。このため、KWDLCでは「不特定:人n」「不特定:物n」(nには1とか2が入ります)を利用して、後方ゼロ照応をアノテーションしています。


```
# S-ID:w201106-0000094410-2 JUMAN:6.1-20101108 KNP:3.1-20101107 DATE:2011/06/21 SCORE:-44.01052 MOD:2013/05/04 MEMO:
* 1D
+ 2D <NE:DATE:２０１６年>
２０１６ にせんじゅうろく ２０１６ 名詞 6 数詞 7 * 0 * 0
年 ねん 年 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0
* 2D
+ 2D <NE:LOCATION:リオデジャネイロ>
リオデジャネイロ りおでじゃねいろ リオデジャネイロ 名詞 6 地名 4 * 0 * 0
+ 3D <rel type="時間" target="２０１６年" sid="w201106-0000094410-2" id="0"/><rel type="ノ？" target="リオデジャネイロ" sid="w201106-0000094410-2" id="1"/>
オリンピック おりんぴっく オリンピック 名詞 6 固有名詞 3 * 0 * 0
+ 4D <rel type="ニ" target="オリンピック" sid="w201106-0000094410-2" id="2"/><rel type="ガ" target="不特定:人1"/>
出場 しゅつじょう 出場 名詞 6 サ変名詞 2 * 0 * 0
に に に 助詞 9 格助詞 1 * 0 * 0
* 3D
+ 5D
向けて むけて 向ける 動詞 2 * 0 母音動詞 1 タ系連用テ形 14
の の の 助詞 9 接続助詞 3 * 0 * 0
* 4D
+ 6D <rel type="ニムケテ" target="出場" sid="w201106-0000094410-2" id="3"/><rel type="ガ" target="不特定:人"/><rel type="ニ" target="不特定:物"/>
取り組み とりくみ 取り組み 名詞 6 普通名詞 1 * 0 * 0 "品詞変更:取り組み-とりくみ-取り組む-2-0-9-8"
を を を 助詞 9 格助詞 1 * 0 * 0
* -1D
+ -1D <rel type="ヲ" target="取り組み" sid="w201106-0000094410-2" id="5"/><rel type="ガ" target="著者"/><rel type="ニ" target="読者"/>
紹介 しょうかい 紹介 名詞 6 サ変名詞 2 * 0 * 0
し し する 動詞 2 * 0 サ変動詞 16 基本連用形 8
ます ます ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 基本形 2
。 。 。 特殊 1 句点 1 * 0 * 0
EOS
# S-ID:w201106-0000094410-3 JUMAN:6.1-20101108 KNP:3.1-20101107 DATE:2011/06/21 SCORE:-30.02812 MOD:2013/05/04
* 1D
+ 1D
７ なな ７ 名詞 6 数詞 7 * 0 * 0
人 にん 人 接尾辞 14 名詞性名詞助数辞 3 * 0 * 0
+ 2D
制 せい 制 名詞 6 普通名詞 1 * 0 * 0
+ 4D <rel type="=" target="ラグビー" sid="w201106-0000094410-1" id="2"/>
ラグビー らぐびー ラグビー 名詞 6 普通名詞 1 * 0 * 0
+ 4D
日本 にほん 日本 名詞 6 地名 4 * 0 * 0
+ 6D <rel type="ガ" target="不特定:人"/><rel type="ヲ" target="日本" sid="w201106-0000094410-3" id="3"/><rel type="デ" target="ラグビー" sid="w201106-0000094410-3" id="2"/><rel type="=" target="不特定:人1"/>
代表 だいひょう 代表 名詞 6 サ変名詞 2 * 0 * 0
の の の 助詞 9 接続助詞 3 * 0 * 0
* 2P
+ 6D <rel type="ガ" target="情報" sid="w201106-0000094410-3" id="6"/>
最新 さいしん 最新だ 形容詞 3 * 0 ナノ形容詞 22 語幹 1
+ 9P <rel type="ノ" target="代表" sid="w201106-0000094410-3" id="4"/>
情報 じょうほう 情報 名詞 6 普通名詞 1 * 0 * 0
や や や 助詞 9 接続助詞 3 * 0 * 0
* 3D
+ 8D <rel type="ガ" target="代表" sid="w201106-0000094410-3" id="4"/><rel type="ト" target="不特定:人"/><rel type="外の関係" target="予定" sid="w201106-0000094410-3" id="8"/>
試合 しあい 試合 名詞 6 サ変名詞 2 * 0 * 0
+ 9P <rel type="ノ" target="試合" sid="w201106-0000094410-3" id="7"/>
予定 よてい 予定 名詞 6 サ変名詞 2 * 0 * 0
・ ・ ・ 特殊 1 記号 5 * 0 * 0
+ 10D <rel type="ノ" target="試合" sid="w201106-0000094410-3" id="7"/>
結果 けっか 結果 名詞 6 普通名詞 1 * 0 * 0
を を を 助詞 9 格助詞 1 * 0 * 0
* -1D
+ -1D <rel type="ガ" target="著者"/><rel type="ヲ" target="情報" sid="w201106-0000094410-3" id="6"/><rel type="ヲ" mode="AND" target="予定" sid="w201106-0000094410-3" id="8"/><rel type="ヲ" mode="AND" target="結果" sid="w201106-0000094410-3" id="9"/><rel type="ニ" target="不特定:物1"/>
掲載 けいさい 掲載 名詞 6 サ変名詞 2 * 0 * 0
し し する 動詞 2 * 0 サ変動詞 16 基本連用形 8
ます ます ます 接尾辞 14 動詞性接尾辞 7 動詞性接尾辞ます型 31 基本形 2
。 。 。 特殊 1 句点 1 * 0 * 0
EOS
```

この例では、「w201106-0000094410-2」に「出場に」という基本句がありますが、この「出場に」のガ格は次の文で出てくる「７人制ラグビー日本代表」になります。
このため、「出場に」には一旦「<rel type="ガ" target="不特定:人1"/>」が付与されます。そして、「w201106-0000094410-3」で「７人制ラグビー日本代表」の主辞にあたる「代表の」の基本句に「<rel type="=" target="不特定:人1"/>」という形で、先程の「不特定:人1」はこの「代表」と共参照関係にある、ということをアノテーションしています。


# 照応関係
照応関係は厳密には共参照関係ではありません。KWDLCでは共参照関係にあたる照応については、typeとして「=」「=構」「=役」でアノテーションしています。「=構」は構文的に明らかな共参照、「=役」は役職についての共参照です。
それ以外の照応は「=≒」「ノ」で付与されています。詳しくは、論文の223ページおよび、rel_guidelineの27P以降をご覧ください。
また、照応関係は、体言間だけでなく、用言間でも付与されています。同じイベントを指す用言対などが分かりやすい例ですね。


# 最後に
すいません、書き始めはよかったんですが、途中で力尽きました。
KWDLCについて知りたいことがある方は、この記事のコメントに書いていただくか、Twitterで話しかけていただければと思います。