proposal tugas akhir habib
TRANSCRIPT
PROPOSAL TUGAS AKHIR
APLIKASI PENGANALISIS TATA BAHASA INDONESIA BEBAS
KONTEKS DENGAN ALGORITMA STEMMING NAZIEF-ADRIANI
Disusun oleh
Habib Malik (10/297422/PA/12989)
PROGRAM STUDI S1 ILMU KOMPUTER
JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2014
DAFTAR ISI
Halaman
DAFTAR ISI ............................................................................................................. i
BAB I PENDAHULUAN............................................................................. 1
1.1 Latar Belakang ........................................................................... 1
1.2 Batasan Masalah ......................................................................... 2
1.3 Tujuan ........................................................................................ 3
1.4 Manfaat ...................................................................................... 3
BAB II TINJAUAN PUSTAKA.................................................................... 4
BAB III LANDASAN TEORI ........................................................................ 6
3.1 Tata Bahasa Baku Bahasa Indonesia........................................... 6
3.2 Pemrosesan Bahasa Alami.......................................................... 6
3.2.1. NLTK............................................................................. 6
3.2.2. Algoritma Stemmer Nazief - Adriani............................. 7
3.3 Python......................................................................................... 8
BAB IV METODE PENELITIAN .................................................................. 9
4.1 Deskripsi Implementasi............................................................... 9
4.2 Data............................................................................................. 9
4.3 Kamus Kelas Kata....................................................................... 10
4.4 Perangkat Pengujian ................................................................... 10
4.5 Rujukan Tata Bahasa................................................................... 11
BAB V JADWAL PENELITIAN................................................................... 12
DAFTAR PUSTAKA ................................................................................................. 14
i
BAB I
PENDAHULUAN
1.1 Latar Belakang
Bahasa Indonesia adalah bahasa resmi dari negara Indonesia. Bahasa
Indonesia memiliki sekitar 23 juta penutur asli pada tahun 2010, dan lebih dari
140.000.000 penutur L2 (Ethnologue, 2013). Sayangnya, kesalahan dalam
berbahasa Indonesia masih sering ditemukan, bahkan di media cetak komersil
(Amsir, 2012).
Penggunaan teknologi untuk membantu menghindari kesalahan-kesalahan
umum dalam penggunaan bahasa Indonesia. Penelitian mengenai Pemrosesan
Bahasa Alami (Natural Language Processing), selanjutnya disebut NLP, untuk
Bahasa Indonesia telah dilakukan setidaknya sejak tahun 1995 (Adriani dan
Manurung, 2008), yaitu pengembangan aplikasi penganalisis tata bahasa
Indonesia menggunakan tata bahasa reguler LL dan LR. Contoh aplikasi NLP
yang telah dikembangkan untuk Bahasa Indonesia adalah Cross-Language IR,
Document Summarization, Question Answering, Geographic Information
Retrieval, dan Information Extraction (Adriani & Manurung, 2008).
Menurut Asian (2007), menurut Frakes, salah satu teknik NLP untuk
sistem temu balik informasi yang efisien dan efektif adalah stemming, yaitu teknik
untuk mencari akar kata dari suatu kata berimbuhan. Contoh penggunaannya
adalah pengguna dapat mencari dokumen yang berisi kata dasar yang sama
dengan kata yang dimasukkan ke dalam query. Contohnya, kata “menari” berasal
dari kata dasar “tari”. Dengan teknik ini, pengguna juga dapat mencari dokumen
yang berisi kata “tarian” atau “menari”, yang juga berasal dari kata dasar “tari”.
Stemming dapat meningkatkan recall, namun mungkin dapat mengurangi
precision (Asian, 2007). Algoritma stemming juga dapat digunakan untuk
menganalisis jenis imbuhan dan kelas kata (Maryani, 2011). Terdapat beberapa
algoritma stemming yang telah dikembangkan untuk Bahasa Indonesia, antara lain
algoritma Nazief dan Adriani, algoritma Arifin dan Setiono, algoritma Vega,
1
algoritma Ahmad, Yusoff, dan Sembok, dan algoritma Idris. Dari kelima
algoritma tersebut, hanya algoritma Vega yang tidak menggunakan kamus.
Menurut Asian (2007), algoritma Nazief dan Adriani memiliki tingkat keakuratan
tertinggi dibandingkan empat algoritma lain di atas, yaitu 92,8%, namun
keakuratan ini juga bergantung pada kamus kata dasar yang digunakan.
Penggunaan NLP untuk analisis tata bahasa bahasa Inggris telah banyak
digunakan secara komersial, contohnya pada aplikasi Grammarly, Ginger, dan
juga pada aplikasi Microsoft Word yang memiliki penguji tata bahasa terintegrasi.
Untuk bahasa Indonesia, aplikasi sejenis yang cukup banyak beredar hanya berupa
penguji ejaan (spell checker). Aplikasi penganalisis tata bahasa Indonesia telah
dibuat pada tahun 1995 oleh Syandra Sari, namun implementasinya masih
menggunakan tata bahasa LL dan LR. Kedua tata bahasa tersebut lebih sesuai
untuk pemrosesan bahasa reguler daripada bahasa alami (Tomita, n.d.). Pada
tahun 1999, Shelly Salvitri mengembangkan penganalisis struktur kalimat bahasa
Indonesia berbasiskan kamus kelas kata tanpa menggunakan stemmer, sehingga
untuk memproses kata-kata berimbuhan, kata-kata tersebut harus dimasukkan ke
dalam kamus kelas kata terlebih dulu.
1.2 Batasan Masalah
Masalah yang dibahas adalah analisis struktur kalimat dasar dalam tata
bahasa Indonesia bebas konteks (context-free grammar) serta POS-tagging
dengan menggunakan kamus dan stemmer. Penelitian akan difokuskan pada
kesalahan struktural saja, tanpa memandang konteks budaya, diksi, atau logika.
Selain itu, pengujian tanda baca juga dibatasi pada tanda baca '.', '?', dan '!' saja.
Pengujian pengejaan tidak disertakan dalam penelitian ini karena hal tersebut
sudah digunakan secara luas di berbagai aplikasi pemroses kata dengan
keakuratan yang cukup baik. Selain itu, untuk membatasi cakupan penelitian ini,
dukungan untuk Named-Entity Recognition serta identifikasi singkatan tidak akan
dibahas terlalu jauh.
1.3 Tujuan
2
Tujuan dari penelitian ini adalah untuk membuat suatu aplikasi yang dapat
mendeteksi kesalahan-kesalahan dasar dalam struktur kalimat berdasarkan tata
bahasa baku bahasa Indonesia. Aplikasi ini diharapkan dapat melengkapi penguji
pengejaan bahasa Indonesia yang telah banyak digunakan, dan juga dapat
digunakan untuk penelitian lebih lanjut mengenai penganalisis tata bahasa
Indonesia. Selain itu, performa dari aplikasi ini juga akan diteliti untuk mencari
tahu apakah aplikasi ini dapat digunakan untuk kebutuhan sehari-hari, dan jika
tidak, mencari cara untuk memperbaiki kinerjanya.
1.4 Manfaat
Manfaat dari penelitian ini adalah sebagai salah satu pustaka penelitian di
bidang NLP untuk bahasa Indonesia. Hasil dari penelitian ini juga dapat
digunakan untuk kegiatan sehari-hari, misalnya sebagai pengecek tata bahasa
untuk menghindari kesalahan-kesalahan umum dalam penggunaan bahasa
Indonesia. Dengan penelitian lebih lanjut, hasil penelitian ini diharapkan dapat
membantu masyarakat Indonesia untuk lebih menggunakan bahasa Indonesia
secara lebih benar dan bertanggungjawab, khususnya untuk penulisan-penulisan
resmi.
3
BAB II
TINJAUAN PUSTAKA
Salvitri (1999) melakukan riset mengenai analisis struktur kalimat bahasa
Indonesia berbasis Linguistic String Analysis. Stemmer tidak digunakan dalam
penelitian ini, sehingga ukuran kamus kelas kata yang digunakan cukup besar.
Dalam kamus kelas kata yang dimiliki penulis, terdapat lebih dari 90.000 entri
lema, dan belum memuat seluruh kata berimbuhan. Sebagai perbandingan, kata
dasar pada kamus tersebut hanya berjumlah sekitar 24.000 entri. Selain itu, pada
penelitian tersebut, belum ada mekanisme pendeteksian kesalahan tata bahasa
selain pendeteksian kesalahan struktur kalimat.
Alat bantu yang dikembangkan oleh Salvitri berhasil menguraikan 94,33%
kalimat masukan dengan baik. Namun, alat bantu tersebut masih belum mampu
mengatasi masalah ambiguitas kelas kata. Misalnya kata “cukup” dapat
dikategorikan menjadi adverbia atau adjektiva, namun alat bantu ini hanya melihat
satu solusi saja tanpa melihat alternatif lain, sehingga memungkinkan adanya
kesalahan dalam analisis. Contoh kata lain adalah “tahu”, yang dapat
dikategorikan menjadi nomina atau verba.
Dari hasil penelitian tersebut, jelas terdapat ruang untuk pengembangan
lebih lanjut. Penulis akan mencoba untuk mengembangkan aplikasi yang dibuat
Salvitri tersebut sembari mencari pendekatan alternatif untuk menyelesaikan
masalah-masalah yang masih terdapat dalam aplikasi tersebut.
Maryani (2011) melakukan penelitian untuk pengembangan system POS-
tagger untuk bahasa Indonesia menggunakan algoritma stemming Arifin –
Setiono. Sistem yang dikembangkan dalam penelitian tersebut memiliki
keakuratan 93%. Dalam penelitian tersebut, kelas kata yang digunakan adalavah
nomina, verba, adjektiva, adverbia (waktu, tempat, modalitas, derajat),
pronomina, kata sambung, preposisi, penunjuk, numeralia, kata tanya, dan kata
seru. Selain itu, terdapat sistem pendeteksi ambiguitas kelas kata yang dapat
4
digunakan untuk masukan yang berupa kalimat. Kelas kata yang terdapat dalam
penelitian ini masih bisa dikembangkan lebih lanjut untuk mendukung sistem
analisis tata bahasa Indonesia, misalnya, kelas kata “verba” masih bisa dibagi-bagi
lagi menjadi “verba awal”, “verba transitif”, “verba intransitif”, “verba awal
transitif”, dan “verba awal intransitif”. Kelas-kelas kata tambahan ini dapat
digunakan untuk menganalisis ketepatan tata bahasa dalam kalimat, misalnya
dalam kalimat “saya bangun rumah”, jika kelas kata yang digunakan hanya
“verba”, maka kalimat tersebut akan diterima sebagai kalimat yang valid, karena
struktur kalimatnya adalah “pronomina – verba – nomina”. Namun, kalimat
tersebut sebenarnya tidaklah valid, karena kata “bangun” termasuk dalam kelas
“verba awal intransitif”, yaitu verba yang dapat digunakan dalam bentuk awal
(tanpa imbuhan), namun tidak dapat diikuti oleh obyek. Contoh lain adalah kelas
kata “penyangkal”, yang dalam penelitian ini dikategorikan sebagai “adverbial
modalitas” saja. Terdapat setidaknya tiga kata dalam kelas “penyangkal” ini, yaitu
“tidak”, “bukan”, dan “tanpa”. Kata-kata tersebut memiliki aturan penggunaannya
masing-masing, misalnya penggunaan kata “tidak” dalam kalimat “ini tidak alat
kampanye” tidaklah tepat.
Berdasarkan kedua penelitian tersebut, jelas terlihat bahwa stemmer dapat
digunakan sebagai pelengkap kamus kelas kata. Penggunaan stemmer
memungkinkan penggunaan kamus kelas kata yang ukurannya lebih kecil,
sehingga sistem tidak perlu melakukan pencarian yang terlalu banyak dalam
kamus. Namun, sebagai gantinya, sistem harus melakukan pemrosesan tambahan
(stemming) sebelum kelas kata dapat diberikan ke masing-masing kata.
Pendekatan yang digunakan dalam kedua penelitian ini disertai dengan kelas-kelas
kata tambahan dan aturan tata bahasa dapat digunakan untuk pengembangan
aplikasi penganalisis tata bahasa Indonesia berbasis stemmer.
5
BAB III
LANDASAN TEORI
3.1. Tata Bahasa Baku Bahasa Indonesia
Tata bahasa adalah ilmu yang mengatur penggunaan bahasa. Aspek-aspek
yang diatur dalam tata bahasa Indonesia antara lain adalah: (i) kelas kata, yang
terdiri dari setidaknya 15 kelas kata, yaitu kata benda, kata ganti, kata kerja, kata
sifat, kata sapaan, kata penunjuk, kata bilangan, kata penyangkal, kata depan, kata
penghubung, kata keterangan, kata tanya, kata seru, kata sandang, dan partikel;
(ii) imbuhan, yang terdiri dari akhiran (-i, -an, -kan, -nya, partikel -kah, -lah, -pun,
serta pronomina kepemilikan -ku dan -mu) dan awalan (di-, ke-, se-, be-, te-, pe-,
me-). Penulis tidak akan membahas sisipan, karena menurut Chaer (2011), sisipan
sudah tidak produktif lagi, dan penggunaannya terbatas pada kata-kata tertentu
saja; (iii) pengulangan kata; (iv) pembentukan dan penggunaan frase (frase benda,
frase kerja, frase sifat, frase preposisi, dan frase keterangan); (v) pembentukan
kalimat, yang terdiri dari kalimat sederhana, kalimat luas, kalimat elips, kalimat
berita, kalimat tanya, kalimat perintah, kalimat larangan, dan kalimat seruan; serta
(vi) penghubungan antar kalimat.
3.2. Pemrosesan Bahasa Alami
Pemrosesan bahasa alami adalah cabang ilmu komputer yang berhubungan
dengan interaksi komputer dengan bahasa alami. Salah satu kumpulan modul
yang tersedia untuk pemrosesan bahasa alami adalah NLTK (Natural Language
Toolkit) yang dapat diakses dan diunduh di situs web www.nltk.org. Selain itu,
penulis juga akan menggunakan algoritma stemming Nazief - Adriani untuk
mendeteksi imbuhan
3.2.1. NLTK
NLTK adalah kumpulan modul linguistik yang dapat diimpor ke dalam
kode Python. Contoh modul yang dimiliki oleh NLTK adalah modul tokenisasi
(pemisahan elemen-elemen dalam kalimat menjadi token individual), Named-
6
Entity Recognition, POS-tagger, dan stemmer. Sebagian besar modul tersebut
belum dapat digunakan untuk bahasa Indonesia, oleh karena itu, penulis hanya
akan menggunakan modul tokenisasi, sehingga masing-masing token dapat
diproses dan dianalisis secara terpisah. Modul tokenisasi yang digunakan adalah
“WordPunctTokenizer”, yaitu modul tokenisasi yang dapat mendeteksi elemen
tanda baca, selain dari elemen kata. Setiap elemen selain tanda baca akan
dipisahkan menjadi token jika terdapat spasi di antara elemen tersebut, sedangkan
tanda baca akan langsung diidentifikasi dan dipisahkan menjadi token, terlepas
dari ada atau tidaknya spasi sebelum atau sesudah tanda baca tersebut.
3.2.2. Algoritma Stemming Nazief – Adriani
Algoritma stemming Nazief – Adriani merupakan salah satu algoritma
stemmer untuk bahasa Indonesia berbasis kamus. Setiap kata yang diproses oleh
stemmer akan dipisahkan dari imbuhannya secara bertahap. Namun, untuk setiap
tahap pemisahan, kata akan dicek terlebih dulu di kamus kata dasar, dan jika
ternyata kata ditemukan dalam kamus tersebut, proses stemming akan dihentikan.
Menurut Asian (2007), algoritma stemming Nazief – Adriani merupakan
algoritma stemming yang memiliki tingkat keakuratan terbaik dibandingkan
dengan algoritma stemming lainnya, baik yang berbasis kamus ataupun murni
berbasis aturan. Karena sifat algoritma ini yang memisahkan imbuhan secara
bertahap, algoritma ini juga dapat digunakan untuk mengidentifikasi imbuhan
yang terdapat dalam suatu kata berimbuhan, dan oleh karena itu dapat digunakan
untuk memberikan kelas kata yang sesuai.
3.3. Python
Python adalah bahasa pemrograman tingkat tinggi yang mendukung
berbagai paradigma pemrograman, seperti pemrograman berbasis obyek,
pemrograman prosedural, dan pemrograman fungsional. Filosofi desain Python
7
mengedepankan, antara lain, kode yang mudah dibaca dan dimengerti, sintaks
yang lebih pendek, bahasa yang "indah", kesederhanaan kode (Peters, 2004).
Implementasi standar Python adalah CPython, yang merupakan sebuah bytecode
interpreter. Kode sumber Python akan diinterpret menjadi bytecode dengan
format .pyc. Berkas .pyc dapat dijalankan oleh Python Virtual Machine. Dengan
implementasi seperti ini, kode yang ditulis dalam Python dapat dijalankan di
beberapa sistem operasi berbeda, dengan syarat interpreter dan virtual machine
Python telah diinstall di sistem operasi tersebut.
8
BAB IV
METODE PENELITIAN
4.1. Implementasi
Implementasi penelitian ini menggunakan bahasa Python dan berbasis
desktop. Aplikasi dapat dijalankan di sistem operasi apa saja selama modul NLTK
dan PVM (Python Virtual Machine) telah diinstall dalam sistem tersebut.
Masukan yang akan digunakan adalah kalimat dari media berita daring dan juga
dari literatur. Hasil keluaran adalah analisis dari masukan yang berupa Part-of-
Speech Tag dari masing-masing kata, frase yang terbentuk dari kata-kata
masukan, struktur kalimat, dan kesalahan yang mungkin terdapat dalam kalimat
tersebut. Kalimat masukan akan ditokenisasi dan token-token tersebut akan
disimpan dengan tipe data list. Selanjutnya, masing-masing token akan dicek
kelas katanya menggunakan kamus kelas kata yang berbentuk dictionary of list
(dictionary yang memuat string sebagai key dan list sebagai key value)
Penggunaan list sebagai key value dimaksudkan untuk menampung kelas kata
ganda yang mungkin dimiliki oleh suatu kata. Jika kata tidak ditemukan pada
kamus, mengindikasikan kata tersebut mungkin memiliki imbuhan, kata akan
diproses oleh stemmer. Jika tetap tidak ada kelas kata yang dapat diberikan ke
kata tersebut, maka kata tersebut akan dianggap sebagai kata yang tidak valid.
Selanjutnya, jika ternyata terdapat lebih dari satu kelas kata untuk kata tersebut,
kata-kata di depan atau di belakang kata tersebut akan dicek terlebih dulu untuk
menentukan kelas kata yang sesuai untuk kata tersebut.
Setelah pemrosesan kelas kata selesai (terlepas dari ditemukannya kelas
kata untuk semua kata atau tidak), kelas kata akan diproses untuk menentukan
frase dari kata-kata tersebut dan perannya dalam kalimat. Misalnya, dalam kata
“Saya membeli buku”, kata “Saya” akan mendapat kelas kata “Pronomina” dan
berperan sebagai subyek, “membeli” akan mendapat kelas kata “Verba Transitif”
(setelah melalui proses stemming) dan berperan sebagai predikat, dan “buku” akan
mendapat kelas kata “Nomina” dan berperan sebagai obyek. Selanjutnya kalimat
9
tersebut akan diuji apakah memiliki kesalahan atau tidak. Tidak ada kesalahan
dalam kalimat contoh, tetapi, misalkan kata “buku” dihapus dari kalimat tersebut,
maka kalimat tersebut akan kehilangan obyek, padahal kelas kata “Verba
Transitif” memerlukan obyek langsung dalam kalimat, dan akan dianggap sebagai
fragmen atau kalimat tidak lengkap.
Pengujian akan dilakukan dengan dua set data. Pada set pertama,
pengujian akan dilakukan dengan 150 kalimat yang tidak memiliki kesalahan
sama sekali. Hal ini dimaksudkan untuk menguji kemampuan aplikasi untuk
mengenali kalimat yang baik dan menguji seberapa besar kecenderungan aplikasi
untuk mendeteksi kalimat-kalimat tersebut sebagai false positive. Pada set kedua,
pengujian akan dilakukan dengan 150 kalimat yang memiliki kesalahan. Aplikasi
akan diuji untuk mendeteksi kesalahan yang terdapat dalam kalimat-kalimat
tersebut dan seberapa besar kecenderungan aplikasi mendeteksi kesalahan-
kesalahan tersebut sebagai false negative. Hasil pengujian pertama akan
dievaluasi dan digunakan sebagai dasar untuk memperbaiki aplikasi. Selanjutnya
pengujian dan evaluasi kedua akan dilakukan sebelum laporan difinalisasi.
4.2. Data
Data yang akan digunakan adalah kalimat-kalimat yang diambil dari media
berita daring dan juga dari literatur. Kalimat yang diambil berjumlah 300; 150
kalimat tanpa kesalahan dan 150 kalimat dengan kesalahan.
4.3. Perangkat Pengujian
Pengujian akan dilakukan menggunakan komputer desktop dengan
spesifikasi berikut:
a. Prosesor: AMD Phenom II X4 965 BE 3,4 GHZ
b. RAM: DDR3 6GB
c. Sistem Operasi: Linux Ubuntu 13.10 64-bit
10
d. Versi Python: 2.7.6
e. IDE: Geany
4.4. Kamus Kelas Kata
Kamus kelas kata yang digunakan sebagian diambil dari basis data
Kateglo (https://code.google.com/p/kateglo/). Lisensi isi Kateglo adalah CC-BY-
NC-SA. Lema-lema yang tidak dibutuhkan, seperti kata berimbuhan dan kata-kata
tidak baku, seperti ragam percakapan dan ragam daerah, akan dibuang, dan kata-
kata dasar yang belum ada atau belum lengkap kelas katanya akan ditambahkan.
4.5. Rujukan Tata Bahasa
Rujukan tata bahasa Indonesia yang digunakan dalam penelitian ini
diambil dari tiga sumber, yaitu buku “Tata Bahasa Praktis Bahasa Indonesia Edisi
Revisi” yang ditulis oleh Abdul Chaer, buku “Tata Bahasa Baku Bahasa
Indonesia Edisi Pertama”, serta KBBI daring yang dapat diakses di
http://bahasa.kemdiknas.go.id/kbbi/index.php. Penulis mendapat kesulitan dalam
mencari edisi terbaru buku “Tata Bahasa Baku Bahasa Indonesia”, sehingga buku
“Tata Bahasa Praktis Bahasa Indonesia Edisi Revisi” akan digunakan untuk
aturan tata bahasa Indonesia yang lebih modern. Jika terdapat konflik aturan
dalam kedua buku tersebut, aturan dalam buku “Tata Bahasa Praktis Bahasa
Indonesia Edisi Revisi” akan digunakan. KBBI daring akan digunakan untuk
mengecek keakuratan kamus kelas kata dan untuk mengetahui kelas kata dari
lema baru yang belum ada dalam kamus kelas kata.
11
BAB V
JADWAL PENELITIAN
No KegiatanApril 2014 Mei 2014 Juni 2014 Juli 2014
M1 M2 M3 M4 M1 M2 M3 M4 M1 M2 M3 M4 M1 M2 M3 M4
1 Peninjauan Teori
2 Pengumpulan Data
3 Pengembangan Aplikasi
4 Pengujian Tahap I
5 Evaluasi Tahap I
6 Perbaikan Aplikasi
7 Pengujian Tahap II
12
8 Evaluasi Tahap II
9 Penyempurnaan Aplikasi
10 Penyusunan Laporan
11 Finalisasi Laporan
13
Daftar Pustaka
Adriani, M. & Manurung, R., 2008, A survey of bahasa Indonesia NLP research
conducted at the University of Indonesia,
http://staf.cs.ui.ac.id/~maruli/pub/malindo08nlp.pdf, diakses 25 Maret 2014.
Amsir, F., 2012, Kesalahan Penggunaan Bahasa Indonesia dalam Surat Kabar Harian
Pagi Posmetro Padang. http://fib.unand.ac.id/jurnal/index.php/puitika/article/view/21/23,
diakses 25 Maret 2014
Asian, J., 2007, Effective Techniques for Indonesian Text Retrieval, Thesis, School of
Computer Science and Information Technology, Science, Engineering, and Technology
Portfolio of RMIT University, Melbourne.
Chaer, A., 2011, Tata Bahasa Praktis Bahasa Indonesia, Edisi Revisi, PT Rineka Cipta,
Jakarta.
Ethnologue, 2013, Indonesian, A language of Indonesia,
http://www.ethnologue.com/language/ind, diakses 25 Maret 2014.
Maryani, R., 2011, Pengembangan Rule-Based POS-Tagger System untuk Bahasa
Indonesia, Skripsi, Fakultas Matematika dan Ilmu Pengetahuan Alam UGM, Yogyakarta
Peters, T., 2004, The Zen of Python, http://legacy.python.org/dev/peps/pep-0020/, diakses
25 Maret 2014.
Salvitri, S., 1999, Analisa Struktur Kalimat Bahasa Indonesia dengan
Menggunakan Pengurai Kalimat Berbasis Linguistic String Analysis, Skripsi,
Fakultas Ilmu Komputer Universitas Indonesia, Jakarta
Tomita, M, n.d., LR Parsers for Natural Languages, http://acl.ldc.upenn.edu/P/P84/P84-
1073.pdf, diakses 25 Maret 2014.
14