역순위 융합은 각 검색 결과에서 문서의 순위를 받아 1/(k+순위) 형태의 기여도를 계산합니다. 같은 문서가 여러 목록의 상위에 있으면 기여도가 합쳐집니다.
원점수의 크기를 맞출 필요가 없다는 장점이 있습니다. 하지만 k와 후보 목록 크기에 따라 최종 순서가 달라질 수 있으므로 실제 질의로 평가해야 합니다.
언제 쓰나
키워드 검색과 벡터 검색처럼 점수 단위가 다른 목록을 합칠 때 씁니다.
서로 다른 검색 결과의 순위를 공통 점수로 바꿔 더합니다.
<div class="v"><header><b>RANK FUSION</b><span id="state"></span></header><main><div class="ranks" id="ranks"></div><div class="winner" id="winner"></div></main><footer>score = Σ 1 / (k + rank)</footer></div>.v{width:min(92vw,660px);height:min(86vh,310px);box-sizing:border-box;padding:clamp(9px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:7px;color:var(--fg);font:500 clamp(15px,4.5vmin,19px)/1.25 var(--font-sans, sans-serif)}.v header,.v footer{display:flex;justify-content:space-between;align-items:center;gap:8px;white-space:nowrap}.v header b{color:var(--accent);font-size:.9em}.v header span,.v footer{color:var(--muted);font-size:.82em}.v main{flex:1;min-height:0;position:relative;overflow:hidden}.v .mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.v .active{background:var(--accent)!important;color:var(--bg)!important;border-color:var(--accent)!important}.v .muted{opacity:.45} .ranks{height:calc(100% - 22px);display:flex;justify-content:center;gap:8px}.rank{box-sizing:border-box;width:42%;border:1px solid var(--line);border-radius:6px;padding:3px;text-align:center;font-size:.8em}.rank b{display:block;padding:2px;margin-top:2px;line-height:1.1;border-radius:4px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));font:600 1em ui-monospace,monospace}.winner{position:absolute;left:0;right:0;bottom:0;height:18px;display:grid;place-items:center;text-align:center;color:var(--accent);font:600 .8em ui-monospace,monospace}let n=0;function draw(){document.getElementById("ranks").innerHTML="<div class=rank>KEYWORD<b>A</b><b>B</b><b>C</b></div><div class=rank>VECTOR<b>B</b><b>A</b><b>D</b></div>";document.querySelectorAll(".rank b").forEach((el,i)=>el.classList.toggle("active",n===0?[0,4].includes(i):n===1?[1,3].includes(i):[0,1,3,4].includes(i)));document.getElementById("winner").textContent=["A: rank 1 + rank 2","B: rank 2 + rank 1","B and A lead both lists"][n];document.getElementById("state").textContent=["score A","score B","fuse ranks"][n];n=(n+1)%3}draw();setInterval(draw,1100)역순위 융합은 각 검색 결과에서 문서의 순위를 받아 1/(k+순위) 형태의 기여도를 계산합니다. 같은 문서가 여러 목록의 상위에 있으면 기여도가 합쳐집니다.
원점수의 크기를 맞출 필요가 없다는 장점이 있습니다. 하지만 k와 후보 목록 크기에 따라 최종 순서가 달라질 수 있으므로 실제 질의로 평가해야 합니다.
키워드 검색과 벡터 검색처럼 점수 단위가 다른 목록을 합칠 때 씁니다.