;; ------------------------- DICE COEFFS ------------------------
(defn dice-set-coeff [a b]
(* (/ (count (clojure.set/intersection a b))
(+ (count a) (count b)))
2))
(defn dice-lst-coeff [a b]
(dice-set-coeff (set a) (set b)))
;; ------------------------- BIGRAMS ----------------------------
(defn now-nxt [xs]
"im sure there is a better way to write this"
(map #(list %1 %2) xs (rest xs)))
(defn bigram [xs]
(list now-nxt xs))
(defn dice-string-bigram [a b]
(dice-lst-coeff (bigram a) (bigram b)))
为什么我在结果中得到 1N?
tst.core> (dice-string-bigram "hello" "hello")
1N
tst.core> (dice-string-bigram "hello" "helap")
1/2
tst.core> (dice-string-bigram "hello" "howdy")
0
tst.core> (== (dice-string-bigram "hello" "hello") 1)
true