Top Banner
言言 言言言言言言言言 言7言
45

言語体系とコンピュータ

Jan 03, 2016

Download

Documents

veda-rush

言語体系とコンピュータ. 第 7 回. 本日の内容. 前回のおさらい 文がどんな構造をしているか決める 文脈自由文法を使った文構造の解析 アルゴリズムをちゃんと考えた解析 CKY法 チャート法. 前回のおさらい. 文がどんな構造をしているか決める 文の構造は曖昧なので,複数あることが多い ただし,候補の中でありえないものは排除したい どんな構造があるかを見つける必要がある →文として「あり」か,「なし」か   を見極める作業ともいえる. 前回のおさらい( 2 ). ある文字列が文か文でないか? どうやって決める? 確実なのは母語話者の直感! - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 言語体系とコンピュータ

言語体系とコンピュータ

第 7 回

Page 2: 言語体系とコンピュータ

2

本日の内容• 前回のおさらい

– 文がどんな構造をしているか決める• 文脈自由文法を使った文構造の解析

• アルゴリズムをちゃんと考えた解析– CKY法– チャート法

Page 3: 言語体系とコンピュータ

3

前回のおさらい• 文がどんな構造をしているか決める

– 文の構造は曖昧なので,複数あることが多い– ただし,候補の中でありえないものは排除し

たい

– どんな構造があるかを見つける必要がある

→ 文として「あり」か,「なし」か  を見極める作業ともいえる

Page 4: 言語体系とコンピュータ

4

前回のおさらい( 2 )• ある文字列が文か文でないか?

– どうやって決める?– 確実なのは母語話者の直感!

• 母語話者でも判定が難しいこともあるけど...「まじありえなくなくない?」

どちらにせよ.毎回母語話者が必要だとしたら不便だし, コンピュータでの処理は無理...

• それを克服するには,文法が必要

Page 5: 言語体系とコンピュータ

5

前回のおさらい( 3 )-文法( 1 )

• 文脈自由文法( CFG:   Context Free Grammar )  G  = < VT , VX , VC , PD , PP , σ

>– VT  :終端記号– VX  :非終端記号– VC  :前終端記号 ←終端記号の 1 つ前の状態– PD  :辞書規則の集合– PP  :句構造規則の集合– σ  :初期記号  σ V∈ N

というような記号を使って表現

Page 6: 言語体系とコンピュータ

6

前回のおさらい( 4 ) ー文法( 2 )

• 文脈自由文法の例– PP  :句構造規則の集合

– PD  :辞書規則の集合

( 1 ) S→NP  VP

( 4 ) NP→DET  N

( 7 ) VP→VP  NP

( 2 ) NP→N ( 5 ) VP→V ( 8 ) VP→VP  PP

( 3 ) NP→NP  PP

( 6 ) VP→V  NP

( 9 ) PP→Prep  NPN→ I, apples, garden V→ eat

Det →   the Prep→ in

Page 7: 言語体系とコンピュータ

7

前回のおさらい( 5 )• 手順は気にせず文の構造を決める作業              S

I eat the apples in the garden.

    ↑

ボトムアップ

Page 8: 言語体系とコンピュータ

8

前回のおさらい( 6 )• 手順は気にせず作業

  NP       NP

N V Det N Prep Det N

I eat the apples in the garden.

PP  :句構造規則を調べて,句をつくる以降も最後まで続けた!

Page 9: 言語体系とコンピュータ

9

前回のおさらい( 7 )• トップダウンも説明 S

I eat the apples in the garden.

トップダウン

    ↓

Page 10: 言語体系とコンピュータ

10

前回のおさらい( 8 ) S

           NP    VP

I eat the apples in the garden.

Page 11: 言語体系とコンピュータ

11

前回のおさらい( 9 ) S

           NP    VP

            I    VP

I V I V NP

I eat I eat NP

I eat the apples in the garden.

最後まで 続ける

Page 12: 言語体系とコンピュータ

12

アルゴリズムを考えた解析• ボトムアップとトップダウン

– すでに体験済み– トップダウンS →NP VP規則は左から右へ

Page 13: 言語体系とコンピュータ

13

アルゴリズムを考えた解析• ボトムアップとトップダウン

– すでに体験済み– ボトムアップS →NP VP規則は右から左へ

Page 14: 言語体系とコンピュータ

14

アルゴリズムを考えた解析• 深さ優先(縦型)探索と幅優先(横型)

探索– 競合する規則をどのように採用していくかの

違い

Page 15: 言語体系とコンピュータ

15

アルゴリズムを考えた解析• 深さ優先(縦型)探索

– とりあえず1つの結果が出るまで探索を進める– 複数の結果を得るためには,後戻りして結果を

探す 1

2158

6 7

9 10

11

14

12

13

17

16

Page 16: 言語体系とコンピュータ

16

アルゴリズムを考えた解析• 幅優先(横型)探索

– 最初の頂点から到達可能な頂点を順に探す 1

2 3 4

5 6 7 109

11 14 15

16

Page 17: 言語体系とコンピュータ

17

