Created
March 12, 2017 14:11
-
-
Save themistoklik/4203bb184617c66512b5fdbd49e4d0cc to your computer and use it in GitHub Desktop.
dereftroubles
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (ns freq-seq-enum) | |
| (def fs (atom #{})) | |
| (defn locally-frequents | |
| [sdb min-sup] | |
| (let [uniq-sdb (map (comp frequencies set) sdb) | |
| freqs (apply merge-with + uniq-sdb)] | |
| (->> freqs | |
| (filter #(<= min-sup (second %))) | |
| (map #(vector (str (first %)) (second %)))))) | |
| (defn project-sdb | |
| [sdb prefix] | |
| (if (empty? prefix) sdb | |
| (into [] (->> sdb | |
| (filter #(re-find (re-pattern (str (last prefix))) %)) | |
| (map #(subs % (inc (.indexOf % (str (last prefix)))))) | |
| (remove empty?))))) | |
| (defn freq-seq | |
| [sdb prefix prefix-support min-sup frequent-seqs] | |
| (if ((complement empty?) prefix) (swap! fs conj [prefix prefix-support])) | |
| (let [lf (locally-frequents sdb min-sup)] | |
| (if (empty? lf) nil | |
| (for [[item sup] lf] (freq-seq (project-sdb sdb (str prefix item)) (str prefix item) sup min-sup @fs))))) | |
| (defn mine-freq-seqs | |
| [sdb min-sup] | |
| (freq-seq sdb "" 0 min-sup @fs)) | |
| (mine-freq-seqs ["CAABC" "ABCB" "CABC" "ABBCA"] 2) | |
| (deref fs) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment