I've spent a couple of days trying to get LSI Classifer to work. The
Bayesian library works fine (and is fun), but LSI is not working for me.
I have the GSL installed and the ruby-gsl wrapper, which seem to be
working fine. However, I get the same error as mentioned in the previous
post. The error occurs as the 2nd item is added to the index. It occurs
somewhere within the rebuild_index procedure. If auto_index is switched
off, items can be added infinitum. Please help :S
#--------test script
require 'rubygems'
require 'gsl'
require 'classifier'
require 'stemmer'
lsi = Classifier::LSI.new
strings = [ ["This text deals with dogs. Dogs.", :dog],
["This text involves dogs too. Dogs! ", :dog],
["This text revolves around cats. Cats.", :cat],
["This text also involves cats. Cats!", :cat],
["This text involves birds. Birds.",:bird ]]
strings.each {|x| lsi.add_item x.first, x.last}
lsi.search("dog", 3)
# returns => ["This text deals with dogs. Dogs.", "This text involves
dogs too
Dogs! ",
# "This text also involves cats. Cats!"]
lsi.find_related(strings[2], 2)
# returns => ["This text revolves around cats. Cats.", "This text also
involve
s cats. Cats!"]
lsi.classify "This text is also about dogs!"
# returns => :dog
#--------error
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/extensions/string.rb:6:Warning:
require_gem is obsolete. Use gem instead.
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi/content_node.rb:37:in
`initialize': wrong number of arguments (1 for 0) (ArgumentError)
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi/content_node.rb:37:in
`new'
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi/content_node.rb:37:in
`raw_vector_with'
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi.rb:123:in
`build_index'
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi.rb:123:in
`collect'
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi.rb:123:in
`build_index'
from
/usr/lib/ruby/gems/1.8/gems/classifier-1.3.0/lib/classifier/lsi.rb:65:in
`add_item'
from lsitest.rb:12
from lsitest.rb:12:in `each'
from lsitest.rb:12
Dan