Capire (in automatico) se un articolo è risultato interessante

Posted on 23 ottobre 2008

0


Visto che non sempre è ammissibile chiedere ai lettori se un testo (pubblicato su Web) sia risultato di loro interesse o meno, sarebbe opportuno trovare il modo di capire da soli se un articolo è piaciuto. Non basta contare il numero delle visite: l’utente ha trovato le informazioni che cercava? E nel caso avesse trovato altro, è stato comunque attratto anche da questo argomento non previsto o se n’è semplicemente andato dopo aver pigramente scorso poche righe?

Insomma, si tratta di trovare il modo per calcolare automaticamente il grado di interesse di un articolo: e per farlo si possono registrare i comportamenti che l’utente ha tenuto mentre era sulla pagina.

L’idea è di confrontare il tempo che un utente ha trascorso sull’articolo con il numero di righe effettivamente lette (rispetto al totale delle righe dell’articolo) e con il tempo medio che questi impiega generalmente a leggere una riga.

In questo modo abbiamo bisogno di raccogliere alcune informazioni:

  • Quanti secondi impiega l’utente a leggere un testo neutro (ovvero: tempo medio di lettura di una riga);
  • Quante righe contiene il testo sotto esame;
  • Quante righe sono state mostrate dal browser (che consideriamo essere state lette, anche se non dovesse essere vero: vedremo dopo perché).

La formula potrebbe quindi essere:

  • C = (tempo di lettura / linee lette / tempo medio di lettura dell’utente) * (linee lette / numero di linee)

Se 40 linee di testo neutro vengono lette in 45 secondi, ho una costante k = 1,125 secondi per linea.
Ora vediamo cosa succede quando quel lettore apre un articolo. Ipotizziamo che la finestra del browser mostri 50 linee su 150:

( 05” / 50 / 1,125 ) * ( 50 / 150 ) = 0,02962
( 15” / 50 / 1,125 ) * ( 50 / 150 ) = 0,08889
( 45” / 50 / 1,125 ) * ( 50 / 150 ) = 0,26667
( 45” / 55 / 1,125 ) * ( 55 / 150 ) = 0,26667

Attenzione agli ultimi due valori: 45 secondi passati senza scrollare la pagina valgono quanto 45 secondi con uno scroll di 5 righe, perché in tal caso lo scroll viene interpretato come un tentativo di cercare più in basso qualcosa che ancora non è stato trovato (e quindi deve penalizzare il valore di C). Il numero di righe mostrate può quindi essere paragonato al numero di righe lette.

Se l’utente ci mettesse esattamente il suo tempo medio di lettura (costante k) a leggere tutto:
( 169”/ 150 / 1,125 ) * ( 150 / 150 ) = 1

Se l’utente ci mettesse il doppio di k a leggere tutto:
( 337”/ 150 / 1,125 ) * ( 150 / 150 ) = 2

Se l’utente ci mettesse il triplo di k a leggere tutto:
( 506”/ 150 / 1,125 ) * ( 150 / 150 ) = 3

Naturalmente sarebbe opportuno porre un filtro al valore di C al di sopra del quale il dato non venga più considerato significativo, poiché l’utente potrebbe aver interrotto la lettura: ad ogni modo il dato dei secondi trascorsi sulla pagina dovrebbe tenere conto delle attività di tastiera (frecce), delle attività di mouse, del focus sulla pagina, eccetera.

@TODO: realizzare un contatore dei secondi trascorsi sulla pagina che tenga conto anche dell’attività dell’utente e del focus su quella pagina.

<form id="c" name="c" action="count.htm" method="GET">
   <input type="text" size="8" name="cc">
</form>
<script>
<!--
var d=0;
var s=0;
document.c.cc.value='0';
function countSec(){
   s+=1;
   document.c.cc.value=s;
   setTimeout("countSec()",1000);
}
countSec();
//-->
</script>

@TODO: controllare se il contatore di righe qui di seguito funziona sempre. Ovvero, testarlo come si deve.

<p id="testo">
testo testo testo
testo testo testo
[...]
testo testo testo
testo testo testo
</p>
<div id="galleggiante" style="position:absolute;width:1em;"> </div>
<script>
<!--
var testo = document.getElementById("testo");
var gallegiante = document.getElementById("galleggiante");
// Calcolo le righe calcolando lo spostamento subito dal div "galleggiante":
var righe = Math.round(testo.offsetHeight/galleggiante.offsetHeight);

alert("Numero di righe " + righe);

// -->
</script>

@TODO: realizzare un identificatore dell’ultima riga attualmente visibile all’interno della finestra del browser.

@TODO:
ideare un testo neutrale sufficientemente interessante da permettere di calcolare la costante k, il tempo medio di lettura dell’utente.

Creative Commons License
NLP Projects by Samuel Zarbock are licensed under a Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia License.

Annunci