Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 19s
A synonym map [(Term,[Term])] expands a query term to itself + synonyms (expandTerm); synDocs unions and synRankTfIdf ranks the expanded set. 214/214. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
54 lines
1.5 KiB
Plaintext
54 lines
1.5 KiB
Plaintext
;; Extension — synonym / query expansion.
|
|
;; synmap: car -> automobile, vehicle ; big -> large
|
|
;; Corpus: 1 "fast car" 2 "shiny automobile" 3 "big truck" 4 "large house" 5 "vehicle review"
|
|
|
|
(define
|
|
syn-setup
|
|
"synmap = [(\"car\", [\"automobile\", \"vehicle\"]), (\"big\", [\"large\"])]\nidx = indexDoc 5 \"vehicle review\" (indexDoc 4 \"large house\" (indexDoc 3 \"big truck\" (indexDoc 2 \"shiny automobile\" (indexDoc 1 \"fast car\" emptyIndex))))\n")
|
|
|
|
(define
|
|
syn-cases
|
|
(list
|
|
(list
|
|
"expand term with synonyms"
|
|
"expandTerm synmap \"car\""
|
|
(list "car" "automobile" "vehicle"))
|
|
(list
|
|
"expand single synonym"
|
|
"expandTerm synmap \"big\""
|
|
(list "big" "large"))
|
|
(list "expand unknown term" "expandTerm synmap \"banana\"" (list "banana"))
|
|
(list
|
|
"syn docs union"
|
|
"synDocs synmap \"car\" idx"
|
|
(list 1 2 5))
|
|
(list
|
|
"syn docs single synonym"
|
|
"synDocs synmap \"big\" idx"
|
|
(list 3 4))
|
|
(list
|
|
"syn docs no synonyms"
|
|
"synDocs synmap \"house\" idx"
|
|
(list 4))
|
|
(list "syn docs absent" "synDocs synmap \"plane\" idx" (list))
|
|
(list
|
|
"syn rank expanded"
|
|
"synRankTfIdf synmap \"car\" idx"
|
|
(list 1 2 5))
|
|
(list
|
|
"syn rank single"
|
|
"synRankTfIdf synmap \"big\" idx"
|
|
(list 3 4))))
|
|
|
|
(define
|
|
syn-results
|
|
(search-batch syn-setup (map (fn (c) (nth c 1)) syn-cases)))
|
|
|
|
(map-indexed
|
|
(fn
|
|
(i c)
|
|
(hk-test (nth c 0) (nth syn-results i) (nth c 2)))
|
|
syn-cases)
|
|
|
|
{:fail hk-test-fail :pass hk-test-pass :fails hk-test-fails}
|