Cómo sondear un feed web de manera eficiente

Esto suena como un problema realmente interesante en realidad. Obviamente, puede sondear cada 5 minutos o algo así, y para casi cualquier aplicación realista, esto funcionará perfectamente bien.

Pero elegir realmente cuándo es el mejor momento para votar, utilizando solo información sobre la cantidad de artículos nuevos, es un problema de control en línea.

Mi primera idea es hacer esto como un bandido multi armado, donde los brazos son intervalos de tiempo hasta el próximo instante de votación, y luego tendrías que encontrar una función apropiada para la recompensa. Sin embargo, debes tener cuidado con la formulación. Dices que quieres ver al menos un artículo más. Esto debería ser exactamente uno más, o al menos uno más con alguna penalización por la cantidad de tiempo que espera. De lo contrario, esperar una cantidad infinita de tiempo será una solución.

Deje que los brazos sean un conjunto de intervalos de sondeo P1 <P2 <… <Pn. Obtiene una recompensa e * k * exp (-k) cada vez que realiza una encuesta, donde k es el número de artículos nuevos en ese feed. Aplique un algoritmo de bandido y tendrá algo con lo que comenzar.

Otra posibilidad es observar una gran cantidad de publicaciones históricas y usarlas para ajustar un modelo de proceso de Poisson (con quizás una tasa variable en el tiempo), luego usar eso para cronometrar el sondeo.

Es una hermosa … sopa.
La hermosa pareja de Python es buena en esto. Simplemente sondee todo el tiempo y use diferenciales contra los más recientes para encontrar otros nuevos. Puede sellarlos con épocas usted mismo. Preferiría R [package tm] para el procesamiento de texto, pero si desea duplicar el dolor, las expresiones regulares y perl están ahí para usted.

Pyper sería mi preferencia por eso.

Gran pregunta!

Webhose.io le brinda acceso a una fuente de datos web gratuita a través de noticias, blogs y sitios de discusión. Puede sondear la API para la fecha de publicación con la frecuencia que desee y crear un feed que se actualizará automáticamente cuando se agregue nuevo contenido.