自然言語処理システム特論

今日の内容
自然言語処理システム特論
意味解析
• 意味解析とは?(復習)
Natural Language Processing Systems
• 制約に基づく意味解析
– 格フレームの利用
第5回
2015/5/26
芝浦工業大学 工学部 情報工学科
杉本 徹
[email protected]
• 選好に基づく意味解析
– 統計的分類器を用いた意味解析
• 単語の意味のモデル化の動向
実験課題:今後の日程
復習: 自然言語の解析処理の流れ
意味解析とは?(復習)
入力文
「太郎は本を読んだ。」
① 形態素解析
太郎 は 本 を 読ん だ
② 構文解析
③ 意味解析
名 助 名 助 動 助動
太郎 は 本 を 読ん だ
read
agent
taro
④ 文脈解析
意味表現の例(グラフ構造)
object
book
複数の文に
またがる処理
意味解析の手法(単純化した処理手順)
• 例:「太郎が生協の食堂でカレーを食べた.」
例: 「太郎は面白い本を読んだ.」
係り受け木
食べた
read
1.単語辞書を参照して 意味表現
eat /
文節の主辞を概念に変換
live
interesting
dining / curry /
taro cafeteria
Calais
太郎が 食堂で カレーを
agent
object
object
生協の
taro
book
注: 入力文に対する論理式表現やグラフの構造,ラベル名の与え方は
一つに決まっているわけではない
agent
eat /
live
co-op
複数の
概念候補
place object
3.意味役割付与 taro dining / curry / 2.語義曖昧性解消
cafeteria Calais 単語の概念を1つに
深層格を求める
絞り込む
possessor
co-op
1
単純な処理手法
• 語義曖昧性解消(Word Sense Disambiguation)の問
題に対する単純な処理手法
– 各単語の概念を求める際,その単語の最も代表的な用法
(通常,辞書の単語エントリの1番上に書いてある)を選ぶ
制約に基づく意味解析
• 意味役割付与(Semantic Role Labeling)の問題に対
する単純な処理手法
– 「が」格 → agent,「を」格 → object のような,表層格と
深層格の対応表を作っておく
– 「で」の場合,直前の名詞が場所を表す名詞や地名ならば
place,時間を表す名詞ならば time などと決める
例外的ケースに対応できず精度が悪い
例
意味的制約の利用
• 2つの概念が意味的関係で結ばれる際は,意味的
な制約条件(選択制限)がある
例1: 「食べる」という動作概念の対象物(object)は食べ物
でなければいけない
例2: 「AのB」という形の句で,AがBの所有主(possessor)
であるなら,Aは主体(人,組織など)でなければいけない
「小倉が小倉を食べた.」
1番目の「小倉」は人の名前,2番目の「小倉」は
食べ物を表す.
・・・ と私たちは解釈することができる.なぜか?
• このような制約条件を整理した形で記述しておき,
意味解析で利用することで,語義曖昧性解消や
意味役割付与を実現できる
「○が△を食べる」 ⇒ ○は人間,△は食べ物
という知識を使っている.
「小倉」の2つの意味 (EDR概念体系)
格フレーム辞書の利用
30f6ae
具体物
30f6af
生命体
3f9639
飲食物
• EDRの格フレーム辞書(動詞共起パターン副辞書)
に格納された,動詞「食べる」の格フレーム
30f6b0(人間)
30f6b0
人間
44457a
食品
30f6bf (動物)
30f6b0(人間)
3f961c
人間の名前
200e11
日本人の氏名
44457c
加工食品
が(agent)
が(agent)
3f9639(飲食物)
・・・
30f83e(行為)
・・・
を(object)
で(condition)
食べる
3bc6f0(食物をとる)
食べる
3c22e2(生計を立てる)
0e7632
小倉あん
2
意味解析の結果
制約に基づく意味解析の課題
入力文 「小倉が小倉を食べる」
形態素・係り受け解析
小倉
が
小倉
を
食べる
名詞
助詞
名詞
助詞
動詞
• 制約は必ずしも絶対的ではない
– 例: 「赤ちゃんが新聞紙を食べた.」
単語辞書の検索
小倉
200e11(氏名)
0e7632(小倉あん)
が
小倉
?
200e11(氏名)
0e7632(小倉あん)
• 意味的制約を記述し尽くせるか?
を
食べる
?
3bc6f0(食物をとる)
3c22e2(生計立てる)
格フレームを用いた絞り込み
小倉
が
小倉
を
食べる
200e11(氏名)
agent
0e7632(小倉あん)
object
3bc6f0(食物をとる)
• もっともらしさの程度を区別できない
– 例: 「生協の食堂でカレーを食べた.」において「食堂」
という単語の2つの意味(料理店,食事をする部屋)
は両方とも,深層格 place の選択制限である「場所」
の一種であるため,制約だけでは区別できない
「食堂」の2つの意味 (EDR概念体系)
3aa938
場所
444a80
経済活動を行う場所
10a479
店
30f76b
部屋
選好に基づく意味解析
3bcb25
食事をする部屋
0e560f
飲食店
3d007d
料理屋
統計的手法に基づく意味解析
• 構文情報と意味情報が付加されたタグ付きコーパスを
教師データとして,構文的特徴から意味情報(単語の
意味や深層格)を推定する統計モデルを学習する
• 分類器に基づく方法
– Naive Bayes 法
– 最大エントロピー法
– Support Vector Machine など
Naive Bayes 法
• Bayes の定理を使って,事後確率を求める
• 入力データの各特徴(素性)が互いに独立である
という単純(naive)な仮定をおく
• 単純なモデルの割に,分類精度はまずまず
• ネットワークモデル
– Bayesian Network
– Markov Logic Network
– neural network など
3
Naive Bayes法による語義曖昧性解消
• 単語 w が複数の意味 s1,…,sk を持つとき,
ある文中に現れた w がこれらの内のどの意味
で使われているのか判別したい
• 文中の w の前後 n 語ずつに着目する
w1 w2 … wn w wn+1 … w2n context window
問題: context window (w1…w2n) に対する事後確率
P(sj | w1…w2n) が最大となる意味 sj を求める
• Bayes の法則より
P(sj | w1…w2n) =
P(w1…w2n | sj)×P(sj)
P(w1…w2n)
– 分母は sj の選び方に依存しないので無視できる
• 各wi の出現が互いに独立である と仮定すると
2n
P(w1…w2n | sj) = Π P(wi | sj)
i=1
• 多義語の例(英語)
2n
– したがって, P(sj | w1…w2n) ∝ P(sj)× Π P(wi | sj)
– crane ‥ 鶴,クレーン(重機)
– pen ‥ ペン(文房具),囲い など
i=1
• 赤枠内の式の値が最大となる sj を選べばよい
コーパスデータに基づく確率の最尤推定
P(sj) =
P(wi | sj) =
(コーパス中で w が sj の意味で使用されている回数)
実例:名詞「道」の語義曖昧性解消
• EDR単語辞書における 「道」の主な意味
(コーパス中の w の出現回数)
(コーパス中で w が sj の意味で使用される際に,
その前後 n 語の範囲に wi が出現する回数) ※1
(コーパス中で w が sj の意味で使用されている回数)
※1 wi が1回も出現しない場合は,確率 P(wi | sj) を 0 にせず,
微小な定数を割り当てる(smoothing)
確率値の最尤推定結果
• P(S1) = 0.40
P(S2) = 0.22
P(S3) = 0.38
• P(wi | sj) の値が大きい単語 wi の例
S1(道路)
0.034
走る
0.034
迷う
通じる 0.029
0.029
歩く
0.029
細い
0.023
行く
0.017
両側
0.017
車
S2(人生の進路)
0.162
歩む
0.121
選ぶ
0.040
自分
0.040
たどる
0.040
開く
0.030
進む
切り開く 0.030
0.030
苦難
S3(方法)
0.126
開く
0.102
する
0.054
ない
0.048
探る
0.048
ある
0.042
歩む
開ける 0.036
0.036
選ぶ
S1
S2
S3
意味
道路
人生の進路
方法
EDR概念ID
1048dc
10a4f1
3bbe28
• EDRコーパスにおける,上記3つの意味での「道」の使用回数
は計490回(490文).このうち50文をテストデータとし,残りの
440文を学習用データとして確率値の最尤推定に用いる
• windowサイズ n = 2
• 考慮する単語は,名詞,動詞,形容詞のみ
語義曖昧性解消のテスト結果
• テストデータ 50文のそれぞれに対して Naive Bayes
法により「道」の語義を判定した結果を,コーパスに
付与されている語義(正解データ)と比較したところ,
一致率(正解率)は 74% であった
• 例題: 「そのジレンマの中でレーガン大統領は
苦難 の 道 を 歩む ことになる。」 (正解は S2)
Sj
S1(道路)
S2(人生の進路)
S3(方法)
P(Sj)
0.40
0.22
0.38
P(苦難|Sj) P(歩む|Sj)
0.002
0.017
0.030
0.162
0.002
0.042
積の値
0.00001
0.00110
0.00003
4
分類器に基づく語義曖昧性解消
• 分類器(例:SVM)に与える素性
– 前後の単語
– 前後の単語の品詞(細分類を含む)
– 前後の単語のシソーラス上の値
など
単語の意味のモデル化の動向
• 参考: 新納ほか「語義曖昧性解消におけるシソーラ
ス利用の問題分析」,言語処理学会年次大会,2015
– シソーラスは使った方がよい
– シソーラスの粒度は重要でない
– 複数のシソーラスのアンサンブルは効果あり
単語の意味の統計的モデル
分布的(Distributional)意味表現
• 従来の単語の意味のモデル(例:シソーラス)
• 単語の意味を,コーパス中でその前後に現れる
単語の共起頻度分布によって表す
– 言語学者の直感に基づく分類,体系化
– 説明性は高いが,必然性や網羅性に問題あり
– 各単語の意味は,共起語ベクトル(次元数=単語の
種類数(数万~100万)の疎ベクトル)として表される
• 単語の意味の統計的モデル
– 各単語のコーパスにおける使われ方の統計データに
基づき,意味を表現する対象(ベクトルなど)を生成する
• 分布類似度(Distributional Similarity)
– 2単語の意味的類似度を,両者の共起語ベクトルの
比較(Cosine類似度,内積など)により求める
– 分布仮説(Distributional Hypothesis [Harris, 54])
「同じような文脈で用いられる単語は同じような意味をもつ」
分散的(Distributed)意味表現
• 各単語の意味を,数百次元程度の密な実数値ベクトルとして
表現する
– 入力単語 wk を指定次元数(D)のベクトル表現に変換した後,その
ベクトル表現から wk の前後に出現する単語 wk+i を予測するような
neural network を構築し,コーパスを訓練データとして学習することに
より,単語のベクトル表現を得る(skip-gram [Mikolov 2013] word2vec)
Input layer
x1
入力
単語
wk
Hidden layer
u11
u12
y1
実験課題:今後の日程
Output layer
v11
v12
x2
z1
z2
…
…
…
出力
単語
wk+i
yD
xN
uND
vDN
zN
5
日程
• 第2回 参加アンケート(済)
• 第3回 グループ分け,話し合い(済)
• 第4回 実験の構想発表(プレゼン) (済)
• 第8~10回 実験の結果報告(プレゼン)
– 実験の目的,システムの機能,アルゴリズムの説明,
使用したデータ,使用したツール,実験結果,考察,
分担,参考文献
• 6月15日(月) 23:59 までに,全グループ,プレゼ
ンのファイル(PowerPointなど)と作成したプログ
ラム一式を杉本へ提出すること(詳細は後日)
実験の結果報告プレゼンについて
• 日程: 6/16, 6/23, 6/30 の3回
• 発表時間: 1グループ 15分(+質疑10分)
• 発表内容: 実験の目的,システムの機能,アルゴリ
ズムの説明,使用したデータ,使用したツール,実験結
果,考察,分担,参考文献 など
• お願い
上記の日程の中で学会等のため参加不可能な日がある
グループは,6/5(金) までに杉本に連絡をください.
6