Sabtu, 25 September 2010

Text Summarization Menggunakan Lexical Chain

Assalamualaikum Warohmatullohi Wabarokatuh !


Kali ini, saya ingin bercerita mengenai salah satu metode yang digunakan untuk text summarization. Metode tersebut bernama Lexical Chain. Metode ini sebenarnya sudah lama dan cukup terkenal di era awal tahun 2000-an karena prosesnya cukup mudah dan bisa dimodifikasi oleh orang lain. Filosofi munculnya metode Lexical Chain ini adalah bahwa betapa pentingnya connetiveness diantara segment text yang terpilih untuk meminimalisasi hasil ringkasan yang mempunyai kalimat-kalimat yang tidak terkait (link), bahasa gaulnya : kalimat-kalimatnya nggak nyambung !!.

Paper asli : Meru Brunn, Yllias Chali, Christopher J.Pincak. Text Summarization Using Lexical Chains. DUC 2001. search aja di Google !

Ada banyak versi metode Lexical Chain (saya tidak tulis referensinya, silakan dicari sendiri :D) :

  1. Versi Hirst dan St'Onge
  2. Versi Barzilay dan ElHadad
  3. Versi Silber dan McCoy's
  4. dll
Yang akan saya jelaskan di entri blog kali ini adalah versi dari Meru Brunn ,et al 2001 (University of Lethbridge). Mereka membangun sistem Text Summarizer yang akan dilombakan pada DUC (Document Understanding Conference) Tahun 2001. Ini udah jadul bos:D. Sekarang tuh zamannya TAC (Text Analysis Conference). Anyway, Intinya mereka sukses disana (nggak tau dapat juara berapa ?? :D).

Metode Lexical chain versi mereka terdiri dari 4 modul besar :
  1. Preprocessing
  2. Noun Filtering
  3. Lexical Chainer (inti dari lexical chain)
  4. Sentence Extractor
Saya akan mencoba menjelaskan briefly 4 modul tersebut secara berurutan.
Preprocessing. proses pertama ini terdiri dari Text Segmentation, Part-of-Speech Tagging, dan Parsing/Chunk Tagging. Yang pertama adalah Text Segmentation, text segmentation bertujuan untuk memecah sebuah dokumen menjadi kumpulan/grup kalimat yang mempunyai topik yang sama. Teknik yang biasa digunakan untuk text segmentation adalah teknik Linier Text Segmentation (Choi et al, 2000). Idenya adalah sederhana, kesamaan topik antar kalimat adalah dekat jika nilai cosine similarity antar kalimat tersebut juga dekat. Grouping kalimat menggunakan perhitungan ini (tapi..ya..nggak gampang juga, :D soalnya kan ini masalah grouping, jadi ada tambahan teknik, tapi ya intinya adalah seperti ini).
contoh, ada dokumen terdiri dari 6 kalimat {K1, K2, K3, K4, K5, K6}. Contoh hasil text segmentation adalah ({K1, K2, K6}, {K4, K5}).

Yang kedua adalah Part-of-Speech(POS) Tagging. Apa itu POS Tagger ? silakan lihat entri blog saya di zaman sebelumnya :D. Jadi, setiap kata yang ada di setiap kalimat (di setiap segment), semuanya ditagging menggunakan POS Tagging. Sebenarnya, tujuan utamanya adalah untuk mendapatkan NN (kata benda) yang akan digunakan untuk proses chaining. Untuk Bahasa Indonesia, Anda dapat menggunakan POS Tagger dari saya (IPOSTagger) untuk proses tagging.

Yang ketiga adalah Parsing/Chunk Tagging. Apa itu Chunk Tagging ? silakan lihat posting saya sebelumnya. Selain Chunk Tagging, Anda bisa menggunakan Parser juga. Sudah banyak parser yang disediakan di Internet, yang paling terkenal adalah Stanford Parser. Untuk Bahasa Indonesia, Chunk Tagging belum tersedia, tetapi Parser sudah tersedia, ada banyak buatan anak ITB dan UI juga ada. Tujuan utamanya adalah untuk mendapatkan NP (Noun Phrase) yang akan digunakan/diproses di modul kedua.

