Home > Markov-Chains

Markov-Chains

Markov-Chains is a project mainly written in Clojure, it's free.

Markov chain toy implemented in Clojure

Markov-Chains

Clojure library for playing with Markov chains.

Usage

(use '[ray1729.clojure.markov.core :only '(build-markov-model build-markov-chain)])

(defn tokenize-line [s] "Split a line into word characters and append a trailing newline to the sequence" (when (seq s) (re-seq #"[w ]" (str s " "))))

(defn tokenize-file [f] "Split lines that begin with a lower-case letter into their component letters" (with-open [r (reader f)] (doall (apply concat (map tokenize-line (filter #(re-seq #"^[a-z]" %) (line-seq r)))))))

;; Build a 3-letter prefix map of /usr/share/dict-words (def m (build-markov-model (tokenize-file "/usr/share/dict/words") 3))

;; Generate a random "word" using the prefix map (apply str (take-while (partial not= " ") (build-markov-chain m ["a" "b" "b"])))

Installation

git clone git://github.com/ray1729/Markov-Chains.git

License

Copyright (C) 2010 Ray Miller [email protected]

Distributed under the Eclipse Public License, the same as Clojure.