21 December 2005
Algoritma Fonetik Bahasa Indonesia
- At Work
- Linguistics
- Software
Algoritma fonetik adalah algoritma untuk mengelompokkan kata-kata berdasarkan cara pengucapannya. Jika fungsi F() adalah sebuah algoritma fonetik, maka F(“andy”) akan memiliki hasil yang sama dengan F(“andi”), karena ‘andy’ dan ‘andi’ memiliki cara pengucapan yang sama. Untuk Bahasa Inggris, algoritma yang populer adalah Soundex dan Metaphone.
Bagaimana dengan Bahasa Indonesia?
Algoritma fonetik untuk Bahasa Indonesia seharusnya jauh lebih sederhana daripada algoritma fonetik untuk Bahasa Inggris karena Bahasa Indonesia adalah bahasa yang fonetik: pengucapannya relatif konsisten dengan penulisan. Algoritma metaphone seharusnya dapat dimodifikasi menjadi jauh lebih sederhana untuk dapat digunakan dalam Bahasa Indonesia.
Tetapi karena saya terlalu malas untuk mempelajarinya, berikut adalah algoritma fonetik Bahasa Indonesia tanpa basisdata hasil rekaan dari saya sendiri:
Ubah ejaan lama menjadi ejaan baru: ubah oe menjadi u, tj menjadi c, dj menjadi j. Untuk menghindari false positive, jangan ubah j menjadi y kecuali jika ada pengubahan ejaan lama menjadi ejaan baru yang lain. Hati-hati dengan urutan pengubahan, jangan sampai dj berubah menjadi y.
Ganti konsonan yang berderet menjadi satu konsonan saja. Misalnya ‘anni’ menjadi ‘ani’.
Normalkan diftong: ubah ai di akhir kata menjadi ay, au di akhir kata menjadi aw dan oi di akhir kata menjadi oy.
Normalkan semivokal: ubah konsonan-y menjadi konsonan-i, iy menjadi i dan uw menjadi u
Normalkan konsonan yang berbunyi nyaris sama: ubah kh dan q menjadi k, sy menjadi s, v menjadi f, z menjadi j, d menjadi t, b menjadi p (mungkin masih ada yang kurang atau salah).
Normalkan ‘x’: ubah x menjadi ks
Ubah konsonan compound yang tersisa menjadi satu karakter: ng menjadi d dan ny menjadi b.
Normalkan h diam: ubah konsonan-h-vokal menjadi konsonan-vokal saja.
Hapus semua huruf vokal.
Untuk memuaskan ego saya, maka algoritma yang sama sekali belum pernah dicoba ini saya namakan: Algoritma Priyadi™. Ha! >:)
Khusus untuk nama orang, mungkin akan lebih baik jika algoritma fonetik Bahasa Indonesia (apapun algoritmanya, tentunya bukan Algoritma Priyadi™) dicampur dengan algoritma fonetik Bahasa Inggris. Hal ini akibat banyaknya nama orang Indonesia yang menganut pengucapan Bahasa Asing.
Selain itu, karena Bahasa Indonesia relatif sangat fonetik, kemiripan pengucapan bisa saja berbanding terbalik dengan jarak Levenshtein. Semakin mirip pengucapan dua buah kata, maka semakin dekat jarak Levenshtein-nya. Hanya saja, metoda ini akan membutuhkan tempat penyimpanan yang jauh lebih besar daripada jika menggunakan algoritma fonetik.
Mungkin saya sedang reinventing the wheel. Mungkin sudah ada algoritma lain yang lebih baik dan tentunya lebih terbukti? Atau mungkin sudah ada yang sudah mempelajari efektivitas algoritma fonetik Bahasa Inggris jika diterapkan pada Bahasa Indonesia? Jika belum ada, mungkin ini topik yang baik untuk tugas akhir mahasiswa S1 teknik atau sastra.
Pesan saya, namakan algoritma anda dengan nama anda sendiri, jangan nama dosen pembimbing anda, kecuali kalau nama anda adalah ‘Priyadi’ :D.
46 Responses
Trackback: Use this URI to trackback this entry. Use your web browser's function to copy it to your blog posting.
Comment RSS: You can track conversation in this page by using this page's Comments RSS
Gravatar: You can have a picture next to each of your comments by getting a Gravatar.
if (PriyadiAlgorithm(“Roy Suryo”)==PriyadiAlgorithm(“Roi Soerjo”)) {
printf(“Horeeeee!!!!”);
}
:D
yah…kedua…:(
mmm..anne jd ane :)..priyadi jd priadi..:)
Tapi… bagaimana kalau nama dosennya: Priyadi? :D
kalo algoritma/kaidah “Unsur Serapan” dari bhs asing ke bhs Indonesia, ada tuh.
eh..nyambung nggak ya :-?
Coool :)>-
Wah, tumben gue ke pilem :-??
Coba cari2 yg bahasa Italian Pri, mungkin bisa diadaptasi, soale rada mirip2.
keren
“jangan ubah j menjadi y kecuali jika ada pengubahan ejaan lama menjadi ejaan baru yang lain.”
yulian adalah jay menjadi yulian adalah yay … hi..hi…
#-o
Agar sejalan dengan algoritma ini bagaimana kalau ejaan bahasa Indonesia disempurnakan sekali lagi (EYD tahap 2).
#10 Hi YAY (Hi Jay maksudnyah) :x
pak pri hmmmmssss
cerdas…….
pintar…..
matang…
mapan……
sosok pria yg mendekati kesempurnaan.
btw, anda bukan anggota lsm-kan?…
yg bergerak kalo ada titipan :d
doeljoni harusnya duljoni donk
:)>-
#13: heh, salah dong. kalo ‘jay adalah yulian’ gak berubah jadi ‘yay adalah yulian’, beda kalau ‘jay adalah joelian’, maka berubah jadi ‘yay adalah yulian’.
—–
Normalkan diftong: ubah ai menjadi ay, au menjadi aw dan oi menjadi oy.
—–
1. baik menjadi bayk? (bayek)
2. baur menjadi bawr? (bawer)
/:) mumet aku?????
#16: hmm, gimana ya cara bedain diftong dan vokal yang terpisah. jangan2 harus pakai database juga :(
#18, mestinya pakai database.
Tapi gue heran, kok omPri gak pake contoh “standar”. Misalnya dalam paragraf pertama:
>Jika fungsi F() adalah sebuah algoritma fonetik,
>maka F(”andy”) akan memiliki hasil yang sama
>dengan F(”andi”), karena ‘andy’ dan ‘andi’
>memiliki cara pengucapan yang sama.
Mestinya ditulis
>Jika fungsi F() adalah sebuah algoritma fonetik,
>maka F(”roy”) akan memiliki hasil yang sama
>dengan F(”roi”), karena ‘roy’ dan ‘roi’
>memiliki cara pengucapan yang sama.
Atau sebagai contoh di point 1:
>Ubah ejaan lama menjadi ejaan baru:
>ubah oe menjadi u
Maka F(“Roy Soeryo”) akan sama dengan F(“Roi Suryo”).
Dengan begini artikel omPri akan 68% lebih baik daripada yang sekarang. Sekarang ini gue kira nilai untuk artikel omPri hanya 68. Karena 68% dari isi artikel itu cuma menunjukkan omPri lagi kurang kerjaan, seperti halnya 68% dari komentator di blog ini :d
busted! polisiEYD wannabe! hihihihi..
oke deh.. algoritma priyadi™ saya simpan,
untuk bahan cerita ke anak cucu. :D
hmmm…
jadi inget orang-orang latin
yang berbahasa Inggris,
di pilem-pilem Huliwud.
kata orang,
bahasa itu untuk memudahkan,
untuk memahami,
jadi ksimpulannya :
gunakan bahasa dengan menikmatinya.
:o
Hi Pri! ™
salam kenal.
Algoritma Priyadi :-? keren tuh, ngikut ah..
Bagaimana kalau EYD disempurnakan sekali lagi supaya algoritma ini menjadi lebih mudah untuk dipakai?
kok beda ya sama pelajaran algoritma yang gw dapet di kampus !
Mulay sekarang URLku dah ganti Oom, kalaw bisa disewaikan ya (yang di sidebar pakay yang baru..) \:d/
algoritma yang ganteng, sama ama yang bikin.. :x
#19
=))
68% gw setubuh ama lu :))
btw, ohm pri dah baca tulisan idban barusan ???
Asli gw jadi ingat pelajaran jaman SMP :))