アルゴリズムを考えた解析

• 比較的枝分かれが少ない場合– 深さ優先 ×  幅優先○

• 枝分かれが多い場合– 深さ優先○ 幅優先 ×

Page 18: 言語体系とコンピュータ

18

CKY法( Cocke-Kasami-Younger 法)

• 制約:– ボトムアップ型...右辺から左辺への書き換え– 文法はチョムスキー標準形(結構きつい制約)

• チョムスキー標準形  (右辺が必ず非終端か前終端記号 2 つ)   A→B C   A Vx∈ ,  B , C∈ ( Vc Vx∪ )         Vx 非終端記号, Vc 前終端記号

Page 19: 言語体系とコンピュータ

19

CKY法( 2 )• 文法句構造規則 PP

   辞書規則 PD

NP, VP はチョムスキー標準形への対応

( 1 ) S→NP  VP

( 5 ) VP→VP  NP

( 2 ) NP→NP   PP

( 6 ) VP→VP  PP

( 3 ) NP→DET   N

( 7 ) PP→Prep  NP

( 4 ) VP→V  NP

N → I, apples, garden V → eat

NP→ I, apples, garden VP→ eat

Det →   the Prep→ in

Page 20: 言語体系とコンピュータ

20

CKY法( 3 )• アルゴリズム 1 .単語 数分の マスを 書く

Page 21: 言語体系とコンピュータ

21

CKY法( 3b )• アルゴリズム  1    2    3    4    5   

6    7

1 .単語  1

 数分の      2

 マスを          3

 書く                4

                       5

                           6

                              7

   

Page 22: 言語体系とコンピュータ

22

CKY法( 3c )• アルゴリズム  1    2    3    4    5   

6    7

1 .単語  1

 数分の      2

 マスを          3

 書く                4

                       5

                           6

                              7

   

マスの番号  ai,j

a1,1

a7,7

a1,7

Page 23: 言語体系とコンピュータ

23

CKY法( 4 )2. 辞書規則を元に a1,1 から a7,7 まで記入

   

1

23

45

67

1 2 3 4 5 6 7

for   (i=1   to   n) { i を 1 から始めて, n まで以下を繰り返す

   ai,i ={A|A→wi P∈ D}}

Page 24: 言語体系とコンピュータ

24

CKY法( 4b )2. 辞書規則を元に a1,1 から a7,7 まで記入

   

1

23

45

67

1 2 3 4 5 6 7

ai,i = a1,1

ai,i = a2,2

ai,i = a3,3

ai,i = a4,4

ai,i = a5,5

ai,i = a6,6

ai,i = a7,7

for   (i=1   to   n) { i を 1 から始めて, n まで以下を繰り返す

   ai,i ={A|A→wi P∈ D}}

Page 25: 言語体系とコンピュータ

25

CKY法( 4c )2. 辞書規則を元に a1,1 から a7,7 まで記入

   

1

2

3

4

5

6

7

1 2 3 4 5 6 7for   i=1   to   n   do (i を 1 から始めて, n まで以下を繰り返す )   ai,i ={A|A→wi P∈ D}

I

eat

the

apples

a1,1

a3,3 in

the

gardena7,7

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

a2,2

a5,5

a4,4

a6,6

i=1

i=2

i=3

i=7

Page 26: 言語体系とコンピュータ

26

CKY法( 5 )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

Page 27: 言語体系とコンピュータ

27

CKY法( 5b )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a1,2U(A|A→BC P∈ p,B∈a1,1, C∈a2,2)

ai,j=a2,3U(A|A→BC∈Pp,B∈a2,2, C∈a3,3)

ai,j=a3,4U(A|A→BC∈Pp,B∈a3,3, C∈a4,4)

ai,j=a4,5U(A|A→BC∈Pp,B∈a4,4, C∈a5,5)

ai,j=a5,6U(A|A→BC∈Pp,B∈a5,5, C∈a6,6)

ai,j=a6,7U(A|A→BC∈Pp,B∈a6,6, C∈a7,7)

Page 28: 言語体系とコンピュータ

28

CKY法( 5c )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a1,2U(A|A→BC P∈ p,B∈a1,1, C∈a2,2)

Page 29: 言語体系とコンピュータ

29

CKY法( 5d )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a1,2U(A|A→BC P∈ p,B∈a1,1, C∈a2,2)

( 1 ) S→NP  VP

S1(NP1 VP1)

Page 30: 言語体系とコンピュータ

30

CKY法( 5e )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a2,3U(A|A→BC∈Pp,B∈a2,2, C∈a3,3)

なし

S1(NP1 VP1)

Page 31: 言語体系とコンピュータ

31

CKY法( 5f )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a3,4U(A|A→BC∈Pp,B∈a3,3, C∈a4,4)

( 3 ) NP→DET   N

S1(NP1 VP1)

NP4(Det1 N2)

Page 32: 言語体系とコンピュータ

32

CKY法( 5g )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

つづけます

S1(NP1 VP1)

NP4(Det1 N2)

Page 33: 言語体系とコンピュータ

33

