Class: FetchGenerator::Generate_Fetch

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

Class Method Summary collapse

Class Method Details

.agentObject

Create a decision tree for determining the agent.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/FetchGenerator.rb', line 34

def self.agent
  require "decisiontree"

  input = File.read("input/agent.txt").strip.to_i

  attribute = ["Agent"]

  training  = [
    [ 20.0, "Sarah, "], [ 40.0, "John, "], [ 60.0, "Mary, "],
    [ 80.0, "Holly, "], [100.0, "Cora, "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train
 
  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_agent = decision
end

.for_fromObject

Create a decision tree determining for or from.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/FetchGenerator.rb', line 113

def self.for_from
  require "decisiontree"

  input = File.read("input/for_from.txt").strip.to_i

  attribute = ["For_From"]

  training  = [
    [ 50.0,  "for "], [100.0, "from "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_for_from = decision
end

.generate_exampleObject



185
186
187
188
189
190
191
192
# File 'lib/FetchGenerator.rb', line 185

def self.generate_example
  open("data/examples.txt", "w") { |f|
    f.print $do_greeting; f.print    $do_agent;
    f.print  $do_request; f.print     $do_item;
    f.print $do_for_from; f.print $do_neighbor;
    f.puts     $do_place;
  }
end

.greetingObject

Create a decision tree for determining greeting.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/FetchGenerator.rb', line 9

def self.greeting
  require "decisiontree"

  input = File.read("input/greeting.txt").strip.to_i

  attribute = ["Greeter"]

  training  = [
    [ 14.3, "Hello "], [ 28.6,   "Hey "], [ 42.9,  "Heyo "],
    [ 57.2,    "Hi "], [ 71.5,  "Ahoy "], [ 85.8,  "Hola "],
    [100.1,   "Ola "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_greeting = decision
end

.itemObject

Create a decision tree for determining the item.



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/FetchGenerator.rb', line 83

def self.item
  require "decisiontree"

  input = File.read("input/item.txt").strip.to_i

  attribute = ["Item"]

  training  = [
    [  6.25,    "some books "], [ 12.50,  "some clothes "],
    [ 18.75,     "some food "], [ 25.0,    "some coffee "],
    [ 31.25,      "some sex "], [ 37.50,     "some beer "],
    [ 43.75,      "some ham "], [ 50.0,      "some eggs "],
    [ 56.25,     "some milk "], [ 62.5,   "some lettuce "],
    [ 68.75,  "some carrots "], [ 75.0,   "some peppers "],
    [ 81.25,   "some onions "], [ 87.5,  "some broccoli "],
    [ 93.75, "some eggplant "], [100.0,  "some potatoes "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_item = decision
end

.neighborObject

Create a decision tree determing which neighbor’s place.



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/FetchGenerator.rb', line 136

def self.neighbor
  require "decisiontree"

  input = File.read("input/item.txt").strip.to_i

  attribute = ["Neighbor"]

  training  = [
    [20.0, "Sarah's "], [40.0, "John's "], [60.0, "Mary's "],
    [80.0, "Holly's "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_neighbor = decision
end

.placeObject

Creates a decision tree determining which place is being referred.



160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/FetchGenerator.rb', line 160

def self.place
  require "decisiontree"

  input = File.read("input/item.txt").strip.to_i

  attribute = ["Greeter"]

  training  = [
    [  9.10,      "garage."], [ 18.20, "living room."], [27.30, "dining room."],
    [ 36.40,     "kitchen."], [ 45.46,     "bedroom."], [55.0,     "backyard."],
    [ 64.0,       "church."], [ 73.0,       "arcade."], [82.0,      "theater."],
    [ 91.0,      "grocery."], [100.0,      "hardware"],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_place = decision
end

.requestObject

Create a decision tree for determining the request.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/FetchGenerator.rb', line 58

def self.request
  require "decisiontree"

  input = File.read("input/request.txt").strip.to_i

  attribute = ["Request"]

  training  = [
    [ 20.0,    "can I have "], [ 40.0, "will I have "],
    [ 60.0,     "can I get "], [ 80.0, "will I get  "],
    [100.0,    "may I have "], [120.0,   "may I get "],
  ]

  dec_tree = DecisionTree::ID3Tree.new(attribute, training, 1, :continuous)
  dec_tree.train

  test = [input]

  decision  = dec_tree.predict(test)
  actuality = test.last

  $do_request = decision
end

.use_examplesObject



194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/FetchGenerator.rb', line 194

def self.use_examples
  require "gabbler"
  require "espeak"

  gabbler = Gabbler.new

  data = File.read("data/examples.txt")

  gabbler.learn(data)

  phrase = gabbler.sentence

  speech = ESpeak::Speech.new(phrase)
  speech.speak
end