Rabu, 19 Desember 2012

Peringkasan Teks Otomatis Berbahasa Indonesia : Part 1


Alhamdulillah bisa nulis lagi, kali in masih dari tugas kuliah Temu Kembali Informasi, lumayan buat nambah blog traffic karena temen2 lagi pada nyari hahaha (tertawa jahat). Oke langsung aja, disini kita akan membuat sebuah program peringkasan teks otomatis (auto text summarization) dengan pembobotan tf.idf. Nah apa itu pembobotan tf.idf? kata rumusnya sih :
tf.idf = tf x log(N/df)
dimana,
tf = jumlah term tersebut
N = total dokumen
df = jumlah dokumen yang mengandung suatu term
Masih bingung?? Samaaa, ywd kita langsung aja buat programnya.. :p
Oh iya lupa, ini dibuat berbasis web menggunakan bahasa pemrograman PHP tanpa database relasional. Selanjutnya project ini akan saya beri nama "AuTexSum". Langkah-langkah yang akan dilakukan diantaranya :
  1. Menyiapkan korpus (dokumen) yang akan diringkas - Part 1
  2. Membuat file indexer.php untuk melakukan pengindeksan (indexing) - Part 1
  3. Membuat file summarize.php untuk melakukan peringkasan - Part 2
  4. Membuat file index.php untuk antarmuka sederhana - Part 3
Sehingga secara keseluruhan struktur folder-nya nanti kurang lebih seperti ini :

Struktur Folder Project 
Sesuai dengan urutan langkah, kita HARUS menyiapkan beberapa dokumen yang akan kita ringkas (minimal 1). Saya baru menggunakan 3 buah file dokumen dengan format .txt, isinya bebas ambil dari berita apapun. Simpan dalam folder corpus kemudian ubah nama file-nya agar lebih mudah dipanggilnya (misalnya, Institut Pertanian Bogor.txt -> Institut_Pertanian_Bogor.txt).

Selanjutnya kita akan membuat file indexer.php, kurang lebih isinya seperti ini :
Umumnya pada indexing dilakukan langkah-langkah sebagai berikut :
  1. tokenisasi (memecah dokumen menjadi kata)
  2. buang stopwords (membuang kata-kata hubung)
  3. stemming (membuang imbuhan) - tidak dilakukan
  4. posting list (menyimpan lokasi kemunculan kata) - tidak dilakukan
  5. pembobotan (memberi bobot setiap kata yang ada) - dalam kasus ini dengan bobot idf 
indexer.php berguna untuk melakukan indexing namun saya hanya menghitung setiap nilai idf sebuah kemunculan kata dari seluruh dokumen. Saya tidak menyimpan nama dokumen yang menjadi lokasi kemunculan kata tersebut (posting list).
Jika sudah selesai dan tidak ada yang error, kita langsung ke Part 2.

8 komentar:

  1. Thanks banget agan Andre, sangat bermanfaat (buat tugas TKI) :D

    BalasHapus
  2. gan bagus nih artikelnya, izin sedot gan..... oh iya kalau pake metode tf-isf sm nda ya??? :)

    BalasHapus
  3. Ijin modifikasi ya gan buat tugas kuliah. Trimakasih banyak gan bermanfaat sekali buat belajar lebih jauh tentang automatic summary

    BalasHapus
  4. Kalau hanya ingin menampilkan hasil perhitungan tf idf nya saja, gimana gan? #ijin modif buat TA gan

    BalasHapus
  5. Gan nanyak donk... kalau untuk MMR bagaimana ya kodingnya. Tx ya.

    BalasHapus
  6. bagi stopwords.txt nya dong mas

    BalasHapus