2.4. Parsing
Parsing adalah proses pengenalan dan pengambilan Token hasil Tokenization dari sekumpulan unit dokumen. Yang biasanya kata
– kata. Proses parsing tidak hanya dapat dilakukan dalam proses Information retrieval,
melainkan juga pada bidang lain seperti pada pembuatan sebuah compiler dan Bahasa Alami.
Sebelumnya perlu diketahui arti dari istilah parser yaitu program yang melakukan proses parsing. Untuk pemrosesan, dokumen dipilah menjadi unit-unit
yang lebih kecil misalnya berupa kata, frasa atau kalimat. Unit pemrosesan tersebut disebut sebagai token. Parsing merujuk pada proses pengenalan token
yang terdapat dalam rangkaian teks Grossman, 2002. Oleh karena itu bagian dasar dalam parsing adalah algoritma pengambil token dari teks yang disebut
tokenizer. Proses ini memerlukan pengetahuan bahasa untuk menangani karakter- karakter khusus, serta menentukan batasan satuan unit dalam dokumen.
Parser dapat diibaratkan sebagai “otak” dari sebuah kompiler: komponen
inilah yang menginferensikan makna dari bahasa dalam string input berdasarkan grammar atau tata bahasa yang telah ditentukan sebelumnya oleh pemrogram.
Dari makna atau nilai semantik sebuah rangkaian token, parser dapat segera memproses interpretasi, translasi struktur implisit dalam rangkaian token
tersebut, atau menunda pemrosesan sampai didapat struktur utuh dari string input.
2.5. Top Down Parsing
Top-down parser bekerja dengan cara menguraikan sebuah kalimat mulai dari constituent yang terbesar yaitu sampai menjadi constituent yang terkecil. Hal
ini dilakukan terus-menerus sampai semua komponen yang dihasilkan ialah constituent terkecil dalam kalimat, yaitu kata.
Sebagai contoh, dengan menggunakan contoh grammar, dapat dilakukan proses top-down parsing untuk kalimat
“The dog chased the cat” yang ditunjukkan pada gambar 2.1. Cara kerja top down parser. Dari gambar ini terlihat
bahwa top-down parser menelusuri setiap node pada parse tree secara pre-order. Beberapa metode parsing yang bekerja secara top-down ialah :
1. Top-down parser biasa 2. Recursive-descent parser
3. Transition-network parser 4. Chart parser
Gambar 2.1. Cara kerja top down parser. Sumber :
Agosti, Maristella. “Hypertext and Information Retrieval”. Information Processing Management, 1993
Top-down parser dapat diimplementasikan dengan berbagai bahasa pemrograman, namun akan lebih baik jika digunakan declarative language seperti
Prolog atau LISP. Hal ini disebabkan oleh karena pada dasarnya proses parsing ialah proses searching yang dilakukan secara rekursif dan backtracking, dimana
proses ini sudah tersedia secara otomatis dalam bahasa Prolog. Dengan demikian parser yang ditulis dalam Prolog atau bahasa deklaratif
lainnya akan menjadi jauh lebih sederhana daripada parser yang dibuat dalam bahasa prosedural biasanya seperti Pascal, C dan sebagainya. Program 1
menunjukkan implementasi top-down parser biasa dalam bahasa Prolog.
2.6. Bottom Up Parsing