From 1a124b8b078c866fcaeff75b6c17eede9a314554 Mon Sep 17 00:00:00 2001 From: ItzCrazyKns <95534749+ItzCrazyKns@users.noreply.github.com> Date: Tue, 31 Mar 2026 20:22:43 +0530 Subject: [PATCH] feat(utils): add jaccard similarity --- src/lib/utils/jaccardSim.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/lib/utils/jaccardSim.ts diff --git a/src/lib/utils/jaccardSim.ts b/src/lib/utils/jaccardSim.ts new file mode 100644 index 00000000..fa9385b3 --- /dev/null +++ b/src/lib/utils/jaccardSim.ts @@ -0,0 +1,16 @@ +const computeJaccardSimilarity = (a: string, b: string): number => { + const wordsA = a.toLowerCase().split(/\W+/); + const wordsB = b.toLowerCase().split(/\W+/); + + const setA = new Set(wordsA); + const setB = new Set(wordsB); + + if (setA.size === 0 || setB.size === 0) return 0; + + const union = setA.union(setB); + const intersections = setA.intersection(setB); + + return intersections.size / union.size; +}; + +export default computeJaccardSimilarity;