¿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 .
- ¿Cuál es el propósito del factor de carga en las tablas hash?
- ¿Qué significa limitado como sufijo para una empresa?
- ¿Qué es el desplazamiento binario y por qué lo usamos?
- ¿La informática es solo sobre programación y algoritmos?
- ¿Por qué los finalistas de Topcoder no comparten su experiencia en los tutoriales de YouTube para principiantes? Cualquier principiante agradecería la ayuda para desarrollar sus habilidades para resolver problemas.
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.