意味構造の処理技術(+レポート課題1)

前回の復習
自然言語処理システム特論
• 意味構造のモデル化
– 真理条件的意味(命題の意味)
Natural Language Processing Systems
第5回
– 名詞の意味
– 動詞の意味
2014/5/13
芝浦工業大学 工学部 情報工学科
杉本 徹
[email protected]
– 作用としての意味(話者の態度)
– 意味表現(計算的意味)
今日の内容
意味構造の処理技術
• 意味解析とは?
• 制約に基づく意味解析
• 選好に基づく意味解析
• 発話行為の理解
意味構造の処理
• 意味解析
– 与えられた文(文章)の意味を理解(解析)し,意
味構造(意味表現)を作り出す
• 推論
– 与えられた意味構造から新たな情報を導き出す
• 意味的類似性の判定
– 同義性・類義性の判定,意味的距離の算出
意味解析(意味理解)
意味解析とは?
与えられた言語表現(文)から意味表現
(グラフ構造)を作り出す
自然言語表現
意味表現
1
意味表現(命題+発話行為)
意味解析の例(1)
「太郎は娘を見た.」
「本を太郎に渡す.」
発話行為の理解
statement
content
agent
give
leave
object
girl
see
命題内容
(述語‐項構造)
の理解
object
taro
X
「家を3時に出る.」
goal
book
source
time
home
taro
3pm
ポイント(1) 概念間の意味的関係(深層格)の同定
が必要
意味解析の例(2)
意味解析の例(3)
「小倉が小倉を食べた.」
「太郎は昨日買ったソフトのインストールに苦労した」
buy
eat
agent
object
ogura
ogura
(human)
install
agent
object
time
object
yesterday
(sweet)
software
object
trouble
agent
experiencer
taro
ポイント(2) 多義語がどの意味(概念)で使われて
いるか明らかにする
ポイント(3) 動詞(述語)と名詞(項)の間の明示さ
れていない関係を復元する
意味解析(と文脈解析)の例(4)
ここまでのまとめ
「太郎は食堂に行った. 「太郎は食堂に行った.
カレーを食べた.」
とても混んでいた.」
go
agent
taro
eat
goal
agent object
dining
curry
go
agent
taro
crowded
goal
object
dining
• 意味解析で行うべきこと
– 概念間の意味的関係(深層格)の同定
– 多義語がどの意味(概念)で使われているか判別
– 文中の単語間の暗黙的な関係の認識
– (文脈解析)省略語の補完,名詞句の参照解決
ポイント(4) 省略語の補完や名詞句の参照解決も
必要
2
意味的制約の利用
• 2つの概念を意味的関係で結びつける際は,
意味的な制約条件がある
制約に基づく意味解析
例: 「食べる」という動作概念の対象物(object)
は食べ物でなければいけない
• この制約条件を整理した形で記述しておき,
意味解析で利用することで,意味関係同定,
曖昧性解消,省略補完などを実現できる
例
2種類の「小倉」 (EDR概念体系)
30f6ae
具体物
「小倉が小倉を食べた.」
30f6af
生命体
1番目の「小倉」は人の名前,2番目の「小倉」は
食べ物を表す.
・・・ と私たちは解釈することができる.なぜか?
「○が△を食べる」 ⇒ ○は人間,△は食べ物
という知識を使っている.
3f9639
飲食物
30f6b0
人間
44457a
食品
3f961c
人間の名前
44457c
加工食品
200e11
日本人の氏名
0e7632
小倉あん
意味解析の結果
格フレーム辞書の利用
入力文 「小倉が小倉を食べる」
• 動詞ごとに,どんな文型を取りうるか整理して
まとめた辞書
形態素・係り受け解析
小倉
が
小倉
を
食べる
名詞
助詞
名詞
助詞
動詞
• 例:(EDR動詞共起パターン副辞書)
30f6b0(人間)
が(agent)
30f6bf (動物)
30f6b0(人間) が(agent)
3f9639(飲食物)
・・・
30f83e(行為)
・・・
を(object)
で(condition)
食べる
3bc6f0(食物をとる)
食べる
3c22e2(生計を立てる)
単語辞書の検索
小倉
が
小倉
を
食べる
200e11(氏名)
0e7632(小倉あん)
?
200e11(氏名)
0e7632(小倉あん)
?
3bc6f0(食物をとる)
3c22e2(生計立てる)
が
小倉
制約に基づく意味解析
小倉
200e11(氏名)
agent 0e7632(小倉あん)
を
食べる
object
3bc6f0(食物をとる)
3
応用: 省略語の補完
本手法における課題
• 「太郎は食堂に行った.カレーを食べた.」
太郎
は
食堂
に
行った
200e11(氏名)
agent
3bcb25(食堂)
goal
1fac4a(到着する)
カレー
を
(省略)
30f6b0(人間)
30f6bf (動物)
agent 3bebf6(カレー料理) object
• 意味的制約を記述し尽くせるか?
• 制約は必ずしも絶対的ではない
食べた
– 例: 「赤ちゃんが新聞紙を食べた.」
3bc6f0(食物をとる)
• もっともらしさの程度を区別できない
• 省略された格要素の補完
1. まず,省略された項の候補を先行文脈から探す
⇒ 「太郎」 or 「食堂」
2. 次に,候補の中で格要素としての意味的制約を
満たすものを選ぶ ⇒ 「太郎」
数値の導入
• 制約表現+数値選好
選好に基づく意味解析
– コストに基づく abduction
– Bayesian network
– Markov logic network
– neural network など
• 確率・統計的モデル
– Naive Bayes法
– 最大エントロピー法
– Support Vector Machine など
Naive Bayes法による語義曖昧性解消
• 単語 w が複数の意味 s1,…,sk を持つとき,
ある文中に現れた w がこれらの内のどの意味
で使われているのか判別したい
• 文中の w の前後 n 語ずつに着目する
w1 w2 … wn w wn+1 … w2n
context window
• 条件付き確率 P(sj | w1…w2n) を最大化する
sj を求めればよい
• Bayes の定理より
P(sj | w1…w2n) =
P(w1…w2n | sj)×P(sj)
P(w1…w2n)
– 分母は sj の選び方に依存しないので無視できる
• 各wi の出現が互いに独立である と仮定すると
2n
• 多義語の例(英語)
– crane ‥ 鶴,クレーン(重機)
– pen ‥ ペン(文房具),囲い など
P(w1…w2n | sj) = Π P(wi | sj)
i=1
したがって,
2n
P(sj | w1…w2n) ∝ P(sj)×Π P(wi | sj)
i=1
4
コーパスデータに基づく確率の最尤推定
(コーパス中で w が sj の意味で使用されている回数)
P(sj) =
• EDR単語辞書における 「道」の主な意味
意味
(コーパス中の w の出現回数)
P(wi | sj) =
(コーパス中で w が sj の意味で使用される際に,
その前後 n 語の範囲に wi が出現する回数) ※1
(コーパス中で w が sj の意味で使用されている回数)
※1 wi が1回も出現しない場合は,確率 P(wi | sj) を 0 にせず,
微小な定数を割り当てる(smoothing)
確率値の最尤推定結果
• P(S1) = 0.40
P(S2) = 0.22
S1(道路)
0.034
0.034
0.029
0.029
0.029
0.023
0.017
0.017
P(S3) = 0.38
S2(人生の進路)
歩む
選ぶ
自分
たどる
開く
進む
切り開く
苦難
0.162
0.121
0.040
0.040
0.040
0.030
0.030
0.030
S3(方法)
開く
する
ない
探る
ある
歩む
開ける
選ぶ
EDR概念ID
1048dc
S1
道路
S2
人生の進路
10a4f1
S3
方法
3bbe28
• EDRコーパスにおける,上記3つの意味での「道」の使用回数
は計490回(490文).このうち50文をテストデータとし,残りの
440文を学習用データとして確率値の最尤推定に用いる
• windowサイズ n = 2
• 考慮する単語は,名詞,動詞,形容詞のみ
語義曖昧性解消のテスト結果
• P(wi | sj) の値が大きい単語 wi の例
走る
迷う
通じる
歩く
細い
行く
両側
車
実例:名詞「道」の語義曖昧性解消
0.126
0.102
0.054
0.048
0.048
0.042
0.036
0.036
• テストデータ 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
復習: 発話行為(speech act)
発話行為の理解
• 発話を一種の行為(action)としてとらえる
• 主要な効果は聞き手(読み手)の心的状態に
変化を及ぼすこと
– 心的状態(mental state)
情報的状態(知識,信念),志向的状態(欲求,意図)など
• 発話行為の種類
陳述,説明,依頼,質問,命令,許可,約束,感謝,
謝罪,など
5
発話行為の理解
間接発話行為の理解
• 発話行為(命題に対する話者の態度)の種類
は,様々な「手がかり語」により表現される
• 間接発話行為: ある発話行為を遂行すること
で別の発話行為を間接的に遂行する
– 動詞(遂行動詞)
• 「~を約束する」,「~を謝罪する」,「~を宣言する」
– 形容詞
• 「~してよい」(許可)
例: 時計持っていますか?
時間分かりますか?
時間教えてもらえますか?
時間が知りたいな.
「時間を教
えて欲し
い」 という
依頼行為
– 終助詞
• 「~か」,「~の」(質問) 「~て」,「~で」(命令,依頼)
– 動詞の命令形(命令)
すみません,降ります. 「どいて欲しい」 依頼
– 動詞の終止形(陳述,約束)
協調の原則 [Grice 1975]
• 会話の中で発言する時は,その会話の目的
や段階を踏まえた上で,まとを得た発言を行
うようにすべきである
会話の格率
1.質の格率(maxim of quality)
– 偽だと思うことや根拠の無いことは言ってはいけない
2.量の格率(maxim of quantity)
– 発言に含める情報は多過ぎても少な過ぎてもいけない
• この原則を満たすためのより具体的な約束事
を会話の格率(maxim)という
3.関係の格率(maxim of relation)
– 関連性のあることを言いなさい
4.様態の格率(maxim of manner)
– 分かりやすい言い方をしなさい
間接発話行為の理解
• 間接発話行為を認識するきっかけ
– 相手の発話をそのまま捉えたのでは協調の原則
に反してしまう(⇒ 話者の意図が分からない)
• その後の推論処理
– 発話の(そのままの)内容を P とする時,
今日のまとめ
意味構造の処理技術
• 意味解析とは?
• 制約に基づく意味解析
まだ課題が多い
• 選好に基づく意味解析
• 発話行為の理解
• P を達成するために必要なことは何か?
• P を達成することにより,次に何が可能になるか?
を考える
6
レポート課題1
• 課題:次の3つの中から2つを選択せよ.
第1回レポート課題
(1) CaboCha の性能評価
(2) 文脈自由文法の構文解析アルゴリズム実装
(3) WordNet における名詞の hypernym/hyponym
階層に関する実験,考察
• 提出期限: 6月10日(火)
• 提出方法: 原則としてワープロで作成し(A4判),
すべてホチキス等で束ねたものを授業時に提出
• レポートとしての体裁 (実験の目的,内容,結果,
考察,参考文献などの明記) を整えること
(1) CaboChaの性能評価
• 評価実験用の文を自分で用意し,CaboCha
で解析を行い,解析結果が正しいかどうか確
認し,その結果を集計,比較,考察する.
– 新聞記事,blog記事など複数の種類(カテゴリ)
の文を対象とし,解析正解率を比較する
– 評価用の文は十分な数を用意すること
– 係り受け正解率(文節単位での正解総数/総数) と
文正解率(完全に正しく解析できた文の割合) を求める
(2)文脈自由文法の構文解析アルゴリズム実装
• CYK法,Chart法,Earley法,のいずれか
– 使用するプログラミング言語は自由
– 簡単な日本語文法(CYK法の場合は,Chomsky
標準形)と入力文の例を与えて正しく解析が行え
るか実験し,結果を考察する
– 入力文は構文的曖昧性を持つ(つまり解析結果
が2個以上出てくる)文を選ぶこと
– レポートには,アルゴリズムの説明,プログラム
の説明,実行結果,考察,ソースを含めること
(3)WordNet における名詞の hypernym
/ hyponym 階層に関する実験,考察
• WordNet のWebサイト(Princeton大)で検索
を試し,名詞(noun)の hypernym/hyponym
(上位語/下位語)階層構造に関して何らか
の実験を行い考察する
– 例: 木構造の上位数階層の内容を他のシソー
ラスにおける分類と比較する,関連する複数の
単語の WordNet における位置関係を調べる,
様々な特徴を具体的データに基づいてまとめる,
その他,自由に実験のテーマを考えてよい
7