cardmagic/classifier

error in train method

OpenCoderX opened this issue · 1 comments

I'm trying to create a classifier using the cardmagic classifier gem. This is my code:

require 'classifier'

classifications = '1007.09', '1006.03'
traindata = Hash["1007.09" => "ADAPTER- SCREENING FOR VALVES VBS", "1006.03" => "ACTUATOR- LINEAR"]

b = Classifier::Bayes.new classifications

traindata.each do |key, value|
b.train(key, value)
end

But when I run this i get the following error:

Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/
c:/Ruby192/lib/ruby/gems/1.9.1/gems/classifier-1.3.3/lib/classifier/bayes.rb:27:in block in train': undefined method[]' for nil:NilClass (NoMethodError)
from c:/Ruby192/lib/ruby/gems/1.9.1/gems/classifier-1.3.3/lib/classifier/bayes.rb:26:in each' from c:/Ruby192/lib/ruby/gems/1.9.1/gems/classifier-1.3.3/lib/classifier/bayes.rb:26:intrain'
from C:/_Chris/Code/classifier/smdclasser.rb:13:in block in <main>' from C:/_Chris/Code/classifier/smdclasser.rb:11:ineach'
from C:/_Chris/Code/classifier/smdclasser.rb:11:in `

'

This is the source from the gem code:

Provides a general training method for all categories specified in Bayes#new
For example:
b = Classifier::Bayes.new 'This', 'That', 'the_other'
b.train :this, "This text"
b.train "that", "That text"
b.train "The other", "The other text"
def train(category, text)
category = category.prepare_category_name
text.word_hash.each do |word, count|
@categories[category][word] ||= 0
@categories[category][word] += count
@total_words += count
end
end

I am lost where to go to troubleshoot this error, what is the next step i should take?

I needed to splat my classifications