Sono un po 'confuso dalla strategia di punteggio lucene. So che la formula di punteggio di Lucene è come:Punteggio Lucene: in quale contesto viene utilizzato queryNorm?
score(q,d) = coord(q,d) x queryNorm(q) X SUM <t_in_q> (tf(t_in_d) x idf(t)^2 x t.getBoost() x norm(t,d))
capisco tutti i componenti in questa formula, tranne queryNorm (q). Come spiegato dalla documentazione ufficiale,
queryNorm (q) è un fattore di normalizzazione utilizzato per rendere confrontabili i punteggi tra . Questo fattore non ha alcun effetto sul ranking del documento (poiché tutti i documenti classificati vengono moltiplicati per lo stesso fattore), ma lo si limita a tentare di ottenere punteggi da query diverse (o anche da indici diversi) diversi.
Perché devo confrontare i punteggi tra diverse query? In altre parole, potresti fornire un esempio per mostrare in quale contesto è utile queryNorm (q)?
Questo è un indizio interessante. Sono ancora sulla barca dove dare agli utenti comuni un maggiore controllo su queryNorm non nuoce al lavoro di ricerca. Tuttavia, poiché è calcolato in termini di peso, c'è un piccolo costo computazionale di cui preoccuparsi. – Denzel
Quindi, tornando alla mia domanda, confrontando i punteggi tra le query appare più nel personale di machine learning come il clustering dei documenti, e appare raramente in un lavoro di ricerca comune, giusto? – Denzel
Esistono strategie per rendere le query comparabili, senza necessariamente andare all'apprendimento automatico (si veda [Similarità Coseno] (http://en.wikipedia.org/wiki/Cosine_similarity), ad esempio). In Lucene, è evitato. La soluzione per confrontare i punteggi tra diverse query è ripensare le tue esigenze. – femtoRgon