char16t / naive-bayes

Naive Bayes classifier

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

naive-bayes

Naive Bayes classifier for Clojure.

Usage example

(defn long-str [& strings]
  (clojure.string/join "\n" strings))

(def data
  (long-str
    "Иван Мужской"
    "Пётр Мужской"
    "Валерий Мужской"
    "Александр Мужской"
    "Алёна Женский"
    "Мария Женский"
    "Маргарита Женский"
    "Александра Женский"))

(def samples
  (->>
    (clojure.string/split-lines data)
    (map #(clojure.string/split % #"\s"))))

(defn get-features [sample]
  {:last-letter (last sample)
   :first-letter (first sample)
   :second-letter (second sample)})

(def features
  (->> samples
    (map (fn [w] [(get-features (first w)) (second w)]))))

(def classifier
  (train features))

(println
  (classify classifier (get-features "Агафья")))
;; => Женский

License

MIT

About

Naive Bayes classifier

License:MIT License


Languages

Language:Clojure 100.0%