¿Qué estructura de datos debo usar si estoy diseñando un algoritmo que clasifica las páginas por relevancia de acuerdo con la cantidad de veces que se ven?

¿Posiblemente necesite un índice invertido ? (Índice invertido – Wikipedia)

→ En general, para corpus de documentos masivamente grandes, [math] C = \ {d_ {1}, …, d_ {n} \} [/ math], utilizamos una tabla de hash distribuida que tiene punteros a metadatos [matemática] \ forall [/ matemática] [matemática] d_ {i} [/ matemática] [matemática] \ en [/ matemática] [matemática] C [/ matemática]. Estos metadatos pueden (y generalmente incluyen) la puntuación de clics (número de veces que se hizo clic en el documento) para ese documento. Estos datos son particularmente útiles para dar puntajes de Feedback, como el Rocchio Feedback . (Algoritmo Rocchio – Wikipedia). También me gustaría agregar que hay muchos servicios que en realidad proporcionan una base de datos distribuida que es tolerante a fallas (como ElasticSearch ), donde puede definir un JSON personalizado para almacenar los metadatos que corresponden a un documento en el Corpus . Existen diferentes índices para diferentes tipos de documentos, y también puede definir funciones de puntuación personalizadas, dada una consulta [matemática] q [/ matemática] sobre algún index(I) .

→ Si desea saber cómo puede usar estos datos para realmente hacer diferencias en la clasificación, simplemente puede mantener una clave Rocchio_Score en los metadatos (JSON) para ese documento que se actualiza mediante solicitudes POST, cada vez que ese documento aparece en alguna posición [math] p [/ math] para una consulta [math] q [/ math]. Esto se puede hacer parte de la personalización de la función de puntuación .

Entonces, algo como esto:

{

‘doc_i’: {

‘rocchio_score’: .65,

},
‘doc_j’: {
… ..
‘rocchio_score’: -.23,
… ..
},

}

→ Básicamente, la estructura de datos utilizada es un índice invertido sobre una base de datos distribuida . No hace falta decir que la base de datos puede ser diferente dependiendo de la estructura del servicio que la utiliza, incluidas sus restricciones.

More Interesting

¿Cuál es tu algoritmo favorito y dónde lo has usado prácticamente en la vida real?

¿Cuáles son algunos de los principales factores que pueden afectar la velocidad de ejecución de un algoritmo?

Cómo resolver este problema en la búsqueda binaria

¿Por qué la recursión me causa tantos problemas?

Cómo desarrollar autointeligencia para la codificación de software sin hacer algoritmos

Cómo entender la precisión Top-N en el aprendizaje automático de una manera simple

¿Cuál es el mejor algoritmo para un conjunto de datos con muchas características correlacionadas, débiles y ruidosas?

¿Por qué necesitamos el algoritmo de derivación de porter en Python?

¿Qué lenguaje, libro o técnica es el mejor punto de partida cuando estás frustrado con tus habilidades de programación y quieres tener una sólida formación en algoritmos y estructuras de datos?

Supongamos que tenemos el recorrido de preorden de un árbol de expresión. ¿El árbol que creamos con este recorrido es único?

¿Qué algoritmo debe usar Quora para ordenar las preguntas en las páginas de sesión?

Si solo pudieras usar un algoritmo de Machine Learning para el resto de tu vida, ¿cuál sería?

¿Cuáles son los algoritmos actuales de aprendizaje profundo para la restauración de imágenes?

¿Qué curso de Udemy es mejor para aprender estructuras de datos si ya he aprendido los conceptos básicos (matrices, estructuras, punteros, listas enlazadas)?

¿Qué es el mapa de bits? ¿Dónde lo usamos?