Rabu, 21 Maret 2012

Mencari Tingkat Text Similarity dengan PHP

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.

web dinamik

sumber : blog.rosihanari.net
◄ Newer Post Older Post ►