Home > Data Mining & IR, Pemrograman Web > Information Retrieval: PreProcessing dengan PHP

Information Retrieval: PreProcessing dengan PHP


Preprocessing merupakan tahapan sangat penting dalam fase indexing pada suatu sistem temu-balik informasi (Information Retrieval). Kode program berikut memperlihatkan langkah-langkah sederhana dalam preprocessing terutama stop word removal dan stemming. Program ditulis dalam PHP sehingga mudah dipahami dan langsung dapat dijalankan (asal di taruh di web server). Daftar stop word dan stem dimasukkan ke dalam suatu array sehingga tidak memerlukan database. Tulisan lain memperlihatkan preprocessing yang melibatkan database MySQL.

<?php
//fungsi preproses menerima teks dan menerapkan beberapa tugas awal 
//fase indexing dokumen teks
function preproses($teks) {

  	//1. ubah ke huruf kecil 			
	$teks = strtolower(trim($teks));
	
  	//hilangkan tanda baca
	$teks = str_replace("'", " ", $teks);

	$teks = str_replace("-", " ", $teks);

	$teks = str_replace(")", " ", $teks);

	$teks = str_replace("(", " ", $teks);

	$teks = str_replace("\"", " ", $teks);

	$teks = str_replace("/", " ", $teks);

	$teks = str_replace("=", " ", $teks);

	$teks = str_replace(".", " ", $teks);

	$teks = str_replace(",", " ", $teks);

	$teks = str_replace(":", " ", $teks);

	$teks = str_replace(";", " ", $teks);

	$teks = str_replace("!", " ", $teks);

	$teks = str_replace("?", " ", $teks);
				
	//2. hapus stoplist
	//daftar stop word diletakkan di array
	//anda boleh menggunakan database sebagai gantinya
	$astoplist = array ("yang", "juga", "dari", "dia", "kami", "kamu", "ini", "itu", 
							   "atau", "dan", "tersebut", "pada", "dengan", "adalah", "yaitu");		
							   				
	foreach ($astoplist as $i => $value) {
   		$teks = str_replace($astoplist[$i], "", $teks);
	}
			
	//3. terapkan stemming
	//pemetaan term --> stem hanya menggunakan array
	//index ganjil menunjukkan term dan index genap adalah stem dari term tersebut
	//anda boleh menggunakan database sebagai gantinya
	$astemlist = array("pertemuan", "temu", "bertemu", "temu", "cr9", "cristiano ronaldo", "berharap", "harap");
	
	//perhatikan cara mengubah suatu term ke bentuk stemnya
	for ($i=0; $i<count($astemlist); $i = $i +2) {
		//ganti term (jika ditemukan term pada index ganjil) dengan stem pada index genap ($i=1)   		
  		$teks = str_replace($astemlist[$i], $astemlist[$i+1], $teks);
  	}
  			 	

	//hilangkan ruang kosong di awal & akhir teks	
	$teks = trim($teks);

	return $teks;

} //end function

//contoh penggunaan
$berita = "Yang spesial dari rencana kepindahan Jose Mourinho ke Real Madrid adalah pertemuan dia dengan Cristiano Ronaldo. Mengaku tak sabar bertemu rekan senegaranya itu, Mourinho juga berharap banyak gol dari CR9."; 

print("<hr />Sebelum pre-processing: <br />" . $berita . "<hr />");

$berita = preproses($berita);

print("Setelah pre-processing: <br />" . $berita . "<hr />");
	
?>

Hasil yang diberikan adalah

Sebelum pre-processing:
Yang spesial dari rencana kepindahan Jose Mourinho ke Real Madrid adalah pertemuan dia dengan Cristiano Ronaldo. Mengaku tak sabar bertemu rekan senegaranya itu, Mourinho juga berharap banyak gol dari CR9.

Setelah pre-processing:
spesial rencana kepindahan jose mourinho ke real madrid temu cristiano ronaldo mengaku tak sabar temu rekan senegaranya mourinho harap banyak gol cristiano ronaldo

Semoga bermanfaat🙂

  1. iryas
    27 May 2010 at 10:41 am

    Syukron pak…
    semoga, saldo tabungan jariyah bapak makin Full🙂

  2. spy
    22 August 2010 at 5:49 am

    utk stemmingx via library y pak?
    boleh juga tuh…..

  3. 14 July 2011 at 1:28 am

    Alhamdulillah…
    makasih banyak ya pak atas berbagi ilmunya.
    Semoga Alloh memberikan pahala..Amiin.

  4. 14 September 2012 at 10:32 am

    mas kalau membaca isi file misalkan pdf atau doc gimana ya

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: