Class: Parse::Retrieval::Reranker::Fixture
- Defined in:
- lib/parse/retrieval/reranker.rb
Overview
Deterministic, zero-network reranker for tests and offline use. Scores each document by lexical token overlap with the query (Jaccard-ish: shared unique lowercased word count, tie-broken by input order). No external dependency, fully reproducible.
Constant Summary
Constants inherited from Base
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#rerank_scores(query, documents, _top_n) ⇒ Object (protected)
137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/parse/retrieval/reranker.rb', line 137 def rerank_scores(query, documents, _top_n) q_tokens = tokenize(query) documents.each_with_index.map do |doc, i| d_tokens = tokenize(doc) overlap = (q_tokens & d_tokens).length # Normalize into a 0..1-ish score so output looks like a real # relevance score; longer-overlap docs rank higher. denom = [q_tokens.length, 1].max [i, overlap.to_f / denom] end end |