El problema: tengo una serie de mensajes de chat, entre dos usuarios, con marcas de tiempo. Podría presentar, digamos, un día completo de mensajes de chat a la vez. Durante todo el día, sin embargo, hubo múltiples conversaciones/sesiones discretas ... y sería más útil para el usuario ver estos divididos en oposición a todos los días como una transmisión continua.Algoritmo/Heurística para agrupar historias de mensajes de chat por 'conversación'/sesiones implícitas de marcas de tiempo?
¿Hay algún algoritmo o heurística que pueda 'deducir' inicios de sesiones/conversaciones implícitas/interrupciones de las marcas de tiempo? Además de un arbitrario 'si el espacio es más de x minutos, es una sesión separada'. Y si ese es el único caso, ¿cómo se determina este intervalo? En cualquier caso, me gustaría evitar esto.
Por ejemplo, hay ... cincuenta mensajes que se envían entre las 2:00 y 3:00, y luego un descanso, y luego veinte mensajes enviados entre las 4:00 y las 5:00. Habría un descanso insertado entre allí ... ¿pero cómo se determinaría el descanso?
Estoy seguro de que ya hay literatura sobre este tema, pero simplemente no sé qué buscar.
Estaba jugando con cosas como algoritmos de detección de bordes y enfoques basados en gradiente por un tiempo.
(ver comentarios para mayor clarificación)
No creo que puedas hacerlo en función del tiempo, porque los chats en línea suelen ser un poco inconexos. Alguien puede hacer una pregunta o algo, y la otra persona está ocupada, o en parte, se desvía de una persona "Real", teléfono o incluso otra sesión de chat –
, y no estoy seguro de cómo funcionaría esto. afuera, podrías dividirlo por preguntas y ese chat que sigue a una pregunta –
@Keith Me interesaría un algoritmo "suficientemente bueno" para el caso menos que ideal. Los algoritmos de detección de bordes, por ejemplo, no son perfectos: a veces pierden bordes y agregan bordes fantasmas. Pero son lo suficientemente buenos para su trabajo. –