-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
36 lines (24 loc) · 1020 Bytes
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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\n]" (str s "\n"))))
(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= "\n") (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.