nx_bm25_gate.nx
buildroot/runtime/nx_bm25_gate.nx
about
nx_bm25_gate.nx -- INDEPENDENT GATE: integer BM25 + Reciprocal Rank Fusion, on real clause text.
The teeth:
u2605IDF EARNS ITS KEEP: a term appearing in EVERY document scores ZERO, so filler cannot win. A term
in ONE document of four scores high -- which is how a rare defined term beats common vocabulary.
u2605SATURATION: doubling term frequency does NOT double the score (k1), so keyword stuffing fails.
u2605LENGTH NORMALISATION: the same term count in a longer document scores LOWER (b).
u2605u2605RRF FUSES RANKS, NOT SCORES: a document ranked 1st by ONE leg beats a document ranked mid-pack
by BOTH -- and an UNRANKED leg contributes nothing rather than a fabricated worst place.
u2605NO FLOAT: exact at powers of two, deterministic everywhere.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 2 imports · 0 importers
imports: nx_bm25_lib.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 15 | func main(argc: i64, argv: *i64) -> i64 |