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 NominalContoh kalimat:
Parse-lah kalimat“Book that flight” dengan grammar G.
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)
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
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
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”)
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.
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
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
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.