Disusun Oleh:
JURUSAN INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
2014
PERSETUJUAN PEMBIMBING
Proposal Tugas Akhir ini telah disetujui oleh :
1. JUDUL/ TOPIK
Penerapan Levenshtein Distance untuk Pengoreksian Kesalahan OCR pada Dokumen Teks
Bahasa Indonesia.
2. PENDAHULUAN
2.1 Latar Belakang
Bahasa Indonesia adalah bahasa resmi dan bahasa persatuan Republik
Indonesia (Pasal 36 UUD 1945) (Katubi, 2008). Bahasa Indonesia digunakan luas
di perguruan-perguruan, media massa, sastra, surat menyurat resmi dan dinas,
bisnis, dan berbagai forum publik lainnya (Rahayu, 2007) (Sudarsa dkk 1991).
Sehingga dapat dikatakan bahwa Bahasa Indonesia dapat digunakan oleh semua
warga Indonesia (Katubi, 2008).
Penggunaan Bahasa Indonesia dengan ejaan yang baik dan benar dapat
diartikan pemakaian ragam bahasa yang serasi dan mengikuti kaidah bahasa. Pada
kondisi tertentu, yaitu pada kondisi formal baik lisan maupun tulisan, ejaan Bahasa
Indonesia menjadi prioritas utama (Kartini, 2013). Bahasa Indonesia wajib
digunakan dalam komunikasi resmi di lingkungan kerja pemerintah dan swasta
(Pasal 33 ayat 1 UU RI No.24 tahun 2009), juga wajib digunakan dalam laporan
setiap lembaga atau perseorangan kepada instansi pemerintahan (Pasal 34 UU RI
No. 24 tahun 2009).
Dalam dunia komputer, pengecekkan ejaan merupakan proses dari deteksi.
Terkadang komputer memberikan saran ejaan pada ejaan kata yang salah pada teks.
Pada dasarnya, pengecekkan ejaan merupakan program komputer yang
menggunakan kamus (Bassil dan Alwani, 2012a). Semakin besar kamusnya,
ketelitian pendeteksian kesalahannya semakin tinggi. Fakta yang terjadi banyak
ditemukan masalah ketika pada proses pengecekkan terbatas pada koleksi kata
yang sedikit (Budhi dkk, 2006) (Bassil dan Alwani, 2012a). Hasilnya, kualitas
pendeteksian kesalahan rendah dan hal ini sering terjadi pada dokumen teks, bukan
dokumen gambar, suara, maupun video (Bassil dan Alwani, 2012a).
KBBI (Kamus Besar Bahasa Indonesia) adalah kamus ekabahasa resmi
Bahasa Indonesia yang disusun oleh tim penyusun Kamus Pusat Bahasa (Pusat
Bahasa, 2008). Kamus ini menjadi acuan tertinggi Bahasa Indonesia yang baku
(Kusmayadi, 2006), karena kamus ini merupakan kamus Bahasa Indonesia
terlengkap dan yang paling akurat yang pernah diterbitkan oleh penerbit yang
memiliki hak paten dari pemerintah Republik Indonesia (Widada dan Prayogi,
2010). Hingga saat ini KBBI adalah edisi keempat yang cetakan pertamanya
diterbitkan pada tahun 2008, memuat lebih dari 90.000 lema, yakni memuat
kosakata umum dan istilah (Pusat Bahasa, 2008). Oleh karena itu KBBI dapat
diandalkan membuat performa kamus kata yang bagus untuk pengoreksian
kesalahan kata (Widada dan Prayogi, 2006) (Pusat Bahasa, 2008).
OCR (Optical Character Recognition) adalah proses mentransformasikan
citra tulisan tangan atau dokumen ketikan yang masih berbentuk gambar menjadi
teks digital (Bassil dan Alwani, 2012b), teks yang dapat diedit menggunakan
komputer (Singh, 2013). Citra gambar tersebut didapatkan dari hasil scanner atau
kamera (Bassil dan Alwani, 2012c).
OCR mempunyai enam tahapan (Singh, 2013) (Bassil dan Alwani, 2012b).
Pertama, akuisisi gambar, dokumen pada kertas discan menggunakan scanner atau
difoto. Kedua, pre-processing, gambar hasil scan atau foto diproses dan
dimodifikasi menggunakan algoritma image processing seperti mengurangi noise,
menormalisasi data, dan kompresi data. Ketiga, segmentasi, yaitu dokumen dibagi
menjadi komponen-komponen lebih kecil, yang disebut objek gambar. Keempat,
ekstraksi gambar, mendekomposisikan beberapa gambar untuk memfasilitasi
pengenalan karakter dan kata. Kelima, klasifikasi gambar, semua gambar yang
sudah diekstrak diklasifikasikan ke kelas dan kategori yang independen. Keenam,
post-processing, tahapan terakhir dari sistem OCR yang bertujuan untuk
mendeteksi dan mengoreksi kesalahan ejaan pada teks keluaran (Bassil dan
Alwani, 2012b). Proses mengoreksi ini adalah proses yang sangat penting untuk
menghasilkan kesalahan mendekati nol (Singh, 2013).
Ada dua tipe kesalahan OCR, yaitu kesalahan kata (real-word) dan
kesalahan bukan kata (non-word) (Bassil dan Alwani, 2012c). Kesalahan kata yaitu
kesalahan mengeja kata yang tidak sesuai dengan konteks kalimat meskipun kata
tersebut ada. Sedangkan kesalahan bukan kata yaitu kesalahan mengeja kata dan
kata tersebut tidak ada (Bassil dan Alwani, 2012b).
Post-processing terdiri dari tiga macam, yaitu manual, semi otomatis, dan
otomatis (Singh, 2013). Semi otomatis dilakukan oleh manusia dengan cara
mengoreksi kesalahan. Sedangkan otomatis dilakukan dengan cara mendeteksi dan
mengoreksi kesalahan oleh sistem. Karena semi otomatis dan manual memakan
waktu dan tenaga, maka diperlukan otomatis (Sigh, 2013) (Narender dan Rao,
2012).
Sistem OCR masih salah dan tidak akurat dalam menghasilkan teks dan
banyak terjadi kesalahan pengejaan, terlebih jika kualitas dokumen rendah (Bassil
dan Alwani, 2012b) (Singh, 2013) (Bassil dan Alwani, 2012c). Penelitian yang
dilakukan oleh Yousses Bassil dan Mohammad Alwani menghasilkan bahwa
tingkat keerorran OCR lebih tinggi dibandingkan dengan metode yang
diusulkannya (Bassil dan Alwani, 2012b). Dokumen yang digunakan adalah
dokumen Bahasa Inggris dan Perancis. Metode yang digunakan pada penelitian
tersebut (Bassil dan Alwani, 2012b) adalah pendeteksian kesalahan OCR, generator
untuk memberikan kandidat kata yang salah, dan pengoreksian kesalahan OCR.
Penelitian lain yang tentang koreksi kata pada teks artikel Bahasa Indonesia
menggunakan empat tahapan (Budhi dkk, 2006) yaitu pemilihan lexeme atau
bentuk tulisan, penentuan jenis token, pemeriksaan kata, dan output kata-kata yang
salah juga kata-kata pengganti yang disarankan untuk setiap kata yang salah.
Lavenshtein distance adalah algoritma yang berguna untuk memeriksa
kemiripan dari dua buah string yang umumnya ditemukan pada aplikasi
pengecekkan suatu ejaan (Adiwidya, 2009). Lavenshtein melibatkan operasi
insertion (penambahan), deletion (penghapusan), dan atau substitution
(penggantian) (Adiwidya, 2009) (Atmajaya, 2012). Algoritma ini terbukti menjadi
algoritma yang dinamis dengan kompleksitas O( ) (Adiwidya, 2009).
Pada penelitian ini akan menggabungkan metode dari penelitian-penelitian
sebelumnya tentang koreksi kata untuk digunakan pada post-processing OCR.
Metode yang akan digunakan ada tiga tahap, yaitu deteksi kesalahan OCR,
penyaranan kandidate kata, dan pengoreksian kesalahan OCR. Pada tahap deteksi
kesalahan OCR terdiri dari dua tahap, yaitu pemilihan lexeme dan penentuan jenis
token (tokenize). Pada tahap penyaranan kandidate kata menggunakan algoritma
Lavenshtein distance.
ditotal terdiri dari 200.000 kata, termasuk kata, nama, domain, terminologi,
akronim, dan jargon. Hasilnya membuktikan bahwa metode yang diusulkan untuk
mendeteksi dan mengoreksi kesalahan jauh lebih efektif. Jika menggunakan GNU
Aspell, total error 49%, non word error 38%, real-word error 92%. Jika
menggunakan Ghotic test result, total error 38%, non word error 30%, real-word
error 71%. Ketika menggunaka metode yang diusulkan, total error menjadi 7%,
non word error 1%, dan real word error 30%.
Kedua penelitian yang dilakukan Youssef Bassil dan Mohammad Alwani
tersebut metode yang digunakan secara prinsip sama, hanya saja yang satu
diterapkan pada OCR dan yang satu dari dokumen teks biasa.
Terdapat penelitian mengenai spelling checker pada teks artikel Bahasa
Indonesia yang dilakukan oleh Gregorius S. Budi, Irwan Kristianto, dan Elvi
Suhartono (Budi dkk, 2006). Masalah yang dibahas adalah bahwa seperti bahasabahasa lainnya, Bahasa Indonesia juga memiliki struktur yang membentuk bahasa
tersebut sehingga banyak orang dapat memahaminya. Tetapi pada penerapannya
dalam tulisan, banyak orang yang masih salah saat menulis kata Bahasa
Indonesia. Dari hal tersebut muncul ide pembuatan aplikasi untuk memeriksa kata
dalam Bahasa Indonesia yang benar dari sebuah inputan teks. Metode yang
digunakan terdiri dari empat tahap, yaitu pemilihan lexeme (bentuk tulisan),
penetuan jenis token (tokenize), pemeriksaan kata, dan output kata-kata yang
salah juga kata-kata pengganti yang disarankan untuk setiap kata yang salah.
Hasilnya dapat disimpulkan bahwa program aplikasi ini dapat digunakan untuk
memeriksa kebenaran kata Bahasa Indonesia.
Penelitian yang mendukung penggunaan Levenshtein distance adalah
penelitian yang dilakukan oleh Bernadino Madaharsa Dito Adiwidya dengan
judul Algoritma Levenshtein Dalam Pendekatan Approximate String Matching
(Adiwidya, 2009). Masalah yang dibahas adalah banyaknya mesin pencari yang
tersedia di internet. Ketika kita ingin mencari suatu kata kunci yang terletak
dalam suatu halaman web yang berisi berita, artikel, atau informasi lainnya,
seringkali dalam kata yang kita masukkan tidak sesuai dengan tata Bahasa
Indonesia yang benar. Benar disini dalam artian ejaan yang baku, memiliki suatu
imbuhan yang komponen katanya berbeda, ataupun salah ketik. Oleh karena itu
diperlukan suatu metode pendekatan pencarian string yang dapat memenuhi
keinginan tersebut. Algoritma yang digunakan adalah levenshtein distance dengan
pendekatan approximate string matching, yang meliputi operasi penghapusan,
penyisipan, dan penggantian. Hasilnya membuktikan bahwa pencarian jumlah
operasi string dalam approximate string matching yang diperlukan untuk
mentransformasikan suatu string menjadi string lain memerlukan algoritma yang
mangkus seperti algoritma Levenshtein Algoritma ini merupakan program
dinamis dengan kompleksitas O( ).
4. DASAR TEORI
4.1
Optical Character Recognition
Optical Character Recognition (OCR) adalah proses mengubah dari
tulisan tangan atau dokumen ketikan ke dalam teks yang editable pada
komputer (Cheriet, Kharma, Liu, dan Suen, 2007). Citra gambar tersebut
didapatkan dari hasil scanner atau kamera (Basil dan Alwani, 2012a).
OCR mempunyai enam tahapan (Basil dan Alwani, 2012b), yaitu:
4.3
Levenshtein Distance
Algoritma Levenshtein merupakan algoritma yang berguna untuk
memeriksa kemiripan dari dua buah string yang umumnya ditemukan pada
aplikasi pengecekkan suatu ejaan (Adiwidya, 2009). Lavenshtein melibatkan
operasi insertion (penambahan), deletion (penghapusan), dan atau substitution
(penggantian) (Adiwidya, 2009) (Atmajaya, 2012). Dengan algoritma ini, tidak
perlu dilakukan seluruh percobaan kemungkinan penghapusan, penyisipan,
atau penggantian terhadap string. Oleh karena itu, algoritma ini dapat
digolongkan sebagai program dinamis. Nilai edit distance dapat diperoleh
hanya dengan menyediakan matriks cost yang ukurannya tergantung panjang
kedua string (Adikara, 2011).
Algoritma Levenshtein, atau sering disebut dengan Levenshtein Distance
atau Edit Distance merupakan algoritma pencarian jumlah perbedaan string
yang ditemukan oleh Vladimir Levenshtein, seorang ilmuwan Rusia, pada
tahun 1965. Algoritma ini digunakan secara luas dalam berbagai bidang,
misalnya mesin pencari, pengecek ejaan (spell checking), pengenal
pembicaraan (speech recognition), pengucapan dialek, analisis DNA,
pendeteksi pemalsuan, dan lain-lain (Adiwidya, 2006).
Langkah-langkah Algoritma
Pada dasarnya, algoritma ini menghitung jumlah minimum
pentransformasian suatu string menjadi string lain yang meliputi penggantian,
penghapusan, dan penyisipan. Algoritma ini digunakan untuk mengoptimalkan
pencarian tersebut karena sangat tidak efisien jika dilakukan pencarian setiap
kombinasi operasioperasi string tersebut. Oleh karena itu, algoritma ini
tergolong program dinamis dalam pencarian nilai minimal tersebut.
Dalam algoritma ini, dilakukan penyeleksian panjang kedua string
terlebih dahulu. Jika salah satu atau kedua string merupakan string kosong,
jalannya algoritma ini berhenti dan memberikan hasil edit distance yang
bernilai nol atau panjang string yang tidak kosong. Jika panjang string
keduanya tidak nol, setiap string memiliki sebuah karakter terakhir, misalnya
c1 dan c2. Misalnya bagian string pertama tanpa c1 adalah s1 dan bagian string
kedua tanpa c2 adalah s2, dapat dikatakan penghitungan yang dilakukan adalah
cara mentransformasikan s1+c1 menjadi s2+c2. Jika c1 sama dengan c2, dapat
diberikan nilai cost 0 dan nilai edit distance-nya adalah nilai edit distance dari
pentransformasian s1 menjadi s2. Jika c1 berbeda dengan c2, dibutuhkan
pengubahan c1 menjadi c2 sehingga nilai cost-nya 1. Akibanya, nilai edit
distance-nya adalah nilai edit distance dari pentransformasian s1 menjadi s2
ditambah 1. Kemungkinan lain adalah dengan menghapus c1 dan mengedit s1
menjadi s2+c2 sehingga nilai edit distance-nya dari pentransformasian s1
menjadi s2+c2 ditambah 1. Begitu pula dengan penghapusan c2 dan mengedit
s1+c1 menjadi s2. Dari kemungkinan-kemungkinan tersebut, dicarilah nilai
minimal sebagai nilai edit distance.
Untuk lebih jelasnya, dapat dilihat pada pseudocode berikut ini. Di
bawah ini digunakan s sebagai string sumber dan t sebagai string target.
Pseudocode ini berupa suatu fungsi yang nilai kembaliannya adalah nilai edit
distance.
n <m <if n
else
else
length(s)
length(t)
= 0 then return m
if m = 0 then return n
for i = 0 to n do
cost[0][i] <- i
for i = 0 to m do
cost[i][0] <- i
for i = 1 to n do
for j = 1 to m do
if (s[i-1]=t[j-1]) then
cost[j][i] <- 0
else cost[j][i] <- 1
a1 <- cost[j][i-1]+1
a2 <- cost[j-1][i]+1
a3 <- cost[j-1][i-1]+cost[j][i]
cost[j][i] <- min(t1,t2,t3)
return cost[m][n]
s: m a l a m r a m
t: - a r a m - - -
s: m a l a m r a m
t: - - - - a r a m
s: m a l a m r a m
t: - a - - - r a m
s: m a l a m r a m
t: - - - a - r a m
5. METODOLOGI
INDICATORS
PROPOSED METHOD
OBJECTIVES
MEASUREMENT
KBBI
(Pusat Bahasa,
2008)
Dokumen
Teks
Bahasa
Indonesia
hasil OCR
Tingkat
error
x 100%
Pemilihan
lexeme
Token
ize
Penyaranan kata
Efektivitas
x 100%
Koreksi kesalahan
OCR
Levenshtein
distance
Pada penelitian ini, data set yang digunakan adalah data set KBBI (Kamus
Besar Bahasa Indonesia), bisa didapat dari Pusat Bahasa, Departemen Pendidikan
Nasional. Sedangkan indikator (indicators) yang diobservasi adalah dokumen
teks Bahasa Indonesia hasil OCR.
Metode yang diusulkan (proposed method) terdiri dari tiga tahap yaitu:
1. Deteksi kesalahan OCR
Kata yang dianggap salah adalah kata yang tidak sesuai dengan kaidah
penggunaan pengejaan Bahasa Indonesia, termasuk imbuhan dan akhiran.
Proses ini terdiri dari dua langkah:
a. Pemilihan Lexeme (bentuk kata)
Pada proses pemilihan ini, inputan teks akan dipilah-pilahkan berdasarkan
kriteria tertentu, yaitu:
- Kumpulan angka. Misalnya: 1, 23, 435, dan sebagainya.
- Kumpulan huruf. Misalnya: abc, pisang, mereka, dan sebagainya.
- Gabungan angka dan tanda, seperti tanda ., / , ,. Misalnya: 45.000,
3/4 , 20,7, dan sebagainya.
- Gabungan huruf dan angka. Misalnya: sepuluh2 , B403, sinema21, dan
sebagainya.
- Tanda baca. Tanda baca tersebut adalah yang berlaku menurut tata Bahasa
Indonesia, yaitu spasi ( ), tanda titik (.), tanda koma (,), tanda seru (!),
tanda Tanya (?), tanda titik dua (:), tanda hubung (-), tanda petik dua (),
dan tanda garis miring (/).
6. JADWAL
Aktivitas
No
Waktu
Maret
April
Mei
Juni
Juli
Agustus
2014
2014
2014
2014
2014
2014
Minggu
Minggu
Minggu
Minggu
Minggu
Minggu
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1
Pengajuan
Judul
Penyusuna
n Pra
Proposal
Bmbingan
/
konsultasi
Penyusuna
n Proposal
Pengumpu
lan
proposal
Seminar
proposal
Penulisan
Bab I
Penulisan
Bab II
Pengumpu
lan data
Penulisan
Bab III
10
Analisa
Sistem
11
Perancang
an Sistem
12
Penulsan
Bab IV
13
Implement
asi
14
Pengujian
Sistem
15
Penulisan
Bab V
16
Seminar
Hasil
17
Revisi
18
Sidang TA
DAFTAR PUSTAKA
Adikara, Putra Pandu, Rekomendasi Kata Berbahasa Alay ke Bahasa Indonesia
Menggunakan Algoritma Fonetik dan Levenshtein Distance, Universitas
Brawijaya, 2011.
Adiwidya, Bernardino, Algoritma Levenshtein Dalam Pendekatan Approximate
String Matching, Strategi Algoritma Teknik Informatika Institut Teknologi
Bandung, 2009.
Atmajaya, Gede, Pembuatan Spelling Checker untuk Bahasa Indonesia dengan
Java 2 Stanard Edition, Teknik Informatika Universitas Gunadarma, 2012.
Bassil, Y., Alwani, M., Context-sensitive Spelling Correction Using Google Web
1T 5-Gram Information, Computer and Information Science, Volume 5, No. 3,
Mei 2012.
Bassil, Y., Alwani, M., OCR Context-Sensitive Error Correction Based on
Google Web 1T 5-Gram Data Set, American Journal of Scientific Research, ISSN
1450-223X, Issue 50, Februari 2012.
Bassil, Y., Alwani, M., OCR Post-Processing Error Correction Algorithm Using
Googles Online Speliing Suggestion, Journal of Emerging Trends in Computing
and Information Sciences, ISSN 2079-8407, Volume 3, No. 1, Januari 2012.
Budhi, Gregorius, dkk. ,Aplikasi Pemeriksan Kebenaran Kata (Spelling Checker)
Bahasa Indonesia Pada Teks Artikel Berbahasa Indonesia, Teknik Informatika UK
Petra Surabaya, 2006.
Cheriet, Kharma, Liu, Suen, Character Recognition Systems: A Guide for
Students and Practitioners, Wiley-Interscience Publication, 2007.
Kartini, Ari, Sikap Bahasa Dan Kemampuan Berbahasa Masyarakat Dwi
Bahasawan, Universitas Pendidikan Indonesia, 2013.
Katubi, Bahasa dan Nasionalisme di Indonesia, Lembaga Ilmu Pengetahuan
Indonesia, ISSN 0125-9989, Jilid XXXIV, Nomer 2, 2008.
Kusmayadi, Ismail, dkk, Be Smart Bahasa Indonesia, PT Grafindo Media
Pratama, 2006.
Narender, G dan Rao, Meda Sriniva, Parallel OCR Error Correction,
International Journal of Computer Science and Information Technologies, Volume
3, No. 6, 2012.
Pasal 33 ayat 1 UU RI No. 24 tahun 2009 tentang BBLNLK.
Pasal 34 UU RI No. 24 tahun 2009 tentang BBLNLK.
Pasal 36 UUD 1945 tentang Bahasa Negara.
Pusat Bahasa, Kamus Besar Bahasa Indonesia, Gramedia Pustaka Utama, 2008.