             :backwardtable
                 (update-table (:backwardtable state) (reverse words))
             :n-grams
-                (update-ngrams (:n-grams state) words))))
+                (update-ngrams (:n-grams state) (remove keyword? words)))))
 (defn log-sentence! [message]
     (with-open [out (writer corpus-file :append true)]
         (.write out (str message "\n"))))

(def empty-state {
    :forwardtable {}
    :backwardtable {}
    :n-grams []
})



            (reverse (take 500 (stream-of-shite (reverse seed) backward))))
        (take 500 (stream-of-shite seed forward))))

(defn extend-vec [v e n] (vec (concat v (take (- n (count v)) (repeat e)))))
(defn append-null [s] (join (concat (seq s) [(char 0)])))

(defn generate-sentence [state keywords]
    {
        :pre [(or (empty? keywords) (sorted? (:n-grams state)))]
    }
    (if (empty? keywords)
        (remove keyword? (map first
            (apply max-key #(count (filter true? (map second %)))
