• Tidak ada hasil yang ditemukan

Outline. IKI 40931: Topik Khusus: NLP Kuliah 7: Parsing CFG. Parsing. Contoh parsing. Ruli Manurung. 10 Maret (Bab Jurafsky & Martin)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Outline. IKI 40931: Topik Khusus: NLP Kuliah 7: Parsing CFG. Parsing. Contoh parsing. Ruli Manurung. 10 Maret (Bab Jurafsky & Martin)"

Copied!
9
0
0

Teks penuh

(1)

IKI 40931: Topik Khusus: NLP

Kuliah 7: Parsing CFG

(Bab 10.1 - 10.4 Jurafsky & Martin)

Ruli Manurung

Fakultas Ilmu Komputer Universitas Indonesia

10 Maret 2008

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Outline

1

Parsing sebagai search: top-down, bottom-up

2

Top-down + bottom-up: v1

3

Tiga masalah dengan algo v1

4

Chart parsing

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Parsing

CFG mengandung declarative knowledge: susunan kata apa saja yang membuat kalimat sah.

Knowledge ini dapat digunakan untuk generation maupun understanding.

Tahap awal understanding adalah untuk mengetahuistruktursebuah

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Contoh parsing

Contoh grammar G: S → NP VP S → Aux NP VP S → VP NP → Det Nominal Nominal → Noun Nominal → Noun Nominal

Contoh kalimat:

Parse-lah kalimat“Book that flight” dengan grammar G.

(2)

Parsing sebagai search

Search: strategi pemecahan masalah. Nyatakan sebagai state space, di mana state =abstraksi masalah. Terdapat goal state yang dicapai melalui serangkaian action.

State space pada parsing = himpunan semua kemungkinan parse tree → didefinisikan oleh grammar .

Action yang bisa diambil untuk pindah dari state X ke X0adalah rewrite rule dari CFG.

Tujuan search adalah mencari goal state yang menyatakan parse tree untuk K . Goal ini memiliki dua constraint:

darigrammar: parse tree di goal state harus memiliki root S. daridata: parse tree dan semua leaf -nya adalah kata-kata k ∈ K .

Sebuah pertanyaan:

Dari mana kita memulai (initial state)? ke arah mana kita melangkah? Secara teoritis, bisa saja murni random: generate-and-test

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Top-down parsing

1 Bangun parse tree mulai dari root S. 2 Aplikasikan semua rule yang LHS-nya S.

3 Aplikasikan semua rule yang LHS-nya hasil expansion dari S. 4 . . .ulangi seterusnya sampai sukses . . .

Contoh proses top-down parsing

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Bottom-up parsing

1 Bangun parse tree mulai dari leaf berupa kata k ∈ K . 2 Aplikasikan semua rule yang RHS-nya k .

3 Aplikasikan semua rule yang RHS-nya hasil rewrite dari k . 4 . . .ulangi seterusnya sampai sukses . . .

Contoh proses bottom-up parsing

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Bottom-up parsing (lanjutan)

(3)

Top-down vs. Bottom-up

Top-down parsing

+: hanya mengunjungi state yang menyatakan parse tree dengan root node S.

-: mengunjungi state yang tidak mungkin mencapai parse tree yang memiliki leaf yang tepat berisi k ∈ K .

Bottom-up parsing

+: hanya mengunjungi state yang menyatakan parse tree dengan leaf yang tepat berisi k ∈ K .

-: mengunjungi state yang tidak mungkin mencapai parse tree dengan root node S.

Keduanya fokus pada salah satu constraint saja, dan mengabaikan yang satu lagi . . .

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Menggabungkan top-down & bottom-up: v1

Jika kita bisa memanfaatkan constraint dari sisi dataDAN sisi grammar , proses search bisadipercepat!

Bagaimana cara menggabungkan teknik top-down & bottom-up? Sebuah usulan:

Gunakan sebuah teknik sebagai strategi utama, gunakan constraint dari teknik yang satu lagi sebagaifilter untuk parse yang tidak cocok.

Kita akan melihat contoh top-down strategy with bottom-up filtering. Bisa saja dirancang algoritma bottom-up strategy with top-down filtering.

Mulai denganimplementasitop-down strategy.

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Implementasi top-down parser

Pada pembahasan strategi top-down, diasumsikan mencoba semua kemungkinan expansion secara paralel → breadth first search. Memory requirement BFS tidak feasible: exponential complexity!

Solusi: gunakan strategidepth-first search. Ketika meng-expand sebuah node, tambahkan semua kemungkinan ke agenda (fringe), pilih yangpaling jauh dari root.

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

(4)

Algoritma Depth-First Top Down Parser

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Contoh: “Does this flight include a meal?”

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Contoh: “Does this flight include a meal?”

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

(5)

Contoh: “Does this flight include a meal?”

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Sebuah pengamatan: konsep left-corner

Algoritma depth-first menggunakan current input untuk menentukan kapan harusbacktrack.

Current input harus bisa menjadikata pertama dari derivasi/frase yang sedang di-expand . Kita sebut kata pertama dari derivasi ini sebagaileft corner.

Left corner secara formal

B adalah left-corner untuk A jika A⇒ Bα∗

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Bottom-up filtering

Informasicurrent input bisa digunakan untuk (sedikit) mempercepat search! Contoh: ketika memulai parsing kalimat “Does this flight include a meal?”, ada 3 rule S:

S → NP VP

S → Aux NP VP←− hanya ini yang perlu dilihat!

S → VP

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Masalah 1: Left-recursion

