Text Preprocessing Menggunakan PHP

 1. Pendahuluan

Text preprocessing adalah istilah untuk pengolahan awal sebelum dilakukan text processing. Saat ini pengetahuan big data, maupun data sains banyak dipelajari. Sebagian besar data yang dihasilkan oleh sistem informasi adalah teks. Jadi sangat menarik mempelajari text processing ini. Apalagi jika anda seorang akademisi yang sering atau akan melakukan penelitian. Berikut ini dapat menjadi referensi anda dalam melakukan text preprocessing.

2. Tahapan Text Preprocessing

Preprocessing adalah sebagai tahap pembersihan teks dari bagian-bagian yang kurang penting. Sehingga didapatkan fitur dari teks tersebut. Preprocessing menjadi tahapan yang penting bagi keberhasilan text prosesing. Ada banyak sekali metode atau cara yang dapat dilakukan pada tahapan ini. Pada kesempatan ini saya hanya membagikan 4 saja tahapan preprocessing.

1. Case Folding

Pada tahap ini text diubah menjadi huruf kecil semua. Secara logika huruf besar atau kecil tidak mengubah arti dari kata. Namun komputer jelas menganggap besar kecil huruf menjadi hal yang berbeda. Untuk itulah perlunya dilakukan pengubahan semua huruf menjadi huruf kecil semua.

2. Cleaning

Pada tahap ini dilakukan penghapusan tanda baca seperti titik, koma dan lain sebagainya. Bagian teks ini tidak dapat diikutkan dalam proses selanjutnya.

3. Tokenizing

Pada tahap ini setiap kata dipisahkan satu persatu dan disimpan sebagai token. Proses ini tidak sulit cukup memecah kedalam array melalui fungsi explode.

4. Stemming

Pada tahap ini imbuhan sebuah kata dihilangkan. Imbuhan terdiri dari awalan dan akhiran. Sementara kata dasar menjadi token yang diperlukan. Proses ini cukup sulit namun dengan bantuang array, perulangan dan kondisi bisa diatasi.


3. Progam Text Preprocessing

Berdasarkan teori diatas maka saya merancang program untuk menyelesaikan masalah diatas. Berikut ini hasil program text preprocessing menggunakan PHP.


// index.php
<?php
//Case Folding => lowercase
//Cleaning => menghilangkan tanda baca
//Tokenizing => pengambilan kata
//Stemming => menghapus imbuhan

$jawaban_dosen="diangkat, dijatuhkan, diawali, makanya dapatkan";
//$jawaban_mhs= "Tanaman adalah makhluk hidung yang biasa hidup ditanah";

echo "<b>Plaint Text</b> <br>";
echo $jawaban_dosen."<br>";
echo "<br><b>Hasil Preprocessing</b> <br>";
preprocessing($jawaban_dosen);

echo "<br>";

//echo "<b>Jawaban MHS</b> <br>";
//preprocessing($jawaban_mhs);


 function preprocessing($text=""){
  //menjadikan huruf kecil
$huruf_kecil= strtolower($text);

//menghilangkan tanda baca
//referensi https://stackoverflow.com/questions/5689918/php-strip-punctuation
$hilang_tanda_baca= preg_replace('/\W+/', '_', $huruf_kecil);

//mengambil setiap kata
$kata=explode("_", $hilang_tanda_baca);

//menghilangkan array null
//https://stackoverflow.com/questions/3654295/remove-empty-array-elements
$kata_tidak_null=array_filter($kata, fn($value) => !is_null($value) && $value !== '');

//menghilangkan awalan
$awalan=array("di","ke","me","mem");
foreach ($kata_tidak_null as $key => $value) {
foreach ($awalan as $key_awalan => $value_awalan) {
$pjg= strlen($value_awalan);
if (substr($value, 0,$pjg)==$value_awalan) {
$kata_tidak_null[$key]=substr($value, $pjg);
}
}
}

//menghilangkan akhiran
$akhiran=array("an","kan","pun","i","nya");
foreach ($kata_tidak_null as $key => $value) {
foreach ($akhiran as $key_akhiran => $value_akhiran) {
$pjg= strlen($value_akhiran);
//echo substr($value, -$pjg,$pjg)." = ". $value_akhiran ."<br>" ;
if (substr($value, -$pjg,$pjg)==$value_akhiran) {
$kata_tidak_null[$key]=substr($value, 0,-$pjg);
}
}
}



foreach ($kata_tidak_null as $key => $value) {
echo $value."<br>";
}
//menhitung kata yang sama
//referensi https://stackoverflow.com/questions/39641179/php-count-words-in-array
print_r(array_count_values($kata_tidak_null));

 }

3. Hasil Progam Text Preprocessing

Setelah dijalankan maka tampil hasil text preprocessing sebagai berikut:
Untuk penjelasan program anda bisa membaca komentar di dalam program tersebut. Terimakasi sudah membaca artikel ini.


Popular posts from this blog

Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis

Aplikasi CRUD menggunakan Template Admin LTE

Cara membuat Link ke Halaman lain dan Link ke bagian Halaman