Fornito con un algoritmo di classificazione valido per gli articoli

6

Sto creando un sito web che pubblicherà uno o più articoli a settimana.

Mi piacerebbe essere in grado di classificare gli articoli in base alla popolarità. Per fare questo, ho bisogno di una formula per calcolare un punteggio per ogni articolo. Questa formula dovrebbe premiare gli articoli popolari (quelli che ricevono molti punti di vista), portando anche i nuovi articoli più vicini alla cima per mantenere il contenuto fresco e interessante.

Il sito Web non supporta la votazione sugli articoli. I lettori saranno in grado di commentare e posso far sì che il sito tenga traccia della quantità di visualizzazioni uniche ottenute dall'articolo.

Il mio tentativo

Ho trovato un modo per calcolare un punteggio per ogni articolo, ma non sono sicuro che sia il modo giusto per farlo, o se funzionerà del tutto.

Questa formula calcola il punteggio:

score = unique_views / ( hours_since_release * 4 )

La formula mantiene a galla articoli con molte viste, assicurandosi anche che alla fine si abbassino per lasciare spazio ai nuovi articoli.

Ho scritto un piccolo programma per testare questa formula. Ecco l'output di una corsa.

Questo script genera da 0 a 2 articoli ogni giorno e simula il loro punteggio man mano che il tempo procede.

Quando viene creato un articolo, sceglie un numero casuale ( M ) tra 100 e 1000, che rappresenta la sua popolarità. Ogni "giorno", lo script aggiunge un numero casuale di visualizzazioni tra 0 e M a ciascun articolo.

Le visualizzazioni effettive visualizzate nell'output ( V ) sono il risultato di questa formula:

view_count = ( 10 * log10( view_count ) ) ^ 2

L'ho usato per assicurarmi che il numero di visualizzazioni non continuasse a crescere per sempre. Invece, la sua crescita rallenterà col passare del tempo, come potrebbe nella vita reale.

I valori A e S nell'output rappresentano rispettivamente l'età in giorni dell'articolo e il suo punteggio, in base alla formula mostrata sopra.

Questa formula causa alcuni comportamenti interessanti: se guardi il gioco Tomb Raider: Anniversary , si genera con un grande M , il che significa che sarà molto popolare. Arriva in cima al primo giorno, scende nei prossimi 2 giorni e poi torna in cima per 3 giorni di fila a causa della quantità di visualizzazioni che ottiene.

Questo sembra essere il comportamento che sto cercando, ma non sono sicuro che funzionerà nella pratica, o anche se questo è l'approccio giusto.

Puoi trovare la fonte del mio prototipo approssimativo qui se desideri eseguirlo da solo.

Ecco la domanda:

Come puoi inventare e testare gli algoritmi di ranking in modo che soddisfino le condizioni del problema, utilizzando le variabili disponibili?

Domanda secondaria: Il mio algoritmo di classificazione è appropriato e funzionerebbe nella situazione che ho descritto?

EDIT: dai link nella risposta maythesource.com , ho appena realizzato che c'è anche il problema del gioco dei punteggi. Considerare solo le visite uniche in qualche modo impedirebbe il gioco, oppure è una debole contromisura?

    
posta Gabriele Cirulli 19.02.2014 - 23:46
fonte

1 risposta

1

Il tuo problema è simile ai mercati delle applicazioni. Prendi ad esempio google play - non usano solo una lista.

Featured: new apps hand-picked by Google Play team.
Staff Picks: rotating set of apps chosen by Google Play team.
Top Free: most popular free apps of all time.
Top New Free: most popular free apps less than 30 days old.
...
Trending Apps: apps showing growth in installs in the last 24 hours.

Vedi: link

Allo stesso modo, non penso sia sufficiente avere solo una lista e un algoritmo. In questo modo, la tua lista potrebbe entrare in un ciclo di feedback e far sì che gli articoli con ranking più elevato vengano spinti ancora più in alto.

Se tuttavia, hai creato due elenchi (o tre) puoi compensare questo.

Esempi:

  • Nuovi articoli principali- Scansione di tutti gli articoli della settimana scorsa che hanno più di X rating e Y visualizzazioni e ordini con il seguente algoritmo: Raggruppa le applicazioni per giorno, quindi ordina le applicazioni entro il giorno in base alle visualizzazioni + valutazione.
  • Articoli principali in generale - Visualizza articoli in base alle visualizzazioni / valutazione / popolarità di tutti i tempi.
  • Scelti in primo piano / Editor - Seleziona gli articoli che risaltano veramente e mostrali.

È positivo avere un controllo su ciò che è descritto e avere un livello minimo di qualità in ciò che è descritto / sponsorizzato per i tuoi spettatori.

Dai anche un'occhiata ad alcuni articoli come:

risposta data 20.02.2014 - 00:28
fonte

Leggi altre domande sui tag