数理言語

Similar documents
nlp1-04a.key

数理言語

Microsoft PowerPoint PCFG.ppt

Microsoft PowerPoint - 08LR-conflicts.ppt [互換モード]

Microsoft PowerPoint - アルデIII 02回目10月14日

Microsoft PowerPoint - アルデIII 02回目10月15日

文法と言語 ー文脈自由文法とLR構文解析2ー

自然言語は曖昧性だらけ! I saw a girl with a telescope 構文解析 ( パージング ) は構造的な曖昧性を解消 2

オートマトンと言語

数理言語

Microsoft PowerPoint - 3.ppt [互換モード]

21 Pitman-Yor Pitman- Yor [7] n -gram W w n-gram G Pitman-Yor P Y (d, θ, G 0 ) (1) G P Y (d, θ, G 0 ) (1) Pitman-Yor d, θ, G 0 d 0 d 1 θ Pitman-Yor G

nlp1-05.key

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint - algo ppt [互換モード]

PowerPoint プレゼンテーション

memo

Microsoft PowerPoint - 11Syntax.ppt

C8

alg2015-6r3.ppt

Microsoft PowerPoint - Compiler06note.pptx

Taro-再帰関数Ⅱ(公開版).jtd

Microsoft PowerPoint - Compiler06.pptx

概要 CKY Parser(Section 9.1.2) の改良 事前にもつ知識の活用 実際のアプリケーションへの応用

Functional Programming

Taro-最大値探索法の開発(公開版

Microsoft PowerPoint - 02LanguageTheory.ppt [互換モード]

DVIOUT

2016.

第121回関東連合産科婦人科学会総会・学術集会 プログラム・抄録

A Constructive Approach to Gene Expression Dynamics

構文解析表の作成講義でも少し触れましたが 各選言で先頭に出現する可能性がある終端記号の集合 のことを DIRECTOR 集合とよびます DIRECTOR は direction( 方向 ) を決定するという意味を持っており LL(k) 構文解析器が非終端記号を解析する際に そのうちどの選言を利用する

Microsoft PowerPoint - kougi10.ppt

Microsoft PowerPoint - 13approx.pptx

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル


NLP プログラミング勉強会 5 HMM による品詞推定 自然言語処理プログラミング勉強会 5 隠れマルコフモデルによる品詞推定 Graham Neubig 奈良先端科学技術大学院大学 (NAIST) 1

Microsoft PowerPoint - ad11-09.pptx

カテゴリ変数と独立性の検定

Microsoft PowerPoint ppt

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

生命情報学

Functional Programming

[1] B =b 1 b n P (S B) S S O = {o 1,2, o 1,3,, o 1,n, o 2,3,, o i,j,, o n 1,n } D = {d 1, d 2,, d n 1 } S = O, D o i,j 1 i

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - Compiler05note.pptx

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Microsoft PowerPoint - DA2_2017.pptx

アルゴリズムとデータ構造

Microsoft PowerPoint L03-Syntex and Semantics-1-students ( )

Microsoft Word - Javacc.docx

プログラミング基礎

memo

プログラミングI第10回

模擬試験問題(第1章~第3章)

Handsout3.ppt

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - 03BNFScanner.ppt [互換モード]

Microsoft PowerPoint - sakurada3.pptx

知識工学 II ( 第 2 回 ) 二宮崇 ( ) 論理的エージェント (7 章 ) 論理による推論 命題論理 述語論理 ブール関数 ( 論理回路 )+ 推論 ブール関数 +( 述語 限量子 ( ) 変数 関数 定数 等号 )+ 推論 7.1 知識

n 2 n (Dynamic Programming : DP) (Genetic Algorithm : GA) 2 i

Microsoft PowerPoint - Compiler05.pptx

COMPUTING THE LARGEST EMPTY RECTANGLE

OR#5.key

Functional Programming

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - 03BNFScanner-print.ppt

数理言語


Microsoft PowerPoint - 06.pptx

No. 3 Oct The person to the left of the stool carried the traffic-cone towards the trash-can. α α β α α β α α β α Track2 Track3 Track1 Track0 1

Microsoft PowerPoint - ppt-7.pptx

2 列 B と 列 C の間にカーソルをあわせ, カーソルの形が変化したところでドラッグして右に移動し, 列 B の幅を約 に設定します 3 列 C の上でマウスをドラッグして右に移動し, 列 C, 列 D, 列 E の 3 列を一括選択します 一括選択ができたら, 列 C と 列 D

図形言語処理システムにおける図形エディタと空間解析器の統合

アルゴリズムとデータ構造

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

Microsoft Word - problem3.doc

融合規則 ( もっとも簡単な形, 選言的三段論法 ) ll mm ll mm これについては (ll mm) mmが推論の前提部になり mmであるから mmは常に偽となることがわかり ll mmはllと等しくなることがわかる 機械的には 分配則より (ll mm) mm (ll mm) 0 ll m

Taro-リストⅠ(公開版).jtd

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

行列代数2010A

Taro-再帰関数Ⅲ(公開版).jtd

数理言語

Microsoft PowerPoint ppt

memo

memo

情報処理Ⅰ

3

PowerPoint Presentation

DA13

IPSJ SIG Technical Report Vol.2015-SE-187 No /3/ Checking the Consisteny between Requirements Specification Documents and Regulations A

Microsoft PowerPoint - 09re.ppt [互換モード]

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

PowerPoint プレゼンテーション

第12回 モナドパーサ

ARDJ-at-NLP24-slides.key

オートマトンと言語

スライド 1

PowerPoint Presentation

Transcription:

人工知能特論 II 二宮崇 1

今日の講義の予定 CFG 構文解析 教科書 北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル東大出版会 C. D. Manning & Hinrich Schütze FOUNDATIONS OF STATISTICAL NATURAL LANGUAGE PROCESSING MIT Press, 1999 D. Jurafsky, J. H. Martin, A. Kehler, K.V. Linden & N. Ward Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition Prentice Hall Series in Artificial Intelligence, 2000 2

CFG の構文解析 ある文 s が与えられた時 文法 G によって導出できる全ての構文木を導出する構文解析 何のために? PCFG 構文解析の基礎 構文解析後に 確率計算を行って 最も良い構文木を選択する パラメータ推定の際に構文木の候補集合が必要 ( 学習方法によっては必要ない ) 3

CFG 構文解析 4

CFG 構文解析のアルゴリズム トップダウン型 アーリー法 (earley parsing algorithm) ボトムアップ型 CKY 法 (CKY parsing algorithm, CYK 法ともいう ) チャート法 (chart parsing algorithm) 左隅解析法 (left-corner parsing algorithm) 一般化 LR 法 (generalized LR parsing) 5

CKY 法 Cocke, Kasami, Younger により提案され それぞれの頭文字をとって CKY もしくは CYK 構文解析アルゴリズムと呼ばれる 多くのパーザーで用いられている 簡単 効率が良い デコーディングと相性が良い 文法規則はバイナリルールかユーナリールールのみ バイナリールール : 書換規則の右側の要素が二つしかないルール ユーナリールール : 書換規則の右側の要素が一つしかないルール CFG ならチョムスキー標準形に変形 HPSG CCG ではバイナリールールを想定しているので特に問題は無い 6

準備 : 書換規則と位置 書換規則は次の 3 つを想定 A B C ( バイナリールール ) A B ( ユーナリールール ) A w ( 辞書ルール ) 位置 文 w 1,w 2,...,w n が与えられた時 単語 w i の位置 : <i-1, i> 句 w i,...,w j の位置 : <i-1, j> 7

準備 : CKY テーブル ( チャート ) S i,j : w i+1,..., w j に対応する句の非終端記号の集合 S 0,6 S 0,5 S 1,6 S 0,4 S 0,3 S 1,4 S 1,5 S 2,6 S 2,5 S 3,6 S 0,2 S 1,3 S 2,4 S 0,1 S 1,2 S 2,3 S 3,4 S 3,5 S 4,6 S 4,5 S 5,6 0 1 2 3 4 5 6 w 1 w 2 w 3 w 4 w 5 w 6 8

CKY 法 : 基本的なアイデア 目的 : S 0, n を計算 S i,j は次のSから計算できる S i, i+1 とS i+1, j S i, i+2 とS i+2, j... S i, j-1 とS j-1, j 9

CKY 法 : 基本的なアイデア Z X Y Y X Z w 1, w 2, w 3, w 4 X Y w 1, w 2, w 3, w 4 w 1, w 2, w 3, w 4 X Y w 1, w 2, w 3, w 4 10

CKY 法 矢印の順で全ての S i,j が求まる S 0,6 S 0,5 S 1,6 S 0,4 S 1,5 S 2,6 S 0,3 S 1,4 S 2,5 S 3,6 スタート S 0,2 S 1,3 S 2,4 S 0,1 S 1,2 S 2,3 S 3,4 S 3,5 S 4,6 S 4,5 S 5,6 0 1 2 3 4 5 6 w 1 w 2 w 3 w 4 w 5 w 6 11

ルール適用と S i,j の求め方 G(X, Y) = {Z p P.p=(Z X Y)} X Y に対する全ての親を返す関数 X, Y: 非終端記号 P: 書換規則の集合 S i,j を求めるアルゴリズム for k = i+1 to j-1 forall X S i,k forall Y S k,j S i,j := S i,j G(X, Y) 12

CKY 法 : S i,j 例 : S 1,5 に対し k=2,3,4 S 0,6 S 0,5 S 1,6 S 0,4 S 1,5 S 2,6 S 0,3 S 1,4 S 2,5 S 3,6 S 0,2 S 1,3 S 2,4 S 0,1 S 1,2 S 2,3 S 3,4 S 3,5 S 4,6 S 4,5 S 5,6 0 1 2 3 4 5 6 w 1 w 2 w 3 w 4 w 5 w 6 13

CKY 法 例 同じ記号が複数でた場合は 一つにまとめて構わない (factoring, ファクタリング ) この後のステップでの処理は全て同じになる 0,4 はずだから S 0,3 1,4 VP 0,6 0,5 1,6 VP,VP 1,5 2,6 2,5 3,6 S NP VP 0,2 1,3 2,4 3,5 4,6 NP V NP P DT NP 0,1 1,2 2,3 3,4 4,5 5,6 0 1 2 3 4 5 6 John sees Mary with a telescope NP PP NP 文法 VP VP PP VP V NP VP V NP NP PP NP John NP Mary PP P NP P with NP DT NP DT a NP telescope V sees V runs 14

CKY 法 例 S 0,6 VP 0,5 1,6 NP 0,4 1,5 2,6 S PP 0,3 1,4 2,5 3,6 VP NP 文法 S NP VP VP VP PP VP V NP VP V NP NP PP NP John NP Mary PP P NP P with NP DT NP DT a NP telescope V sees V runs 0,2 1,3 2,4 3,5 4,6 NP V NP P DT NP 0,1 1,2 2,3 3,4 4,5 5,6 0 1 2 3 4 5 6 John sees Mary with a telescope 15

CKY 法 : アルゴリズム for j = 1 to n S j-1,j := L(w j ) ## Lは単語 wに対する非終端記号の集合を返す関数 for l = 2 to n for i = 0 to n l j := i + l; for k = i+1 to j - 1 forall X S i,k forall Y S k,j Si,j := Si,j G(X, Y) S i,j := S i,j U(S i,j ) ## Uはユーナリールールを適用して得られる非終端記号集合 16

CKY 法 : 計算量 最悪時間計算量 (worst-case time complexity) O(n 3 ) n は文長 アルゴリズムより明らか 非終端記号数を V N とすると O(n 3 V N 2 ) ファクタリングのおかげで計算量が指数爆発していないということに注意! 17

CKY 法 : 計算順序 次の順番で計算しても ok ( 左隅 ) S 0,6 S 0,5 S 1,6 S 0,4 S 1,5 S 2,6 S 0,3 S 1,4 S 2,5 S 3,6 スタート S 0,2 S 1,3 S 2,4 S 0,1 S 1,2 S 2,3 S 3,4 S 3,5 S 4,6 S 4,5 S 5,6 0 1 2 3 4 5 6 w 1 w 2 w 3 w 4 w 5 w 6 18

CKY 法 : 計算順序 次の順番で計算しても ok ( 右隅 ) S 0,6 S 0,5 S 1,6 S 0,4 S 1,5 S 2,6 S 0,3 S 1,4 S 2,5 S 3,6 S 0,2 S 1,3 S 2,4 S 3,5 S 4,6 スタート S 0,1 S 1,2 S 2,3 S 3,4 S 4,5 S 5,6 0 1 2 3 4 5 6 w 1 w 2 w 3 w 4 w 5 w 6 19

CKY 法 : データ構造 各 CKY セル S i,j の内容はエッジの集合 エッジ エッジ ID 非終端記号 リンクの集合 リンク : このエッジがどのエッジから生成されたか記録したデータ構造 バイナリールールならエッジ ID のペア ユーナリールールならエッジ ID 辞書ルールなら単語 ID 20

チャート法 n 分岐の書換規則を扱える最も一般的な考え方のボトムアップ型パージングアルゴリズム CKY は 2 分岐の書換規則のみ 21

チャート法 : データ構造 エッジ 活性エッジ <i, j, Y X 1... X k X k+1... X n > 書換規則の途中にドットをいれたもの X 1... X k が解析済みということを意味する エッジの左側の位置 (i) と右側の位置 (j) 右側の位置はドットまでの位置のこと 不活性エッジ <i, j, Y> エッジの左の位置 (i) と右の位置 (j) 非終端記号 22

チャート法 : 基本的な考え方 Shift-1: 新しい不活性エッジ <i, j, X> が生成された時 左側に Y... X... の形の活性エッジがあれば Y...X... の活性エッジを生成 Y X 1 X 2 X X 3 X new! i j Y X 1 X 2 X X 3 Y X 1 X 2 X X 3 new! X i j 23

チャート法 : 基本的な考え方 Shift-2: 新しい活性エッジ <i, j, Y... X...> が生成された時, 右側に接する全ての不活性エッジXに対し 活性エッジを生成 Y X 1 X X 2 X 3 X new! i j Y X 1 X X 2 X 3 new! Y X 1 X X 2 X 3 X i j 24

チャート法 : 基本的な考え方 Reduce: Shift-1, Shift-2 の結果新しい活性エッジ <i, j, Y...X > が生成された場合 不活性エッジ <i, j, Y> に置き換える Y X 1 X 2 X 3 Y new! i j i j 25

チャート法 : アルゴリズム for j = 1 to n Queue := Queue L(w j ) ## 不活性エッジ <j-1, j, wj に対する非終端記号 > の集合 Chart := Chart L(w j ) Y β P <j-1, j-1, Y β> while(queue is not empty) E := shift(queue) ##E は Queue の先頭 edges := {}; reduced_edges := {} if(e is 不活性エッジ <i, j, X>) forall F Chart s.t. F=<h, i, Y... X...> edges := edges <h, j, Y...X...> if(e is 活性エッジ <i, j, Y... X...>) forall F Chart s.t. F=<j, k, X> edges := edges <i, k, Y...X...> forall E edges if(e is <x, y, Y β >) reduced_edges := reduced_edges <x, y, Y> else reduced_edges := reduced_edges E Queue := Queue reduced_edges; Chart := Chart reduced_edges チャートとキューにエッジを格納するときにファクタリングをする 26

左隅解析法 チャート法をより効率的にしたアルゴリズム 活性エッジをチャートに残さなくても ok 右側にエッジがないので 左側のみ解析の対象とすれば良い ( アルゴリズムが簡単 ) 27

左隅解析法 : 基本的な考え方 left-to-right バイナリールールに限れば CKY の左隅解析と同じ w 1, w 2, w 3,...,w i-1,w i,..., wn 28

左隅解析法 : 基本的な考え方 (1) w 1,..,w i-1 までは解析済みで 不活性エッジしか存在しないと考える <i-1, i, l L(w i )> を新しい不活性エッジとして加える w 1, w 2, w 3,...,w i-1,w i,..., wn 29

左隅解析法 : 基本的な考え方 (2) 新しく出来た不活性エッジ <_, i, X> に対し Y X 1...X k X という形の全ての規則に対し X と連接する X k,..x 1 のエッジを左に向かって探す 見つかったら新しく不活性エッジ <_, i, Y> を生成 新しく出来たエッジの右端は常にiなので 右側にエッジは存在しない 右側を気にしなくてもよい Y A B C X Y A B C X...,w i-1,w i,... 30

左隅解析法 : アルゴリズム search-left(y, β(=x 1...X k ), i,j) if( β is empty ) edges := edges <i, j, Y> forall <h,i,x k > Chart search-left(y, X 1...X k-1, h, j) left-corner-parsing(w 1,...,w n ) for j = 1 to n Queue := L(w j ) ## <j-1, j, w j の非終端記号 > while(queue is not empty) <i, j, X> := shift(queue) forall (Y X 1... X k X) P edges := {} search-left(y, X 1...X k, i, j) チャートにエッジを格納するときにファクタリングをする Chart := Chart edges; Queue := Queue edges 31

まとめ CFG 構文解析 動的計画法 (dynamic programming) チャートに部分構文木を残しているため 一度計算された部分構文木は二度計算されない 同じ位置の同じ非終端記号を一つにまとめる ( ファクタリング ) 同じ計算を 2 回以上しないようにするため 出力は畳みこまれた構文木集合 (packed forest) AND, OR で表現されるグラフ構造 CKY 法 チャート法 左隅解析法 資料 http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ai2/ 32