Left-recursion: grammar tertentu bisa menyebabkan infinite loop. Left-recursive rule

Rule yang berbentuk A → Aβ, mis.: NP → NP PP (“bakso dengan bihun”)

(6)

Masalah 1: Left-recursion

Left-recursive grammar

Grammar yang mengandung non-terminal A di mana A⇒ αAβ dan α∗ ⇒ .∗ Contoh, aturan untuk possessive NP, mis. “Atlanta’s airport”, sbb.

NP → Det Nominal Det → NP0s Dua solusi “hack”

Rancang ulang grammar: ada prosedur otomatis yang membuat weakly-equivalent grammar (accept/reject bahasa yang sama, struktur berbeda).

Batasi kedalaman rekursi (depth-limited search).

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Structural ambiguity

Bahasa memiliki banyak kerancuan.

Selain POS ambiguity (satu kata, banyak POS), mis. “book” sebagai verb atau noun, ada jugastructural ambiguity:

Attachment ambiguity Coordination ambiguity

Noun-phrase bracketing ambiguity. Groucho Marx, Animal Crackers, 1930:

One morning, I shot an elephant in my pajamas. How he got into my pajamas I don’t know.

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Structural ambiguity

Secara teoritis, jumlah parse untuk natural language bisa exponential. Dalam kenyataan, manusia (biasanya) tidak kesulitan memilih parse tree yang benar.

Disambiguation secara otomatis memerlukan informasi statistik dan/atausemantik.

Tugas parser : laporkan semua kemungkinan parse!

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Repeated parsing of subtrees

Wasting time:

Ketika mencoba mem-parse sebuah kalimat, top-down parser seringkali membangun parse tree untuk sebagian input, lalubacktrack, lalu membangun ulang, dst.

(7)

Repeated parsing of subtrees

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Earley Algorithm

Ketiga masalah di atas bisa diatasi denganEarley Algorithm, yang dikenal juga sebagaichart parsing.

Menggunakan teknik dynamic programming: mencatat hasil sementara. Sebuah struktur data chart menyimpan semua partial parse yang memenuhi constraint top dan bottom.

Chart berisi state-state yang menyatakan partial parse. Pada akhir proses, chart berisi goal state.

Notasi dotted rule

Sebuah state direpresentasikan dengan notasi dotted rule, yang berisi 3 hal: 1 Sebuah subtree yang menyatakan sebuah grammar rule

2 “Status”/”progress” dalam mem-parse subtree tsb. 3 Posisi subtree tersebut terhadap kalimat input

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Dotted rules

Contoh:

Rule Posisi Baca

S → • VP [0,0] “Saya prediksi bahwa mulai posisi 0 akan ada VP yang membentuk S”

NP → Det • Nominal [1,2] “Saya prediksi bahwa mulai posisi 1 akan ada Det Nominal yang membentuk NP. Nah, sampai den-gan posisi 2 saya sudah melihat Det”

VP → V NP • [0,3] “Saya sudah menemukan sebuah VP, yang terdiri

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Tiga operator penting

Ada tiga operator penting dalam algoritma Earley: 1 Operator PREDICTOR

(8)

P

REDICTOR

Fungsi operator PREDICTORadalah untuk menambahkan top-down prediction selama proses parsing berjalan.

Definisi

Jika sebuah state memiliki non-terminal di sebelah kanan dot yang bukan part-of-speech category, PREDICTORmenambahkan 1 state untuk setiap kemungkinan expansion rule untuk non-terminal tersebut. State dimulai dan berakhir pada posisi di mana generating state berakhir.

Contoh Input/generating state: S → • VP, [0,0] Output/added state: VP → • Verb, [0,0] VP → • Verb NP, [0,0]

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

SCANNER

Fungsi operator SCANNERbottom-up: ia mengamati kata-kata yang muncul pada kalimat input dan meng-update status/progress state yang

menantikannya. Definisi

Jika sebuah state memiliki part-of-speech category di sebelah kanan dot, SCANNERmemeriksa kata input pada posisi state tersebut dan, jika cocok, menambahkan 1 state di mana dot-nya dimajukan sesudah POS category tsb.

Contoh

Input/generating state: VP → • Verb NP, [0,0] Condition:

Ada kata book muncul antara posisi 0 dan 1, dan book bisa jadi Verb. Output/added state:

VP → Verb • NP, [0,1]

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

C

OMPLETER

Fungsi operator COMPLETERadalah untuk mengamati category (selain POS) yang ditemukan selama parsing dan meng-update status/progress semua state lain yang menantikannya.

Definisi

Jika sebuah state menyatakan ditemukannya sebuah category (dot sudah di akhir sebuah rule), COMPLETERmenambahkan 1 state baru untuk setiap state yang menantikan category di posisi tersebut, di mana dot-nya dimajukan sesudah category tsb.

Contoh

Input/generating state: NP → Det Nominal •, [1,3] Condition:

Ada state VP → Verb • NP, [0,1] Output/added state:

VP → Verb NP • , [0,3](inipun jadi input COMPLETERnanti!)

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

(9)

Earley Algorithm

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Contoh proses chart parsing . . .

Marilah kita menggunakanchart parsing untuk mem-parse kalimat: “Book that flight”.

Ruli Manurung IKI40931 • Kuliah 5 • 10 Maret 2008

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing

Ringkasan

Parsing bisa dianggap sebagai suatu search problem, di mana state = (partial) parse tree, dan action = CFG rewrite rule.

Bisa secara top-down maupun bottom-up, bisa digabungkan dengan left-corner filtering.

Referensi

Dokumen terkait