class ClassifierReborn::CachedContentNode

Subclass of ContentNode which caches the search_vector transpositions. Its great because its much faster for large indexes, but at the cost of more ram. Additionally, if you Marshal your classifier and want to keep the size down, you'll need to manually clear the cache before you dump

Public Class Methods

new(word_hash, *categories) click to toggle source
Calls superclass method
# File lib/classifier-reborn/lsi/cached_content_node.rb, line 18
def initialize(word_hash, *categories)
  clear_cache!
  super
end

Public Instance Methods

clear_cache!() click to toggle source
# File lib/classifier-reborn/lsi/cached_content_node.rb, line 23
def clear_cache!
  @transposed_search_vector = nil
end
marshal_dump() click to toggle source

We don't want the cached_data here

# File lib/classifier-reborn/lsi/cached_content_node.rb, line 39
def marshal_dump
  [@lsi_vector, @lsi_norm, @raw_vector, @raw_norm, @categories, @word_hash]
end
marshal_load(array) click to toggle source
# File lib/classifier-reborn/lsi/cached_content_node.rb, line 43
def marshal_load(array)
  @lsi_vector, @lsi_norm, @raw_vector, @raw_norm, @categories, @word_hash = array
end
raw_vector_with(word_list) click to toggle source

Clear the cache before we continue on

Calls superclass method
# File lib/classifier-reborn/lsi/cached_content_node.rb, line 33
def raw_vector_with(word_list)
  clear_cache!
  super
end
transposed_search_vector() click to toggle source

Cache the transposed vector, it gets used a lot

Calls superclass method
# File lib/classifier-reborn/lsi/cached_content_node.rb, line 28
def transposed_search_vector
  @transposed_search_vector ||= super
end