book search engine #18
@@ -13,6 +13,8 @@ if TYPE_CHECKING:
|
|||||||
from python.ebook_search.search import SearchResult
|
from python.ebook_search.search import SearchResult
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
RERANK_SCORE_WEIGHT = 0.7
|
||||||
|
HYBRID_SCORE_WEIGHT = 0.3
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
@@ -110,7 +112,7 @@ def clamp_score(score: float) -> float:
|
|||||||
|
|
||||||
def final_rerank_score(result: SearchResult, rerank_score: float, candidates: list[SearchResult]) -> float:
|
def final_rerank_score(result: SearchResult, rerank_score: float, candidates: list[SearchResult]) -> float:
|
||||||
"""Combine rerank relevance with normalized hybrid retrieval evidence."""
|
"""Combine rerank relevance with normalized hybrid retrieval evidence."""
|
||||||
return rerank_score * normalized_hybrid_score(result, candidates)
|
return (RERANK_SCORE_WEIGHT * rerank_score) + (HYBRID_SCORE_WEIGHT * normalized_hybrid_score(result, candidates))
|
||||||
|
|
||||||
|
|
||||||
def normalized_hybrid_score(result: SearchResult, candidates: list[SearchResult]) -> float:
|
def normalized_hybrid_score(result: SearchResult, candidates: list[SearchResult]) -> float:
|
||||||
|
|||||||
Reference in New Issue
Block a user