Class: Rubykov::TextGenerator
Instance Method Summary
collapse
Methods inherited from MarkovModel
#chain, #chain_with_seed, #states, #transitions
Constructor Details
#initialize(order, training_text) ⇒ TextGenerator
Returns a new instance of TextGenerator.
3
4
5
|
# File 'lib/rubykov/text_generator.rb', line 3
def initialize(order, training_text)
super(order, massage_training_text(training_text))
end
|
Instance Method Details
#character_limited_output(desired_length) ⇒ Object
11
12
13
14
|
# File 'lib/rubykov/text_generator.rb', line 11
def character_limited_output(desired_length)
length = 0
words_to_sentences(chain.take_while { |word| length += (word.length + 1); length < desired_length } )
end
|
#sentence_limited_output(desired_length) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/rubykov/text_generator.rb', line 20
def sentence_limited_output(desired_length)
length = 0
output = []
while length < desired_length
output += chain.take_while do |word|
length += 1 if is_sentence_finisher?(word)
length < desired_length
end
end
words_to_sentences(output)
end
|
#train(training_text) ⇒ Object
7
8
9
|
# File 'lib/rubykov/text_generator.rb', line 7
def train(training_text)
super(massage_training_text(training_text))
end
|
#word_limited_output(desired_length) ⇒ Object
16
17
18
|
# File 'lib/rubykov/text_generator.rb', line 16
def word_limited_output(desired_length)
words_to_sentences(chain.take(desired_length))
end
|