1 / 45

言語体系とコンピュータ

言語体系とコンピュータ. 第 7 回. 本日の内容. 前回のおさらい 文がどんな構造をしているか決める 文脈自由文法を使った文構造の解析 アルゴリズムをちゃんと考えた解析 CKY法 チャート法. 前回のおさらい. 文がどんな構造をしているか決める 文の構造は曖昧なので,複数あることが多い ただし,候補の中でありえないものは排除したい どんな構造があるかを見つける必要がある →文として「あり」か,「なし」か   を見極める作業ともいえる. 前回のおさらい( 2 ). ある文字列が文か文でないか? どうやって決める? 確実なのは母語話者の直感!

veda-rush
Download Presentation

言語体系とコンピュータ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 言語体系とコンピュータ 第7回

  2. 本日の内容 • 前回のおさらい • 文がどんな構造をしているか決める • 文脈自由文法を使った文構造の解析 • アルゴリズムをちゃんと考えた解析 • CKY法 • チャート法

  3. 前回のおさらい • 文がどんな構造をしているか決める • 文の構造は曖昧なので,複数あることが多い • ただし,候補の中でありえないものは排除したい • どんな構造があるかを見つける必要がある →文として「あり」か,「なし」か   を見極める作業ともいえる

  4. 前回のおさらい(2) • ある文字列が文か文でないか? • どうやって決める? • 確実なのは母語話者の直感! • 母語話者でも判定が難しいこともあるけど... 「まじありえなくなくない?」 どちらにせよ.毎回母語話者が必要だとしたら 不便だし, コンピュータでの処理は無理... • それを克服するには,文法が必要

  5. 前回のおさらい(3)-文法(1) • 文脈自由文法(CFG:Context Free Grammar) G = < VT, VX,VC,PD,PP,σ> • VT :終端記号 • VX :非終端記号 • VC :前終端記号 ←終端記号の1つ前の状態 • PD :辞書規則の集合 • PP :句構造規則の集合 • σ :初期記号 σ∈ VN というような記号を使って表現

  6. 前回のおさらい(4) ー文法(2) • 文脈自由文法の例 • PP :句構造規則の集合 • PD :辞書規則の集合

  7. 前回のおさらい(5) • 手順は気にせず文の構造を決める作業 S I eat the apples in the garden.     ↑ ボトムアップ

  8. 前回のおさらい(6) • 手順は気にせず作業 NPNP N V Det N Prep Det N I eat the apples in the garden. PP :句構造規則を調べて,句をつくる 以降も最後まで続けた!

  9. 前回のおさらい(7) • トップダウンも説明 S I eat the apples in the garden. トップダウン     ↓

  10. 前回のおさらい(8) S NPVP I eat the apples in the garden.

  11. 最後まで  続ける 前回のおさらい(9) S NPVP IVP I V I V NP I eat I eat NP I eat the apples in the garden.

  12. アルゴリズムを考えた解析 • ボトムアップとトップダウン • すでに体験済み • トップダウン S →NP VP 規則は左から右へ S

  13. アルゴリズムを考えた解析 • ボトムアップとトップダウン • すでに体験済み • ボトムアップ S →NP VP 規則は右から左へ S

  14. アルゴリズムを考えた解析 • 深さ優先(縦型)探索と幅優先(横型)探索 • 競合する規則をどのように採用していくかの違い

  15. 15 2 8 3 5 9 10 16 17 4 6 7 11 14 12 13 アルゴリズムを考えた解析 • 深さ優先(縦型)探索 • とりあえず1つの結果が出るまで探索を進める • 複数の結果を得るためには,後戻りして結果を探す

  16. 1 2 3 4 109 5 6 7 11 15 14 16 アルゴリズムを考えた解析 • 幅優先(横型)探索 • 最初の頂点から到達可能な頂点を順に探す

  17. アルゴリズムを考えた解析 • 比較的枝分かれが少ない場合 • 深さ優先× 幅優先○ • 枝分かれが多い場合 • 深さ優先○ 幅優先×

  18. CKY法(Cocke-Kasami-Younger法) • 制約: • ボトムアップ型...右辺から左辺への書き換え • 文法はチョムスキー標準形(結構きつい制約) • チョムスキー標準形   (右辺が必ず非終端か前終端記号2つ) A→B CA∈Vx, B,C∈(Vc ∪ Vx) Vx 非終端記号,Vc前終端記号

  19. CKY法(2) • 文法 句構造規則PP 辞書規則PD NP, VPはチョムスキー標準形への対応

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

  21. CKY法(3b) • アルゴリズム 1234567 1.単語 1 数分の     2  マスを         3  書く               4 5 6 7

  22. CKY法(3c) a1,7 • アルゴリズム 1234567 1.単語 1 数分の     2  マスを         3  書く               4 5 6 7 a1,1 マスの番号 ai,j a7,7

  23. 1 2 3 4 5 6 7 1 2 3 4 5 6 7 CKY法(4) 2.辞書規則を元にa1,1から a7,7まで記入 for(i=1ton) { iを1から始めて,nまで以下を繰り返すai,i ={A|A→wi∈ PD} }

  24. 1 2 3 4 5 6 7 1 2 3 4 5 6 7 CKY法(4b) 2.辞書規則を元にa1,1から a7,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=1ton) { iを1から始めて,nまで以下を繰り返すai,i ={A|A→wi∈ PD} }

  25. 1 2 3 4 5 6 7 1 2 3 4 5 6 7 CKY法(4c) 2.辞書規則を元にa1,1から a7,7まで記入 fori=1tondo (iを1から始めて,nまで以下を繰り返す)ai,i ={A|A→wi∈ PD} N1,NP1 I V1,VP1 eat i=1 a1,1 Det1 the i=2 a2,2 N2,NP2 apples i=3 a3,3 Prep1 a4,4 in Det2 a5,5 the a6,6 N3,NP3 i=7 a7,7 garden

  26. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5) 3.句構造規則を適用 for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }}

  27. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5b) 3.句構造規則を適用 d=1 ai,j=a1,2U(A|A→BC∈Pp,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) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }}

  28. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5c) 3.句構造規則を適用 for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} d=1 ai,j=a1,2U(A|A→BC∈Pp,B∈a1,1, C∈a2,2)

  29. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5d) 3.句構造規則を適用 S1(NP1 VP1) (1)S→NPVP for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} d=1 ai,j=a1,2U(A|A→BC∈Pp,B∈a1,1, C∈a2,2)

  30. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5e) 3.句構造規則を適用 S1(NP1 VP1) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} なし d=1 ai,j=a2,3U(A|A→BC∈Pp,B∈a2,2,C∈a3,3)

  31. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5f) 3.句構造規則を適用 S1(NP1 VP1) (3) NP→DETN NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} d=1 ai,j=a3,4U(A|A→BC∈Pp,B∈a3,3,C∈a4,4)

  32. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5g) 3.句構造規則を適用 S1(NP1 VP1) NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} d=1 つづけます

  33. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5h) 3.句構造規則を適用 S1(NP1 VP1) (3) NP→DETN NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3) d=1 ai,j=a6,7U(A|A→BC∈Pp,B∈a6,6,C∈a7,7)

  34. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5i) d=2 ai,j=a1,3U(A|A→BC∈Pp,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) 3.句構造規則を適用 S1(NP1 VP1) NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3)

  35. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5j) 3.句構造規則を適用 S1(NP1 VP1) なし NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3) d=2 ai,j=a1,3U(A|A→BC∈Pp,B∈a1,1,C∈a2,3)

  36. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5k) 3.句構造規則を適用 S1(NP1 VP1) なし NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3) d=2 ai,j=a1,3U(A|A→BC∈Pp,B∈a1,2,C∈a3,3)

  37. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5l) 3.句構造規則を適用 S1(NP1 VP1) (5) VP→VPNP VP2(VP1 NP4) NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3) d=2 ai,j=a3,4U(A|A→BC∈Pp,B∈a3,3,C∈a4,4)

  38. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5m) d=5 3.句構造規則を適用 S1(NP1 VP1) VP2(VP1 NP4) NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} d=3 NP5(Det2 N3) d=4 d=n-1=6

  39. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(5n) 3.句構造規則を適用 S1(NP1 VP1) VP2(VP1 NP4) NP4(Det1 N2) for (d=1ton-1) {for (i=1ton-d) {j = i + dfor(k=itoj-1) {ai,j= ai,j∪ {A|A→BC∈PD, B∈ai,k,C∈ak+i,j} }} NP5(Det2 N3) • S →NP VP • がここで適合するはず

  40. 1 2 3 4 5 6 7 N1,NP1 I I 1 V1,VP1 eat 2 Det1 the 3 N2,NP2 4 apples Prep1 5 in Det2 6 the 7 N3,NP3 garden CKY法(6) 4.できあがった状態から構文木を作る S1(NP1 VP1) VP2(VP1 NP4) NP4(Det1 N2) Sx(NPy VPz) NPy(? ?) VPz(? ?) NP5(Det2 N3)

  41. 一応ここまで • CKY法を学習した. • もっと有名なアルゴリズムに • チャート法 • LR法などがある

  42. 言語に関する基本概念(1) • 文字...言語を構成する基本単位       (ここで意味は考えない) • ある言語(例:英語)で使用される文字の集合: • アルファベットと呼びSで表す SE ={ a, b, c, …, z, A, B, C,…,Z}+{‘,’, ‘.’, , …}などの記号 • このアルファベットは有限の集合である.  (日,中は微妙...でも一応有限とする)

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

  44. 言語に関する基本概念(3) • もし,Sに英語の全ての文字を含めれば • S*は世の中の全英語のテキストを含む集合 →S*はあまり意味がない(でたらめな文字列も含む) • ある文字列αが言語Lの意味のある文字列である時, • α ∈ L と表す.で, L⊂S*    集合の要素        部分集合

  45. 言語に関する基本概念(4) • ある文字列αが言語Lの要素かどうか? • 言語Lのネイティブに聞く 代わりに:言語Lの文法を用意する • 文法に照らして,構造の解析ができる  →文字列αが文であるとわかる =αがα∈Lと言える • 文法から構造が解析できない(文法に合わない) →文字列αは文でない(非文)   = αがα∈Lでないと言える

More Related