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>
11 lines
723 B
Plaintext
11 lines
723 B
Plaintext
;; search synonym / query expansion — Haskell source fragment. Depends on index +
|
|
;; rank. A synonym map is an assoc list [(Term, [Term])]; a query term is expanded
|
|
;; to itself plus its synonyms, then the expanded set is unioned / ranked.
|
|
;; expandTerm :: [(Term,[Term])] -> Term -> [Term]
|
|
;; synDocs :: [(Term,[Term])] -> Term -> Index -> [DocId]
|
|
;; synRankTfIdf :: [(Term,[Term])] -> Term -> Index -> [DocId]
|
|
|
|
(define
|
|
search/syn-src
|
|
"synLookup synmap t = case lookup t synmap of { Nothing -> [] ; Just ss -> ss }\nexpandTerm synmap t = t : synLookup synmap t\nsynDocs synmap t idx = foldl (candStep idx) [] (expandTerm synmap t)\nsynRankTfIdf synmap t idx = rankTfIdf (expandTerm synmap t) idx\n")
|