Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




Cara Mengetahui Tingkat Kemiripan Teks (Text Similarity) dengan PHP


March 21st, 2012 | by rosihanari |


Jual kaos

Beberapa orang pengunjung blog tutorial gratis ini pernah menanyakan ke saya bagaimana sih cara membuat sendiri script untuk menampilkan artikel terkait atau artikel yang berhubungan. Jika Anda menggunakan WordPress, maka hal ini mudah dilakukan karena cukup menginstall plugin YARPP (Yet Another Related Posts Plugin), selesai… :-) Namun bagaimana jika Anda membuat CMS sendiri? Nah… mau tidak mau Anda harus membuat scriptnya sendiri.

OK… sebelum kita fokus dalam pembahasan cara membuat script untuk menampilkan artikel terkait ini, ada satu konsep yang harus Anda pahami terlebih dahulu, yaitu tentang text similarity atau kemiripan teks. Konsep ini nanti akan digunakan untuk menentukan mana artikel yang terkait dari suatu artikel, baik itu terkait dalam hal judulnya, isi atau kontennya, kategori nya maupun katakunci nya.

Untuk mengetahui tingkat kemiripan suatu teks, kita tidak perlu repot-repot membuat procedure atau functionnya karena di PHP sudah tersedia yaitu menggunakan function similar_text() yang sintaksnya sbb:

similar_text(teks1, teks2, percent)

Perintah di atas digunakan untuk mengetahui prosentase kemiripan (float) dari dua buah teks yaitu teks1 dan teks2.

Berikut ini adalah contoh penggunaannya:

<?php
$teks1 = 'Blog.RosihanAri.Net';
$teks2 = 'Blog.RosihanAri.Net adalah blog berisi tutorial gratis';
similar_text($teks1, $teks2, $persen);
echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>

Apabila script di atas dijalankan, maka akan muncul tampilan seperti ini

Tingkat kemiripan teksnya adalah 52.054794520548 %

atau coba kita test akurasinya dengan memberikan teks yang sama persis sehingga menghasilkan tingkat kemiripan 100%

<?php
$teks1 = 'Blog.RosihanAri.Net';
$teks2 = 'Blog.RosihanAri.Net';
similar_text($teks1, $teks2, $persen);
echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>

Script di atas menghasilkan output sbb:

Tingkat kemiripan teksnya adalah 100 %

Namun, string yang dicek kemiripannya oleh similar_text() ini bersifat case sensitive atau besar kecilnya huruf dibedakan. Perhatikan contoh berikut ini

<?php
$teks1 = 'Blog.RosihanAri.Net';
$teks2 = 'BLOG.ROSIHANARI.NET';
similar_text($teks1, $teks2, $persen);
echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>

Secara sekilas, apabila kedua teks di atas dibaca maka sama, namun penulisannya berbeda dalam besar kecilnya huruf. Apabila script di atas dijalankan, maka akan didapatkan output sbb:

Tingkat kemiripan teksnya adalah 31.578947368421 %

Nah… untuk mengurangi tingkat akurasi kemiripan yang disebabkan faktor case sensitivitas ini dalam implementasi, ada baiknya nanti semua string yang akan dibandingkan dibuat kapital semua (upper case) atau huruf kecil semua (lower case).

Meskipun function similar_text() ini mudah digunakan untuk mengetahui tingkat kemiripan teks, namun punya kelemahan yaitu memiliki tingkat kompleksitas yang lumayan tinggi yaitu O(N^3), di mana N adalah panjang string dari teks yang akan dicek. Artinya, semakin panjang teks yang akan dicek akan semakin besar pula kompleksitasnya sehingga berpengaruh pada kecepatan prosesnya secara eksponensial.

OK.. itu sedikit penjelasanya tentang cara mengetahui tingkat kemiripan teks atau text similarity dengan PHP. Semoga di artikel berikutnya, kita bisa implementasikan function similar_text() ini untuk menampilkan artikel terkait.


Kata kunci: function php - kemiripan teks - text similarity -


 

Komentar Anda ...