def next_word(word,randomizer=@randomizer)
    return if !markov_chains[word]
    sum = @markov_weighted_sum[word]
    random = randomizer.rand(sum)+1
    partial_sum = 0
    (markov_chains[word].find do |w, count|
      partial_sum += count
      w!=word && partial_sum >= random
    end||[]).first
  end
def next_word(word,randomizer=@randomizer)
    return if !markov_chains[word]
    sum = @markov_weighted_sum[word]
    random = randomizer.rand(sum)+1
    partial_sum = 0
    (markov_chains[word].find do |w, count|
      partial_sum += count
      w!=word && partial_sum >= random
    end||[]).first
  end
Initialize a new instance.

 Options:

 * :randomizer => Random.new # must respond to #rand(limit)
 * :source_parser => SourceParser.new options
 Given a word, return a weighted-randomly selected next-one.