Script PHP PostgreSQL Database Stemming Input Kata Ke Dalam Database


Dalam tugas akhir yang saya kerjakan untuk menyelesaikan perkuliahan, terdapat proses stemming bahasa indonesia. Stemming adalah proses mencari bentuk kata dasar sesuai aturan dan kaidah bahasa Indonesia yang baku. Stemming merupakan bagian yang tidak terpisahkan dalam Information Retrieval (IR). Algoritma yang saya gunakan dalam proses stemming tersebut adalah algoritma Nazief & Adriani. Algoritma stemming untuk teks berbahasa Indonesia yang memiliki kemampuan prosentase keakuratan (presisi) lebih baik dari algoritma lainnya. Algoritma yang dibuat oleh Bobby Nazief dan Mirna Adriani sangat dibutuhkan dan menentukan dalam proses IR dalam dokumen Indonesia.

Proses stemming tersebut sangat bergantung pada kamus kata dasar yang kita miliki. Oleh karena itu, saya melakukan pencarian mengenai kata dasar yang cocok dan lengkap untuk penelitian tersebut. Setelah melalang buana ke server satu ke server lainnya maka saya mendapatkan situs yang bagus yaitu: http://bahtera.org/. Bahtera adalah kamus bahasa Indoensia yang menjadi rujukan sesuai Kamus Besar Bahasa Indonesia. Kata dasar yang terdapat di Bahtera sebanyak 28.526 kata. Silahkan download kata dasar bahasa Indonesia dari Bahtera kata dasar. Untuk memasukkan ke database silahkan gunakan perintah berikut. Disini saya menggunakan PostgreSQL sebagai database. Pertama buat database temapat disimpannya kata dasar tersebut:

[sourcecode language="sql"]
CREATE TABLE tb_katadasar (
id_katadasar integer NOT NULL,
katadasar character varying,
tipe_katadasar character varying
);
[/sourcecode]

Buat file koneksi ke database

[sourcecode language="php"] /* — Untuk Memproteksi halaman agar tidak bisa langsung dibuka — */
if(eregi(’koneksi.php’,$_SERVER['PHP_SELF'])){
header(’location:../’);
}
?>
$pg_host=”localhost”;
$pg_user=”postgres”;
$pg_password=”******”;
$pg_database=”dbrefita”;
$koneksi=pg_connect(”host=$pg_host dbname=$pg_database user=$pg_user password=$pg_password”) or die (”Koneksi Tidak Sukses !!”);
//Transelit Bulan Ke bahasa Indonesia

?>

[/sourcecode]

sebelumnya ubahlah file kata-dasar .doc menjadi .txt. Kemudian buatlah kode berikut untuk memasukkan ke dalam database.

[sourcecode language="php"]
require_once(”koneksi.php”);
$data = file(”kata-dasar.txt”);
$nomor_data = count($data);
//echo $nomor_data;
if ($nomor_data ==0){
echo “Tidak ada Data……….”;
}else{
for($j=0;$j<$nomor_data;$j++){ $kata2 = $data[$j]; if ($kata2 !=""){ $kataRem=explode(" ",$kata2); //print_r($kataRem); $arrayRem=array(); $arrayTipe=array(); foreach($kataRem as $l => $key){
if((ereg(’(',$key))||(ereg(’)',$key))){
$valueNo=substr($key,strlen($key));
}else{
$valueNo=trim($key);
}
//print_r($valueNo);
$arrayRem[]=trim(strtolower($valueNo));
if((ereg(’(',$key))||(ereg(’)',$key))){
$valueNo1=ereg_replace(’)',”,$key);
$valueNo2=ereg_replace(’(',”,$valueNo1);
}else{
$valueNo2=substr($key,strlen($key));
}
//print_r($valueNo);
$arrayTipe[]=trim(strtolower($valueNo2));

}
$gabung=trim(implode(” “,$arrayRem));
$tipe=trim(implode(” “,$arrayTipe));
if($tipe==’n'){
$tipe2=’Nomina’;
}
elseif($tipe==’v'){
$tipe2=’Verba’;
}elseif($tipe==’adj’){
$tipe2=’Adjektiva’;
}elseif($tipe==’i'){
$tipe2=’Interjeksi’;
}elseif($tipe==’pre’){
$tipe2=’Preposisi’;
}elseif($tipe==’k'){
$tipe2=’Konjungsi’;
}elseif($tipe==’adv’){
$tipe2=’Adverbia’;
}elseif($tipe==’l'){
$tipe2=’Lain-lain’;
}elseif($tipe==’num’){
$tipe2=’Numeralia’;
}elseif($tipe==’pron’){
$tipe2=’Pronomina’;
}elseif($tipe==’bt’){
$tipe2=’Bentuk terikat’;
}
else{
$tipe2=$tipe;
}
//echo $gabung;
$sql = “insert into tb_katadasar (katadasar,tipe_katadasar) values(’$gabung’,'$tipe2′)”;
//echo $sql.”;
“;
$hasil = pg_query($sql);
}
}

}
?>
[/sourcecode]

http://bahasa.kemdiknas.go.id/kbbi/index.php
ShowHideComments