• 検索結果がありません。

構文解析 CKY 法,動的計画法

N/A
N/A
Protected

Academic year: 2021

シェア "構文解析 CKY 法,動的計画法"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

アルゴリズムとデータ構造 III 5 回目: 11 月 12 日

授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/algorithm3/index.html

構文解析 CKY 法,動的計画法

(2)

授業の予定(中間試験まで)

1 10/01 スタック (後置記法で書かれた式の計算)

2 3 4 5 6 7 8 9

10/15 文脈自由文法,構文解析,CYK10/22 構文解析 CYK

10/29 構文解析 CYK

11/12 構文解析 CYK法,動的計画法

11/ 構文解析(チャート法),グラフ(ダイクストラ法,

DPマッチング)

11/ グラフ(DPマッチング,A*アルゴリズム)

11/19 グラフ(A*アルゴリズム),前半のまとめ 11/26 中間試験

10/08, 11/05の代わりの補講日は後日相談

(3)

授業の予定(中間試験以降)

10 12/03 全文検索アルゴリズム(simple search, KMP) 11

12 13

14

15

12/10 全文検索アルゴリズム(BM, Aho-Corasick) 12/17 全文検索アルゴリズム(Aho-Corasick),デー

タ圧縮

01/07 暗号(黄金虫,踊る人形)

符号化(モールス信号, Zipfの法則,ハフマン 符号)テキスト圧縮

01/14 テキスト圧縮 (zip),

音声圧縮 (ADPCMMP3CELP),

画像圧縮(JPEG01/21 期末試験

(4)

本日のメニュー

„

構文解析

„ CYK法(続き)

„

動的計画法

„ (ダイクストラ法)

(5)

練習問題1

„

CYK 法を使って “I eat pizza with Nana” の構文 解析結果を作成しなさい .

(1) S N V

(2) S S PP (3) S V N (4) V V N (5) PP P N (6) N N PP (7) N I

(8) N Nana (9) N pizza (10) V eat (11) P with

Aa (辞書規則)

ABC

(6)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

(7)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana S N V

S V N V V N

PP P N

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

(8)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana S N V

S V N V V N

PP P N S N V

N N PP

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

(9)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana S N V

S V N V V N

PP P N S N V

N N PP

S S PP S V N V V N

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

(10)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana S N V

S V N V V N

PP P N S N V

N N PP S N V S S PP

S S PP S → V N V → V N

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

(11)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana PP P N N N PP

V V N S N V

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

S → N V の構文木

(12)

CYK 法で構文解析

I eat pizza with Nana.

(1) S N V (2) S S PP (3) S V N (4) V V N

(5) PP P N

(6) N N PP

1.I 2.eat 3.pizza

4.with 5.Nana

N I

V eat

N pizza

P with

N Nana V V N

PP P N

S N V S S PP

1.I 2.eat 3.pizza 4.with 5.Nana

N I

N Nana

N pizza

V eat

P with

S → S PP の構文木

(13)

I eat pizza with Nana.

2 種類の構文木

S

V

N

PP

N V N P N

I eat pizza with Nana

S

V

PP

N V

N

P N

I eat pizza with Nana

S

Nana は 友達

Nana は 飲み物

(14)

CYK 法のアルゴリズム

„ BCの結果をAのマスを埋めるために利用

„ A→BC

„ 部分問題の解をより大きな問題を解くために利用

„ 同じ問題を2度解かなくても済むように解を格納

adv→急いで

v→走る

n→一郎

p→を

v→見た vpadv v

npv n

ppn p

A B

C

(15)

CYK アルゴリズム T

1,2

の計算

から導出可能 は開始記号

であれば,

 

   

要素を計算 番目以降の対角線上の

の生成規則を用いて,

 

主対角線上の要素を計 の生成規則を用いて,

 

S w

w T

S

T C T

B BC

A A T

n N to i

for

N to n

for

BC A

w A

A T

N to i

for

a A

N N

n

j

n i j i j

i i n

i i

i j

i

L

U

1 ,

1

1

, 1

, ,

,

. 3

} ,

,

| {

1

1

1

2 .

2

}

| {

1 . 1

=

=

=

=

=

=

+ +

+ +

1,1 1,4 1,5

2,4

1,2 1,3

2,2 2,5

3,3 2,3

3,4 4,4

3,5 4,5

2 5,5

, 2 1

1 , 1 1 1

, 1 1

1 1 , 1 2

, 1

2 , 1

, ,

) 1

( 1 ,

1 ,

1

T T

C T

T B

BC A

T

n j

j n

i T

=

=

=

=

=

=

=

=

+ +

+

の計算

(16)

CYK アルゴリズム T

2,4

の計算

U

n

j

n i j i j

i i n

i

i A A BC B T C T

T

n N

to i

for

N to n

for

BC A

1

, 1

,

, { | , , }

1

1

1

2 .

2

=

+ +

+

+ =

=

=

   

要素を計算 番目以降の対角線上の

の生成規則を用いて,

 

1,1 1,4 1,5

2,4

1,2 1,3

2,2 2,5

3,3 2,3

3,4 4,4

3,5 4,5 5,5

4 , 4 3

, 2 4

, 2

4 , 3 2

, 2 4

, 2

2 2 , 2 1

2 , 2 4

, 2

4 , 2

, ,

2

, ,

1

, ,

) 1

( 2 , 1 ),

2 4

( 2 ,

2

T C

T B

BC A

T j

T C

T B

BC A

T j

T C

T B

BC A

T

n j

j n n

i T

j j

=

=

=

=

=

=

=

=

=

=

=

= +

=

=

=

+ +

+

の時  の時  の計算

(17)

構文解析アルゴリズム

„ ボトムアップアルゴリズム

„ 戦略

„ 単語列から出発

„ Sを導出 → 解析終了

„ 代表的なアルゴリズム

„ CYK

„ LR

„ トップダウンアルゴリズム

„ 戦略

„ Sから出発

„ 目的の単語列を導出 → 解析終了

„ 代表的なアルゴリズム

„ アーリー法(Earley parser)

„ LL法

(18)

動的計画法 (Dynamic Programming)

„ 部分問題の解をより大きな問題を解くために利用

„ 同じ問題を2度解かなくても済むように解を格納

„ アルゴリズムの例

„ CYK法(構文解析)

„ ダイクストラ法(最短経路問題)

„ DPマッチング(パターンマッチング DNAの解析にも利用)

„ DPを使った解法(ナップサック問題)

„ ビタビアルゴリズム(音声認識など)

参照

関連したドキュメント

JavaScript 処理系の開発では JavaScript の構文解析器を作る必要がある. JavaScript の構 文解析器は,

表 1 授業概要 概要 授業概要, Python の概要と演習 プログラミング言語比較, python 演習 文字列処理: grep, HTML パーサ, 形態素 解析, N

2、構文解析(syntax analysis): token 列を意味を反映した 構造に変換。この構造は、しばしば、木構造で表現され

5

(直列的) – 意解析可能性に加え、並列解析可能性も合わ せて示す。 2- 意解析可能文法 意解析可能文法 UPG は、

3 LC 構文解析の拡張 (ELC 構文 解析 ) 文脈自由言語以下のクラスの言語の場合, 生 成規則の矢印の左側が複数の文字列である生成規 則 \alpha \rightarrow

次に、階層的な並列構造を解析する手法について述べる。本研究では、下位の並列構造

4 おわ も 招二 本研究では,形態素解析 。構 文解析 を同時 に行 う際に,構 文的な統計情報 と語葉的な統計情 報 を組 み合 わせて暖味性 を解消す