Przejdź do treści
Jobless Busters
Z testamiPodstawowa15–25 min

Czy wyszukiwarka znajduje właściwe materiały?

Polecenie: mając prawidłowe ID dokumentów i listę wyników wyszukiwania, policz znalezioną część oraz pozycję pierwszego trafienia. Ustal, co robić z duplikatami i pytaniem bez poprawnej odpowiedzi.

Sprawdza: rozumienie miar, nie sam wzór.

recall@k mówi, jaka część potrzebnych dokumentów jest w pierwszych k wynikach. Reciprocal rank dla jednego pytania to odwrotność pozycji pierwszego trafienia; MRR jest średnią takich ocen z wielu pytań.

Kontrakt: retrievalMetrics(relevant, ranked, k) zwraca {recallAtK, reciprocalRankAtK}. Duplikaty usuwamy przed wzięciem top-k, przy braku dokumentów istotnych recallAtK to null, a niepoprawne k rzuca RangeError.

Dopytanie: jak osobno oceniać poprawne odmowy?

  • Policzyć recall@k
  • Policzyć reciprocal rank
  • Obsłużyć duplikaty i brak istotnych dokumentów
  • retrievalMetrics(['A','B'], ['X','A','A','B'], 3)→ { recallAtK: 1, reciprocalRankAtK: 0.5 }
  • retrievalMetrics([], ['X'], 1)→ { recallAtK: null, reciprocalRankAtK: 0 }
Testy (1)

Testy przeniesione z reference.test.ts materiału źródłowego (node:test). W przeglądarce działają z tym samym zestawem asercji.

eval: dedup, recall, MRR i pytanie bez dowodów

JavaScript
assert.deepEqual(retrievalMetrics(['A', 'B'], ['X', 'A', 'A', 'B'], 3), { recallAtK: 1, reciprocalRankAtK: 0.5 });
assert.deepEqual(retrievalMetrics(['A', 'B'], ['X', 'A'], 2), { recallAtK: 0.5, reciprocalRankAtK: 0.5 });
assert.deepEqual(retrievalMetrics([], ['X'], 1), { recallAtK: null, reciprocalRankAtK: 0 });
assert.throws(() => retrievalMetrics(['A'], [], 0), RangeError);

Źródło: AI & Agents — ćwiczenia praktyczne — Autorskie ćwiczenie z programu nauki, nie potwierdzone zadanie rekrutacyjne.

JavaScript · uruchamiany w Web Workerze w przeglądarce

Tab wcina · Esc, a potem Tab, opuszcza edytor · ⌘/Ctrl + Enter uruchamia testy · Twój kod jest zapisywany w tej przeglądarce.

Uruchom testy, żeby sprawdzić rozwiązanie. Gotowych testów: 1.

Utknąłeś? Podpowiedzi idą od ogólnych do konkretnych.

Najpierw spróbuj naprawdę — rozwiązanie najwięcej daje, gdy już trochę się namęczysz.