iklan banner

Script Php - Cara Deteksi Bahasa Dari Teks / Kata

 Sudah usang saya tidak membuatkan info seputar Personal Homepage  Script PHP - Cara Deteksi Bahasa dari Teks / Kata

Sudah usang saya tidak membuatkan info seputar Personal Homepage (PHP). Berhubung saya kini sedang berguru menciptakan blog dengan bahasa script tingkat PHP, maka disinilah saya akan membuatkan perihal apapun yang saya sanggup dan pelajari di blog gres tersebut.

Mengenal Deteksi Bahasa

Deteksi bahasa (en - Language detection) pada pada dasarnya akan menebak bahasa apa yang dipakai pada beberapa kalimat memakai kata per kata yang ada sebagai kata kunci / query.

Sebagai pemahaman dasar, disini saya akan memberi sebuah pola penggunaan dan bagaimana cara kerja script ini. Versi yang saya gunakan yaitu versi dasar, dan masih banyak kekurangan, sehingga masih perlu diperbaiki kalau ingin mendapat pengalaman yang lebih baik.

Pertama-tama, tentukan sebuah kalimat yang akan di deteksi. Sebagai contoh, disini saya memakai kalimat "Hari ini saya sanggup senyum oleh suatu hal".


Perhatikan kedua kata kunci berikut:
  • $katakunci['BAHASA_INDONESIA'] = array ('cinta', 'marah', 'sayang', 'benci', 'senyum', 'peluk');
  • $katakunci['BAHASA_INGGRIS'] = array ('the', 'and', 'have', 'for', 'with', 'you');

Pada pola kalimat "Hari ini saya sanggup senyum oleh suatu hal", terdapat satu kata kunci di pilihan BAHASA_INDONESIA, yaitu "senyum". Sehingga nanti kesudahannya yaitu bahasa indonesia.

Berikut instruksi lengkapnya:
<?php
$tulisan = "Hari ini saya sanggup senyum oleh suatu hal";
 function Bahasa($tulisan, $terjemahkan) {
      $bahasa_pilihan = array('BAHASA_INDONESIA','BAHASA_INGGRIS');
      $katakunci['BAHASA_INDONESIA'] = array ('cinta', 'marah', 'sayang', 'benci', 'senyum', 'peluk');
      $katakunci['BAHASA_INGGRIS'] = array ('the', 'and', 'have', 'for', 'with', 'you');
      $tulisan = preg_replace("/[^A-Za-z]/", ' ', $tulisan);
      foreach ($bahasa_pilihan as $bahasa) {
        $kalkulasi[$bahasa]=0;
      }
      for ($i = 0; $i < 6; $i++) {
        foreach ($bahasa_pilihan as $bahasa) {
          $kalkulasi[$bahasa] = $kalkulasi[$bahasa] +

            substr_count($tulisan, ' ' .$katakunci[$bahasa][$i] . ' ');;
        }
      }
      $max = max($kalkulasi);
      $maxs = array_keys($kalkulasi, $max);
      if (count($maxs) == 1) {
        $pemenang = $maxs[0];
        $pertamax = 0;
        foreach ($bahasa_pilihan as $bahasa) {
          if ($bahasa <> $pemenang) {
            if ($kalkulasi[$bahasa]>$pertamax) {
              $pertamax = $kalkulasi[$bahasa];
            }
          }
        }
        if (($pertamax / $max) < 0.1) {
          return $pemenang;
        }
      }
      return $terjemahkan;
    }
echo Bahasa($tulisan, $terjemahkan);
?>

Simpan di blog Anda dengan ekstensi .php
Buka dan lihat hasilnya. Pasti BAHASA_INDONESIA

Sekarang ganti bab ini:
$tulisan = "Hari ini saya sanggup senyum oleh suatu hal";
Menjadi:
$tulisan = "Hello sigit purnomo, how are you ?";
Pada pola kedua kesudahannya BAHASA_INGGRIS

Saya harap info ini jelas. Jika masih ada pertanyaan, tulis di komentar.

Update 07 Agustus 2017

Beberapa jam sesudah saya memposting artikel ini, saya melihat ada link masuk dari sebuah lembaga stackoverflow.com/questions/45539468/matching-word-to-array-for-language-detection

Setelah saya selidiki, ternyata ada seseorang yang bertanya perihal instruksi yang saya berikan disini ke lembaga tersebut.

Kabar baiknya, pengguna tersebut mencantumkan link sumber, jadi saya sanggup tahu ada seseorang yang menyalin instruksi ini.

Kabar yang lebih baik lagi, ada beberapa balasan di lembaga tersebut yang isinya lebih baik dari apa yang saya bagikan disini.

Makara disini saya mengucapkan terima kasih kepada mereka, alasannya yaitu dari situ saya sanggup tahu kekurangan dari apa yang sedang saya uji coba.

Nah, saya akan mencoba menyempurnakan instruksi sebelumnya dengan mengikuti petunjuk yang ada di StackOverflow.

Kekurangan pada widget lawas

Jika pada bab objek yang akan di deteksi hanya terdapat kata-kata yang ada pada satu buah kata kunci, contohnya hanya dari bahasa Indonesia saja, itu masih bekerja. Tapi kalau ternyata masih nyangkut satu atau lebih kata yang ada di keyword bahasa inggris, maka widget tidak sanggup bekerja.

Perbaikan itulah yang akan saya update sekarang. Silahkan salin instruksi gres berikut yang saya sanggup dari lembaga dan telah saya modifikasi menjadi lebih sempurna.

<?php
function Bahasa($cek) {
  $cek = "Hari ndasmu ini ngaco saya have senyum YOU? oleh weleh suatu manceng hal";
  $cek = preg_replace("/[^A-Za-z]/", ' ', $cek);
  $exp = explode(' ',$cek);

  $lang['INDONESIA'] = array ('cinta', 'marah', 'sayang', 'benci', 'senyum', 'peluk');
  $lang['ENGLISH'] = array ('the', 'and', 'have', 'for', 'with', 'you');
  $lang['JAWA'] = array ('ngaco', 'koplak', 'ngaret', 'manceng', 'ndasmu', 'weleh');
  $en=0;$id=0;$jw=0;

  foreach($exp as $str){
 if(in_array(strtolower($str), array_map("strtolower",$lang['ENGLISH']))){$en +=1;}
 if(in_array(strtolower($str), array_map("strtolower",$lang['INDONESIA']))){$id +=1;}
 if(in_array(strtolower($str), array_map("strtolower",$lang['JAWA']))){$jw +=1;}
    }
$detect = array('en'=>$en,'id'=>$id,'jw'=>$jw);
$max = max($detect);
$results = array_search($max, $detect);
if($results == 'en') {
echo "ENGLISH DETECTED";
}
if($results == 'id') {
echo "INDONESIAN DETECTED";
}
if($results == 'jw') {
echo "JOWO DETECTED";
}
}
Bahasa($cek);

Saya telah beberapa kali melaksanakan uji coba, dan tidak ada persoalan di versi terbaru ini.
Jika ada yang membutuhkan daerah melaksanakan percobaan, pakai saja https://eval.in
Sumber http://www.kangsigit.com/

0 Response to "Script Php - Cara Deteksi Bahasa Dari Teks / Kata"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel