class MarkovTextGenerator::Api::Model

Constants

CLEAN

Public Class Methods

new(knowledge = Knowledge.new) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 9
def initialize(knowledge = Knowledge.new)
  @knowledge = knowledge
end

Public Instance Methods

become_silly!() click to toggle source
# File lib/markov_text_generator/api/model.rb, line 28
def become_silly!
  @knowledge.clear!
end
predict_next_word_for(key) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 24
def predict_next_word_for(key)
  @knowledge.predict_next_word key
end
retrain(sentence) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 19
def retrain(sentence)
  become_silly!
  train sentence
end
train(sentence) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 13
def train(sentence)
  words = prepare_string(sentence).split
  list = process_data words
  @knowledge.train list
end

Private Instance Methods

prepare_string(sentence) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 41
def prepare_string(sentence)
  sentence.gsub CLEAN, ' '
end
process_data(collection) click to toggle source
# File lib/markov_text_generator/api/model.rb, line 34
def process_data(collection)
  list = make_linked_list
  collection.each_with_object(list) do |item, object|
    object.push item
  end
end