15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/finmodeling/has_string_classifer.rb', line 15
def _load_vectors_and_train(base_filename, vectors)
FileUtils.mkdir_p(File.dirname(base_filename)) if !File.exists?(File.dirname(base_filename))
success = FinModeling::Config.caching_enabled?
@klasses.each do |cur_klass|
filename = base_filename + cur_klass.to_s + ".db"
success = success && File.exists?(filename)
if success
@classifiers[cur_klass] = NaiveBayes.load(filename)
else
@classifiers[cur_klass].db_filepath = filename
end
end
return if success
vectors.each do |vector|
begin
item = @item_klass.new(vector[:item_string])
item.train(vector[:klass])
rescue Exception => e
puts "\"#{vector[:item_string]}\" has a bogus klass: \"#{vector[:klass]}\""
puts "\t" + e.message
puts "\t" + e.backtrace.inspect.gsub(/, /, "\n\t ")
end
end
@klasses.each do |cur_klass|
@classifiers[cur_klass].save
end
end
|