Class: MarkovRensa::Generator
- Inherits:
-
Object
- Object
- MarkovRensa::Generator
- Includes:
- Mem
- Defined in:
- lib/markov_rensa/generator.rb
Instance Attribute Summary collapse
-
#order ⇒ Object
readonly
Returns the value of attribute order.
Instance Method Summary collapse
- #add_string(string) ⇒ Object
-
#initialize(order = 1) ⇒ Generator
constructor
A new instance of Generator.
- #sentence ⇒ Object
- #sentences(n = 1) ⇒ Object
Constructor Details
#initialize(order = 1) ⇒ Generator
Returns a new instance of Generator.
9 10 11 |
# File 'lib/markov_rensa/generator.rb', line 9 def initialize(order=1) @order = order end |
Instance Attribute Details
#order ⇒ Object (readonly)
Returns the value of attribute order.
7 8 9 |
# File 'lib/markov_rensa/generator.rb', line 7 def order @order end |
Instance Method Details
#add_string(string) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/markov_rensa/generator.rb', line 13 def add_string(string) sentences = split_sentence(string) sentences.each do |sentence| wakati = tagger.wakati(sentence) start_wards << wakati[0, order] until wakati.size < order + 1 do (wards[wakati[0, order]] ||= []) << wakati[order] wakati.shift end end sentences end |
#sentence ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/markov_rensa/generator.rb', line 27 def sentence sentence = (start_wards.sample || []) while nw = (wards[sentence[-order, order]] || []).sample sentence << nw end sentence.join('') end |
#sentences(n = 1) ⇒ Object
35 36 37 38 39 |
# File 'lib/markov_rensa/generator.rb', line 35 def sentences(n=1) n.times.map do sentence end end |