Sabtu, 26 Desember 2009

apa itu Hidden Markov Model ?


Definisi Hidden Markov Model:


Hidden Markov Model(HMM) adalah sebuah kakas statistik yang sudah banyak diterapkan di bidang signal processing, dan speech processing. HMM juga sukses diterapkan untuk menangani masalah – masalah yang ada pada NLP seperti part-of-speech tagging, phrase chunking, dan mengambil informasi dari sekumpulan dokumen. Andrei Markov memberikan namanya ke sebuah teori matematika yaitu Markov Chain pada awal abad ke 20[3], akan tetapi yang mengembangkan teori HMM adalah Baum dan para koleganya pada tahun 1960[2].

Sebelum melangkah lebih jauh mengenai HMM, terlebih dahulu dibahas mengenai Markov Chain yang merupakan dasar dari teori HMM. Markov Chain merupakan finite state automaton yang terdiri dari kumpulan state yang transisi antar state-nya dilakukan berdasarkan masukan observasi. Pada Markov Chain, setiap sisi antar state berisi probabilitas yang menunjukan jalur yang mungkin diambil dan total semua probabilitas yang keluar simpul adalah satu.

Gambar berikut merupakan contoh dari model Markov Chain. Model ini menggambarkan index dari stock market. Model ini mempunyai 3 state, Bull, Bear, dan Even, dan 3 indeks observasi Up, Down, Unchanged. Diberikan serangkaian observasi, contoh: up-down-down, dapat dengan mudah diketahui bahwa urutan state yang memproduksi observasi tersebut adalah Bull-Bear-Bear, dan probabilitas dari urutan state tersebut adalah 0,2 x 0.3 x 0.3.




Markov Chain bermanfaat untuk menghitung probabilitas urutan kejadian yang dapat diamati. Tidak semua urutan kejadian yang ingin diketahui bisa diamati. Untuk dapat memodelkan hal ini, model Markov Chain dimodifikasi menjadi Hidden Markov Model. Gambar II-2 menjelaskan bahwa Hidden Markov Model mempunyai beberapa simbol yang diemisikan oleh setiap state. Kunci perbedaannya adalah jika mempunyai urutan observasi up-down-down, maka tidak bisa diketahui dengan pasti urutan state apa yang memproduksi urutan observasi ini. Oleh sebab itu, urutan state disebut ’hidden’ atau tersembunyi. Walaupun begitu, perhitungan urutan state mana yang berpeluang paling besar menghasilkan urutan observasi tersebut dapat dilakukan.





REFERENSI:

[1]  Blunsom, Phil. Hidden Markov Models. 19 Agustus 2004.
[2] L. Baum et. al. A maximization technique occuring in the statistival analysis of probabilistic functions of markov chains. Annals of mathematical statistics, 41:164-171, 1970.
[3] A. Markov. An example of statistival investigation in the text of eugene onyegin, iilustrating coupling of test in chains. Proceedings of the Academy of Sciences of St. Petersburg, 1913.
[4] L. Rabiner. A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of IEEE, 1989.
[5] Cutting, Doug, et al. A Practical Part-of-speech Tagger. Xerox Palo Alto Research Center. In Proceding of the third conference on applied Natural Language Processing page 133-140. 1992.
[6] Schmid, Helmut. Probabilistic Part-of-Speech Tagging using Decision Tree.

Jumat, 11 Desember 2009

Part-of-speech(POS) tagging bahasa indonesia

Part-of-Speech tagging adalah sebuah pekerjaan NLP. Sebagian besar kegiatan yang dilakukan di bidang NLP seperti Information Extraction, Question-Answering, Speech Recognition, Intelligent Tutoring System, Parser, dan yang lainnya membutuhkan sistem POS Tagging ini untuk pemrosesan awalnya. Sayangnya, untuk bahasa Indonesia sistem ini hanya sedikit, publikasinya kurang, dan belum ada yang menyediakan untuk di download. Tentunya saya dan Anda merasa sedih akan hal ini, padahal Bahasa Indonesia ini diucapkan oleh lebih dari 200 Juta Jiwa [etnologue].

Apa sih part-of-speech tagging itu?
Part-of-speech tagging adalah sebuah sistem yang memberikan label kata secara otomatis pada suatu kalimat. Misalkan, ada kalimat saya makan nasi dan ada label KG=kata ganti, VV=kata kerja, NN=kata benda. Sistem akan menerima input berupa kalimat tersebut, outputnya adalah:

saya/KG makan/VV nasi/NN

sepertinya mudah ??
memang terlihat mudah, tetapi masih banyak hal yang harus diperhatikan mengingat yang melakukan pelabelan ini adalah komputer dan bukan manusia. Masalah yang dihadapi oleh para peneliti POS tagging ada dua:
  1. Kata Ambigu : saya bisa terkena bisa ular. kedua kata bisa disamping mepunyai kelas kata yang berbeda. lalu bagaimana kita membedakannya ??
  2. Kata OOV (Out-of-vocabulary) : sebelum melakukan pelabelan kelas kata, sistem perlu melakukan training data terlebih dahulu. lalu bagaimana dengan kata yang tidak terdapat pada data learning atau corpus?
Metode untuk mengembangkan sistem ini ada 3 tipe:
  1. Menggunakan metode Rule Base. sistem mempunyai aturan pelabelan dimana pengetahuan berasal dari ahli linguistik.
  2. Menggunakan metode Statistik.
  3. Menggunakan metode Transformation Based => bisa dibilang gabungan kedua metode diatas.
untuk metode statistik beberapa yang sering digunakan adalah CRF(conditional random field) , HMM(hidden markov model), dll. penanganan OOV sendiri mempunyai metode sendiri.

Saya sudah buat sistem Part-of-Speech tagging menggunakan First Order Hidden Markov Model. sebenarnya sistem ini saya ingin khususkan untuk bahasa Indonesia. Saya ingin buktikan kalau dunia NLP Indonesia tidak kalah dengan yang lain. Hanya saja, saya belum mempunyai Corpus Bahasa Indonesia(sekarang sedang proses pengembangan).Oh iya, satu lagi, sistem saya ini juga masih belum bisa menangani OOV. OOV mempunyai label sendiri yaitu label "OOV"

Jika ada yang berminat dengan program HMM-bigram saya (mungkin untuk riset), silakan kontak Email saya di :
alfan dot farizki at gmail

Program POS Tagging ini gratis dan berlisensi GPL, semoga bermanfaat untuk NLP Indonesia....