今日の内容 自然言語処理システム特論 意味解析 • 意味解析とは?(復習) Natural Language Processing Systems • 制約に基づく意味解析 – 格フレームの利用 第6回 2016/5/25 芝浦工業大学 工学部 情報工学科 杉本 徹 [email protected] • 選好に基づく意味解析 – 統計的分類器を用いた意味解析 • 単語の意味のモデル化の動向 実験課題:今後の日程 復習: 自然言語の解析処理の流れ 意味解析とは?(復習) 入力文 「太郎は本を読んだ。」 ① 形態素解析 太郎 は 本 を 読ん だ ② 構文解析 名 助 名 助 動 助動 太郎 は 本 を 読ん だ ③ 意味解析 read agent taro ④ 文脈解析 意味表現の例(グラフ構造) 例:「太郎が生協の食堂でカレーを食べた.」 係り受け木 食べた read 1.単語辞書を参照して 意味表現 eat / 文節の主辞を概念に変換 live interesting dining / curry / taro cafeteria Calais 太郎が 食堂で カレーを agent object object 生協の taro 複数の文に またがる処理 意味解析の手法(単純化した処理手順) • 例: 「太郎は面白い本を読んだ.」 object book book 注: 入力文に対する論理式表現やグラフの構造,ラベル名の与え方は 一つに決まっているわけではない agent eat / live place object 3.意味役割付与 taro dining / curry / cafeteria Calais 深層格を求める possessor co-op 複数の 概念候補 2.語義曖昧性解消 単語の概念を1つに 絞り込む 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 (動物) が(agent) 30f6b0(人間) が(agent) 3f961c 人間の名前 200e11 日本人の氏名 44457c 加工食品 3f9639(飲食物) ・・・ 30f83e(行為) ・・・ を(object) で(condition) 食べる 3bc6f0(食物をとる) 食べる 3c22e2(生計を立てる) 0e7632 小倉あん 2 意味解析の結果 制約に基づく意味解析の課題 入力文 「小倉が小倉を食べる」 形態素・係り受け解析 小倉 が 小倉 を 食べる 名詞 助詞 名詞 助詞 動詞 • 制約は必ずしも絶対的ではない – 例: 「赤ちゃんが新聞紙を食べた.」 単語辞書の検索 小倉 200e11(氏名) 0e7632(小倉あん) が 小倉 ? 200e11(氏名) 0e7632(小倉あん) を 食べる ? 3bc6f0(食物をとる) 3c22e2(生計立てる) 格フレームを用いた絞り込み 小倉 が 200e11(氏名) 小倉 を agent 0e7632(小倉あん) object • 意味的制約を記述し尽くせるか? 食べる • もっともらしさの程度を区別できない – 例: 「生協の食堂でカレーを食べた.」において「食堂」 という単語の2つの意味(料理店,食事をする部屋) は両方とも,深層格 place の選択制限である「場所」 の一種であるため,制約だけでは区別できない 3bc6f0(食物をとる) 参考: Google 3-gram からの例 「食堂」の2つの意味 (EDR概念体系) • マック/を/食べる(2827) 3aa938 場所 • 紙/を/食べる(2576) • 夢/を/食べる(2238) 444a80 経済活動を行う場所 • 秋/を/食べる(2105) 10a479 店 • 世界/を/食べる(1550) 30f76b 部屋 3bcb25 食事をする部屋 • 雪/を/食べる(1349) 0e560f 飲食店 • 本/を/食べる(1318) • 真実/を/食べる(1197) • コイン/を/食べる(1142) (括弧内の数字は Google 3-gram における出現回数) 3d007d 料理屋 • 家/を/食べる(1102) 統計的手法に基づく意味解析 選好に基づく意味解析 • 構文情報と意味情報が付加されたタグ付きコーパスを 教師データとして,構文的特徴から意味情報(単語の 意味や深層格)を推定する統計モデルを学習する • 分類器に基づく方法 – Naive Bayes 法 – 最大エントロピー法 – Support Vector Machine など • ネットワークモデル – Bayesian Network – Markov Logic Network – neural network など 3 Naive Bayes 法 • Bayes の定理を使って,事後確率を求める • 入力データの各特徴(素性)が互いに独立である という単純(naive)な仮定をおく • 単純なモデルの割に,分類精度はまずまず Naive Bayes法による語義曖昧性解消 • 単語 w が複数の意味 s1,…,sk を持つとき, ある文中に現れた w がこれらの内のどの意味 で使われているのか判別したい • 文中の w の前後 n 語ずつに着目する w1 w2 … wn w wn+1 … w2n context window • 多義語の例(英語) – crane ‥ 鶴,クレーン(重機) – pen ‥ ペン(文房具),囲い など 問題: context window (w1…w2n) に対する事後確率 P(sj | w1…w2n) が最大となる意味 sj を求める コーパスデータに基づく確率の最尤推定 • Bayes の法則より P(sj | w1…w2n) = P(w1…w2n | sj)×P(sj) P(w1…w2n) P(sj) = – 分母は sj の選び方に依存しないので無視できる • 各wi の出現が互いに独立である と仮定すると 2n P(w1…w2n | sj) = Π P(wi | sj) P(wi | sj) = (コーパス中で w が sj の意味で使用されている回数) (コーパス中の w の出現回数) (コーパス中で w が sj の意味で使用される際に, その前後 n 語の範囲に wi が出現する回数) ※1 (コーパス中で w が sj の意味で使用されている回数) i=1 2n – したがって, P(sj | w1…w2n) ∝ P(sj)× Π P(wi | sj) i=1 • 赤枠内の式の値が最大となる sj を選べばよい 実例:名詞「道」の語義曖昧性解消 • EDR単語辞書における 「道」の主な意味 意味 S1 S2 道路 人生の進路 EDR概念ID 1048dc 10a4f1 S3 方法 3bbe28 • EDRコーパスにおける,上記3つの意味での「道」の使用回数 は計490回(490文).このうち50文をテストデータとし,残りの 440文を学習用データとして確率値の最尤推定に用いる • windowサイズ n = 2 • 考慮する単語は,名詞,動詞,形容詞のみ ※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 選ぶ 4 語義曖昧性解消のテスト結果 • テストデータ 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 分類器に基づく語義曖昧性解消 • 分類器(例:SVM)に与える素性 – 前後の単語 – 前後の単語の品詞(細分類を含む) – 前後の単語のシソーラス上の値 など • 参考: 新納ほか「語義曖昧性解消におけるシソーラ ス利用の問題分析」,言語処理学会年次大会,2015 – シソーラスは使った方がよい – シソーラスの粒度は重要でない – 複数のシソーラスのアンサンブルは効果あり 単語の意味の統計的モデル • 従来の単語の意味のモデル(例:シソーラス) – 言語学者の直感に基づく分類,体系化 – 説明性は高いが,必然性や網羅性に問題あり 単語の意味のモデル化の動向 • 単語の意味の統計的モデル – 各単語のコーパスにおける使われ方の統計データに 基づき,意味を表現する対象(ベクトルなど)を生成する – 分布仮説(Distributional Hypothesis [Harris, 54]) 「同じような文脈で用いられる単語は同じような意味をもつ」 分布的(Distributional)意味表現 • 単語の意味を,コーパス中でその前後に現れる 単語の共起頻度分布によって表す – 各単語の意味は,共起語ベクトル(次元数=単語の 種類数(数万~100万)の疎ベクトル)として表される 分散的(Distributed)意味表現 • 各単語の意味を,数百次元程度の密な実数値ベクトルとして 表現する – 入力単語 wk を指定次元数(D)のベクトル表現に変換した後,その ベクトル表現から wk の前後に出現する単語 wk+i を予測するような neural network を構築し,コーパスを訓練データとして学習することに より,単語のベクトル表現を得る(skip-gram [Mikolov 2013] word2vec) Input layer • 分布類似度(Distributional Similarity) – 2単語の意味的類似度を,両者の共起語ベクトルの 比較(Cosine類似度,内積など)により求める x1 入力 単語 wk Hidden layer u11 u12 y1 Output layer v11 v12 x2 z1 z2 … … … 出力 単語 wk+i yD xN uND vDN zN 5 実例: 与えられた語の類義語を求める • 日本語語彙大系(概念体系) • word2vec(分散表現)におけ における頂点間距離を利用 るベクトル間類似度を利用 元の語 類義語 • 大学 犬 スキー 大学 犬 スキー 学校 獣 スポーツ 学園 狼 野球 学生 猫 ボウリング 短大 ペット 小学校 猫 競技 サッカー 学部 飼育 スケート 中学校 馬 競技 高校 獣 ジャンプ 高校 駒 対戦 学校 動物 ゴルフ 研究所 牛 試合 大学院 獣医 リフト 病院 熊 決勝 学科 家畜 海水浴 公園 虎 選手権 ゼミ 繁殖 白馬 参考: word2vec を用いた「類推」 • 単語の分散表現を使うと,意味の足し算,引き算 も可能 [Mikolov 2013] 例1: king – man + woman ≒ queen 例2: Paris – France + Japan ≒ Tokyo 例3: bigger – big + cold ≒ colder 例4: sushi – Japan + USA ≒ pizza • 単語の「類推」を行うことができる 対象データ: 日本語語彙大系の一般名詞辞書に収録された単語のうち, Wikipediaと毎日新聞の記事からなるコーパス中の出現頻度上位10000語 日程 • 第2回 参加アンケート(済) • 第3回 グループ分け,話し合い(済) 実験課題:今後の日程 • 第4回 実験の構想発表(プレゼン) (済) • 第8~10回 実験の結果報告(プレゼン) – 実験の目的,システムの機能,アルゴリズムの説明, 使用したデータ,使用したツール,実験結果,考察, 分担,参考文献 • 6月7日(火) 23:59 までに,全グループ,プレゼ ンのファイル(PowerPointなど)と作成したプログ ラム一式を杉本へ提出すること(詳細は後日) 実験の結果報告プレゼンについて • 日程: 6/8, 6/15, 6/22 の3回 • 発表時間: 1グループ 15分(+質疑10分) • 発表内容: 実験の目的,システムの機能,アルゴリ ズムの説明,使用したデータ,使用したツール,実験結 果,考察,分担,参考文献 など • お願い 上記の日程の中で学会等のため参加不可能な日がある グループは,5/27(金) までに杉本に連絡をください. 6
© Copyright 2024 ExpyDoc