直前格と用言を用いた格フレーム辞書(一次格フレーム辞書)の構築 [@Kawahara:2002:JNLP]
概要
- この話の続編は[@Kawahara:2005:JNLP]. そこでは「一次格フレーム辞書」と呼ばれている
構築方法
- 用例抽出: ある程度信頼できる用言・格要素間の関係
- KNPのRule1だけで係り受け関係が決定できたものを利用
- 用例パターンの構築: 用例を直前格でまとめたもの
- 用言の用法に影響する格要素でクラスタリングしたい
- 直前格を特別視せず,すべての格要素を同等に扱う -> ダメ
- 用言の用法に影響する格要素でクラスタリングしたい
- 用例格フレームの構築
- シソーラスを用いて用例パターンのクラスタリング
- 用言の多義性を考慮する必要がある
- 用例を,項構造ではなく,項と用言の共起で扱う -> ダメ
- クラスタリングせずに格ごとに単純にまとめる -> ダメ
用例の収集
収集する格
- 基本的な格
- ガ格,ヲ格,ニ格,ト格,デ格,カラ格,ヨリ格,ヘ格,マデ格,無格
- 時間格
- ニ格、無格、カラ格、マデ格で、意味素「時間」(後述)をもっている格要素はまとめてひとつの格にする
- 複合辞:
- (例) ~をめぐって,~によって,~について,~として
格用例の汎化
以下の3種類は,単語のかわりにクラスを用いる.
- 時間
- 品詞細分類が時相名詞の形態素を含む文節(例: 朝, 春, 来年)
- 時間助数辞を含む文節(例: 1999年, 12月, 6日, 9時, 35分, 23秒)
- 「前」,「中」,「後」という接尾辞をもち,自立語がシソーラス上の意味属性「場所」をもたない文節(例: 会議中, 戦争後, 書く前)
- 数量
- 数詞を含む (助数辞を含まない) 文節(例: 1, 2, 一, 二, 十, 百)
- 数詞と,「つ」,「個」,「人」のような助数辞を含む文節については,「<数量>つ」,「<数量>個」,「<数量>人」のように数量クラスと助数辞のペアにして扱う
- 補文
- 引用節「~と」,連体修飾+形式名詞 またはそれに準ずる表現 (~の~, ~くらい~, )(例: 書くと, 書いたことを, 書くのを, 書くくらいが)
複合名詞の場合は最後の自立語を用いる.
曖昧な格要素の排除
次のような格要素は収集に用いない。
- 提題助詞をもつ格要素と用言の連体修飾先(例:その議員は~を提案した,~を提案している議員が~)
- 表層格が明示されていないため
- ニ格・デ格で副詞的に使われる格要素(例: ために, 無条件に, うえで, せいで)
- 係る用言との関係が任意的であるため
- 除外対象を人手で列挙した
- 「~では」・「~でも」・「~には」・「~にも」(例: 足の1本でも折ってやろうかと思った.育成しないことには世界で通用しない)
- KNPはデ格・ニ格の格要素
- しかし副助詞や従属節の場合もあるため
用言の条件
動詞,形容詞,名詞+判定詞(体言止含む). ただし,以下は除外.
- 受身・使役・「~もらう」・「~たい」・「~ほしい」・「~できる」
- 格交替が起こるため
- 「~で」
- 判定詞かデ格かの自動判定が難しいため
- 活用形から原形が一意に決まらない用言
- 例: あった: ある, あう,いった: いる, いう
- 用言として用いられているサ変名詞の直後に読点か句点がある場合
- 名詞が受身か能動であるのかを区別することは難しいため
用例パターンをクラスタリングして,用例格フレームを構築
- 用例パターンはひとつの用言について直前格要素の数だけ存在
用例パターンの類似度
$cs (P_1, P_2) \cdot sim_E(P_1, P_2)$と定義. [@Kawahara:2005:JNLP]では微妙に変更されているので注意.
- 用例パターン間の格の一致度$cs (P_1, P_2)$ = 用例$P_1$と$P_2$の共通格に含まれている格用例の割合
- $ cs = \frac{ \sum_{i=1}^n |E_{1cc_i}| + \sum_{i=1}^n |E_{2cc_i}| }{ \sum_{i=1}^l |E_{1c1_i}| + \sum_{i=1}^m |E_{2c2_i}| } $
- $c1_1, \cdots, c1_l$: 用例パターン$P_1$中の格
- $c2_1, \cdots, c2_m$: 用例パターン$P_2$中の格
- $cc_1, \cdots, cc_n$: $P_1$と$P_2$の共通格
- $E_1cc_i$:$P_1$内の格$cc_i$に含まれる格用例群
- 格用例群間の類似度$sim_E(P_1, P_2)$= 格用例の類似度の和を正規化したもの
- $sim_E(P_1, P_2) = \frac{ \sum_{i=1}^n \sum_{e_1 \in E_{1cc_i}} \sum_{e_2 \in E_{2cc_i}} |e_1| |e_2 | sim_e (e_1, e_2) }{ \sum_{i=1}^n \sum_{e_1 \in E_{1cc_i}} \sum_{e_2 \in E_{2cc_i}} |e_1| |e_2 |}$
- 単語間の類似度$sim_e (e_1, e_2)$ = 日本語語彙体系のシソーラス上での,単語$e_1$と$e_2$の類似度の最大値
- $sim_e (e_1, e_2) = max_{x \in s_1, y \in s_2} sim(x,y)$
- $sim(x, y) = \frac{2L}{l_x + l_y}$
- $x, y$: 意味属性
- $s_i$: 単語$e_i$の日本語語彙体系における意味属性の集合
- $l_x$: $x$のシソーラスの根からの深さ
- $L$: $x$と$y$の意味属性で一致している階層の深さ
クラスタリング
(0) 頻度5以下のもの除外し,最後にマージする
(1) 用言とその直前の格要素ごとにまとめる(初期格フレーム)
(2) 直前格が同じ用例パターン(格フレーム)のクラスタリング
- 閾値0.80を越える格フレームの組がなくなるまで繰り返す
- 全ての格フレーム間の類似度を再計算
- 類似度の最も高い格フレームの組$p,q$について
- マージして1つの格フレームにする
- 直前格要素の意味属性を固定
(3) 直前格を限定しない用例パターンのクラスタリング
- 意味属性の固定は行わない
(4) 残りの用例パターンのふりわけ
- 除外しておいた各用例パターンを,最も類似度の高い用例パターン群にマージする
注意
- 用言とその直前の格要素ごとにまとめたものの呼称が無いが「初期格フレーム」とここではよぶ
- 本稿にはマージしてできた用例パターン群の呼称が無いが [@Kawahara:2005:JNLP]では「格フレーム」とよんでいるため, ここでも「格フレーム」と呼んだ. 用例パターンは最小粒度の格フレームとみなせる.
- マージしてできた格フレームと,単一の用例パターンの間の類似度は本稿では不記載. [@Kawahara:2005:JNLP]の$CaseSim$だと思われる
用例パターンの意味属性の固定
必須格の選択
実験
- 毎日新聞9年分460万文