/** * 검색 품질 지표 계산 공통 헬퍼 * Precision@K, Recall@K, NDCG@K 계산 로직 공유 */ export interface SearchResult { id: string; score?: number; finalScore?: number; relevance?: number; } export interface GroundTruth { queryId: string; relevantIds: string[]; } /** * Precision@K 계산 * 상위 K개 결과 중 관련 결과 비율 * * @param results 검색 결과 (점수 순으로 정렬된 상태) * @param relevantIds 관련 결과 ID 목록 * @param k 상위 K개 * @returns Precision@K (0-1) */ export declare function calculatePrecisionAtK(results: SearchResult[], relevantIds: string[], k: number): number; /** * Recall@K 계산 * 관련 결과 중 상위 K개에 포함된 비율 * * @param results 검색 결과 (점수 순으로 정렬된 상태) * @param relevantIds 관련 결과 ID 목록 * @param k 상위 K개 * @returns Recall@K (0-1) */ export declare function calculateRecallAtK(results: SearchResult[], relevantIds: string[], k: number): number; /** * NDCG@K (Normalized Discounted Cumulative Gain) 계산 * 정규화된 할인 누적 이득 * * @param results 검색 결과 (점수 순으로 정렬된 상태) * @param relevantIds 관련 결과 ID 목록 * @param k 상위 K개 * @returns NDCG@K (0-1) */ export declare function calculateNDCGAtK(results: SearchResult[], relevantIds: string[], k: number): number; /** * 평균 Precision@K 계산 (여러 쿼리에 대해) * * @param queryResults 쿼리별 검색 결과 * @param groundTruths 쿼리별 Ground Truth * @param k 상위 K개 * @returns 평균 Precision@K */ export declare function calculateMeanPrecisionAtK(queryResults: Map, groundTruths: GroundTruth[], k: number): number; /** * 평균 Recall@K 계산 (여러 쿼리에 대해) * * @param queryResults 쿼리별 검색 결과 * @param groundTruths 쿼리별 Ground Truth * @param k 상위 K개 * @returns 평균 Recall@K */ export declare function calculateMeanRecallAtK(queryResults: Map, groundTruths: GroundTruth[], k: number): number; /** * 평균 NDCG@K 계산 (여러 쿼리에 대해) * * @param queryResults 쿼리별 검색 결과 * @param groundTruths 쿼리별 Ground Truth * @param k 상위 K개 * @returns 평균 NDCG@K */ export declare function calculateMeanNDCGAtK(queryResults: Map, groundTruths: GroundTruth[], k: number): number; /** * 랭킹 정확도 계산 * 기대 순서와 실제 순서의 일치도 * * @param results 검색 결과 (점수 순으로 정렬된 상태) * @param expectedOrder 기대 순서 (ID 배열) * @returns 랭킹 정확도 (0-1) */ export declare function calculateRankingAccuracy(results: SearchResult[], expectedOrder: string[]): number; /** * 품질 지표 리포트 생성 * * @param results 검색 결과 * @param groundTruths Ground Truth 목록 * @param kValues K 값 배열 (예: [1, 5, 10]) * @returns 품질 지표 리포트 */ export interface QualityMetricsReport { precision: Record; recall: Record; ndcg: Record; rankingAccuracy?: number; } export declare function generateQualityReport(queryResults: Map, groundTruths: GroundTruth[], kValues?: number[]): QualityMetricsReport; //# sourceMappingURL=search-quality-metrics.d.ts.map