Il problema: ho una serie di messaggi chat - tra due utenti - con data e ora. Potrei presentare, per esempio, un'intera giornata di messaggi di chat in una sola volta. Durante l'intera giornata, tuttavia, ci sono state conversazioni/sessioni multiple e discrete ... e sarebbe più utile per l'utente vederle divise in contrapposizione a tutti i giorni come un flusso continuo.Algorithm/Euristico per raggruppare le cronologie dei messaggi di chat per "conversazione"/sessioni implicite dai timestamp?
Esiste un algoritmo o euristico che può "dedurre" interruzioni/conversazioni implicite di conversazioni/interruzioni di data/ora? Oltre ad un arbitrario 'se il divario è più di x minuti, è una sessione separata'. E se questo è l'unico caso, come viene determinato questo intervallo? In ogni caso, vorrei evitare questo.
Ad esempio, ci sono ... cinquanta messaggi che vengono inviati tra le 2:00 e le 3:00 e quindi un'interruzione, quindi venti messaggi inviati tra le 4:00 e le 5:00. Ci sarebbe una pausa inserita tra lì ... ma come si determinerebbe la rottura?
Sono certo che esiste già letteratura su questo argomento, ma non so cosa cercare.
Stavo giocando con elementi come algoritmi di rilevamento dei bordi e approcci basati sul gradiente per un po '.
(vedi commenti per ulteriori chiarimenti)
Non penso che si possa fare in base al tempo, perché le chat online sono spesso un po 'sconnesso. Qualcuno potrebbe fare una domanda o qualcosa del genere, e l'altra persona è occupata, o in parte, viene sviata da una persona "reale", dal telefono o anche da un'altra sessione di chat –
forse, e non sono sicuro di come funzioni fuori, potresti scomporlo con domande e quella chat che segue una domanda –
@Keith sarei interessato ad un algoritmo "abbastanza buono" per il caso meno che ideale. Gli algoritmi di rilevamento dei bordi, per esempio, non sono perfetti - a volte mancano i bordi e aggiungono bordi fantasma. Ma sono abbastanza buoni per il loro lavoro. –