Parasolx

Professional in Drupal web development, theme designing, consultation and training

Membina algoritma populariti

02 Apr 2012 - 01:21 am

Boleh dikatakan kebanyakan laman web hari ini menggunakan undian atau penilaian (votes) untuk mengetahui tahap populariti satu-satu artikel yang ditulis. Sistem seterusnya menyenaraikan artikel yang popular dengan mengambil kira purata nilai penilaian yang diberikan.

Dan apabila sistem tradisional ini digunakan apa yang terjadi:

  1. sistem mengalami kemerosotan dari segi menentukan kedudukan item
  2. pembangun sendiri menggunakan algoritma secara persendirian tanpa menggunakan pengiraan yang lebih praktikal dan logik
  3. terdapat beberapa golongan yang cuba menipu sistem penilaian
  4. berlaku kekurangan dalam pengiraan sistem apabila algoritma yang dibina terlalu kompleks.

#1 Undian menentukan populariti

Sistem sedia ada merekod jumlah undian yang dilakukan dan dikira dari segi purata. Secara matematiknya, perkadaran boleh dikatakan seperti berikut:

Populariti = jumlah undian

Sememangnya algoritma ini tersangatlah jauh untuk menggambarkan tahap populariti sebenar.

Katakan pada bulan lepas berlakunya aktiviti yang terlalu aktif daripada pengunjung dan menerima hampir 100 undian dan penilaian. Manakala bulan ini tidak terlalu aktif dan hanya mampu memperoleh 30 penilaian sahaja.

Disebabkan faktor ini, artikel yang begitu popular pada bulan lepas tidak akan terpapar di bahagian laman utama.

#2 Rekod terdahulu (usia artikel)

Sekarang kita masukkan faktor rekod terdahulu atau usia rekod. Bermakna untuk artikel yang terbaru, ianya lebih mendapat tempat untuk senarai halaman utama berbanding artikel terdahulu, betul ke?

Populariti = jumlah undian / usia rekod

Ini bermakna, artikel yang mempunyai usia yang lebih lama memerlukan penilaian yang lebih banyak untuk mencapai satu tahap populariti. Tetapi ini tidak adil.

Bayangkan untuk satu aritkel diterbitkan, seorang penulis mungkin bercekang mata dan berjaga sehingga lewat malam sedangkan pembaca yang lain lena tidur atau mempunyai aktiviti yang mereka suka. Dan keberkesan artikel ini akhirnya hialgn ditelam masa apabila ianya sudah tidak lagi diundi.

Sekarang kita ubah sedikit cara pengiraan undian terhadap usia undian itu sendiri:

Populariti = (P1/U1) + (P2/U2) + (P3/U3) + ... + (Pn/Un)

di mana, Pn = undian dan Un = usia untuk undian tersebut.

Dengan algoritma ini nampaknya telah hampir menyelesaikan masalah kita. Tetapi akan timbul satu isu yang baru. Katakan satu artikel ditulis pada 20 bulan yang lepas, undian yang diterima pada hari ianya diterbitkan semestinya lebih bernilai berbanding undian pada hari ini. Jika tidak, artikel yang lama-lama akan muncul kembali di ruang halaman utama.

#3 Masukkan kembali faktor usia artikel

Sekarang kita kembalikan faktor usia artikel itu sendiri ke dalam algoritma kita menjadikannya:

Populariti = [ (P1/U1) + (P2/U2) + (P3/U3) + ... + (Pn/Un) ] / Usia artikel

Dengan faktor yang terbaru dimasukkan, kita boleh mengarahkan agar artikel yang terdahulu kekal popular tetapi tidak muncul di laman utama sekiranya sudah dianggap sebagai arkib.

Namun begitu, teori dan praktikalnya agak sukar untuk mendapatkan algoritma yang begitu sempurna. Memandangkan algoritma yang dicipta ini hanya mengambil kira dua faktor sahaja iaitu penilaian dan masa.

Kategori: 
Tags: 
undian
populariti
penilaian
algoritma