Class: MarkovRensa::Generator

Inherits:
Object
  • Object
show all
Includes:
Mem
Defined in:
lib/markov_rensa/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#orderObject (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

#sentenceObject



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