Noun Filtering/Extraction. Di modul ini, NP (Noun Phrase) diambil dari proses sebelumnya untuk dijadikan sebagai Candidate Words. Barzillay dan ElHadad (1997) mejelaskan mengapa lebih baik menggunakan NP (Noun Phrase) daripada sebuah kata benda NN. Jadi, untuk setiap segment, akan ada daftar Candidate Words. Dan, kita lanjut ke modul berikutnya..

Lexical Chain Construction. Untuk setiap segment, himpunan Candidate Words dikembangkan dengan menambahkan daftar sense. Daftar sense didapat dari WordNet. Jadi, kira-kira ada array seperti berikut :
{
wordcandidate1[sense11, sense12, ..],
wordcandidate2[sense21, sense21, ..],
..
}

Nah, dari daftar ini, kita buat Chain antar wordcandidate yang mempunyai himpunan sense yang beririsan (ini metode paling sederhana). Jadi, akan ada banyak chain yang terjadi, ya nggak ??

Selanjutnya, kita akan memilih chain mana yang mewakili segment yang bersesuaian. Gampangnya (lagi2x ini adalah cara yang paling sederhana), kita pilih chain yang paling panjang (word candidate-nya).

Sampai sini, tiap segment direpresentasikan/dimodelkan dengan sebuah chain yang terdiri dari wordcandidate yang mempunyai sense yang beririsan. Lalu, kita lanjut ke modul terakhir.

Sentence Extractor. Modul ini mempunyai dua submodul : Segment Selection, dan Sentence Extraction. Yang pertama adalah segment selection. Tujuannya adalah untuk memilih text segment yang terkait dengan topik dokumen. Pendekatannya adalah dengan menghitung score dari chainmember. Perhitungan ini dilihat di Paper aslinya (gampang kok :D). Setelah masing-masing segment dihitung scorenya, kemudian di-ranking. Lalu, hanya N TOP rank yang digunakan untuk proses selanjutnya. N bisa ditentukan dari penelitian/percobaan.

Yang kedua adalah sentence extraction. Jadi, setiap Kalimat yang ada di Dokumen di-ranking berdasarkan perhitungan suatu nilai, katakanlah scorekalimat(i) untuk nilai kalimat ke-i. Secara abstrak, perhitungan scorekalimat(i) melibatkan kata-kata yang ada di kalimat ke-i dan juga lexical chain yang terkait kata-kata di kalimat ke-i yang ada di segment yang bersesuaian.

Hasil Summary adalah : ranked list of top-scoring sentences. Silakan dipilih N Top Ranknya. tergantung, rasio kompresi summary yang Anda kehendaki.

Bagaimana ? cukup menarik dan mudah ? Anda dapat bermain-main di metode ini. Ada orang yang lulus Masternya gara-gara bermain di metode ini :D. Mungkin, bisa juga dapat PhD :D: (Nah, kalau yang ini 99% tidak mungkin :D). Intinya adalah silakan Anda modifikasi metode Lexical Chain Anda sendiri.

Rasanya cukup menarik jika diterapkan ke BAHASA INDONESIA tercinta ! Ada yang mau riset di bidang ini ??? :D

Semoga bermanfaat, jika ada yang ingin berdiskusi dengan saya. Silakan kirim email ke xxx@gmail.com dimana xxx : alfan.farizki

6 komentar:

  1. Komentar ini telah dihapus oleh administrator blog.

    BalasHapus
  2. Komentar ini telah dihapus oleh administrator blog.

    BalasHapus
  3. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  4. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  5. Selamat malam Pak Alfan Farizki..
    Untuk mendapatkan wordnet khusus bahasa indonesia bisa di dapat dimana ya?

    BalasHapus
  6. sepertinya menarik diangkat menjadi TA,??

    BalasHapus