CKY法( 5h )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=1

ai,j=a6,7U(A|A→BC∈Pp,B∈a6,6, C∈a7,7)

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

( 3 ) NP→DET   N

Page 34: 言語体系とコンピュータ

34

CKY法( 5i )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

d=2ai,j=a1,3U(A|A→BC P∈ p,B∈a1,1,C∈a2,3)

ai,j=a1,3U(A|A→BC∈Pp,B∈a1,2, C∈a3,3)

ai,j=a2,4U(A|A→BC∈Pp,B∈a2,2, C∈a3,4)

ai,j=a2,4U(A|A→BC∈Pp,B∈a2,3, C∈a4,4)

ai,j=a3,5U(A|A→BC∈Pp,B∈a3,3, C∈a4,5)

ai,j=a3,5U(A|A→BC∈Pp,B∈a3,4, C∈a5,5)

ai,j=a4,6U(A|A→BC∈Pp,B∈a4,4, C∈a5,6)

ai,j=a4,6U(A|A→BC∈Pp,B∈a4,5, C∈a6,6)

ai,j=a5,7U(A|A→BC∈Pp,B∈a5,5, C∈a6,7)

ai,j=a5,7U(A|A→BC∈Pp,B∈a5,6, C∈a7,7)

Page 35: 言語体系とコンピュータ

35

CKY法( 5j )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=2

ai,j=a1,3U(A|A→BC P∈ p,B∈a1,1,C∈a2,3)

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

なし

Page 36: 言語体系とコンピュータ

36

CKY法( 5k )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=2ai,j=a1,3U(A|A→BC∈Pp,B∈a1,2, C∈a3,3)

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

なし

Page 37: 言語体系とコンピュータ

37

CKY法( 5l )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=2ai,j=a3,4U(A|A→BC∈Pp,B∈a3,3, C∈a4,4)

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

( 5 ) VP→VP   NPVP2(VP1 NP4)

Page 38: 言語体系とコンピュータ

38

CKY法( 5m )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

d=3

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

VP2(VP1 NP4)

d=4

d=5

d=n-1=6

Page 39: 言語体系とコンピュータ

39

CKY法( 5n )3. 句構造規則を適用

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

I

for (d=1   to   n-1) {  for (i=1   to   n-d) {  j = i + d  for   (k=i   to  j-1) {  ai,j= ai,j∪ {A|A→BC P∈ D, B∈ai,k, C∈ak+i,j}

}}

S1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

VP2(VP1 NP4)

(1)S →   NP VP

がここで適合するはず

Page 40: 言語体系とコンピュータ

40

CKY法( 6 )4. できあがった状態から構文木を作る

   

1

23

45

67

1 2 3 4 5 6 7I

eat

the

apples

in

the

garden

N1,NP1

V1,VP1

Det1

N2,NP2

Prep1

Det2

N3,NP3

IS1(NP1 VP1)

NP4(Det1 N2)

NP5(Det2 N3)

VP2(VP1 NP4)

Sx(NPy VPz)

NPy(? ?) VPz(? ?)

Page 41: 言語体系とコンピュータ

41

一応ここまで• CKY法を学習した.• もっと有名なアルゴリズムに

– チャート法– LR法などがある

Page 42: 言語体系とコンピュータ

42

言語に関する基本概念( 1 )• 文字...言語を構成する基本単位

      (ここで意味は考えない)• ある言語(例:英語)で使用される文字の

集合:– アルファベットと呼び S で表す

SE ={ a, b, c, …, z, A, B, C,…,Z}+{‘,’, ‘.’, , …} などの記号

– このアルファベットは有限の集合である. (日,中は微妙...でも一応有限とする)

Page 43: 言語体系とコンピュータ

43

言語に関する基本概念( 2 )•  ...アルファベット1個の集合,

 

•   ..アルファベット2個の集合,

•   ..アルファベット3個の集合 

•   ..アルファベット 0 個(空語,空列)

,...},...,,...,,,{2 zzbbacabaaS

,...},...,,,{3 zzzaacaabaaaS

S

2S

3S

,...},...,,,{ zcbaS

0S}{0 S

Page 44: 言語体系とコンピュータ

44

言語に関する基本概念( 3 )

• もし, S に英語の全ての文字を含めれば– S* は世の中の全英語のテキストを含む集合

→S* はあまり意味がない(でたらめな文字列も含む)

• ある文字列 α が言語 L の意味のある文字列である時,– α  ∈  L  と表す.で,  L⊂S*

   集合の要素        部分集合

n

i

nn SSSSSSS0

320* ...

n

i

nn SSSSSS1

32 ...

Page 45: 言語体系とコンピュータ

45

言語に関する基本概念( 4 )• ある文字列 α が言語 L の要素かどうか?

– 言語Lのネイティブに聞く

代わりに:言語Lの文法を用意する– 文法に照らして,構造の解析ができる →文字列 α が文であるとわかる  = α が α L∈ と言える– 文法から構造が解析できない(文法に合わな

い) →文字列 α は文でない(非文)  = α が α L∈ でないと言える