Class: MarkovChains::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/markov_chains/generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(text, order = 1) ⇒ Generator

Initializes the generator

Examples:

Create a new generator

MarkovChains::Generator.new(text)

Parameters:

  • Text

    source to generate sentences from



11
12
13
# File 'lib/markov_chains/generator.rb', line 11

def initialize(text, order = 1)
  @dict = MarkovChains::Dictionary.new(text, order)
end

Instance Method Details

#get_sentences(n) ⇒ Object

Returns a given number of randonly generated sentences

Examples:

Get 5 sentences

get_sentences(5)

Parameters:

  • n (int)

    number of sentences to generate

Returns:

  • Array conataining generated sentences



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/markov_chains/generator.rb', line 23

def get_sentences(n)
  sentences = []
  
  n.times do
    sentence = @dict.get_start_words
    
    while nw = @dict.get(sentence[-@dict.order, @dict.order])
      sentence << nw
    end
    
    sentences << (sentence[0...-1].join(" ").gsub(/\s([,;:])/, '\1') << sentence.last)
  end
  
  sentences
end