class NaiveBayes::Backend::Redis

Public Class Methods

new(categories, options={}) click to toggle source
# File lib/nb/backend/redis.rb, line 46
def initialize(categories, options={})
  @redis = ::Redis.new(options)

  @_categories = categories

  setup
end

Public Instance Methods

categories() click to toggle source
# File lib/nb/backend/redis.rb, line 54
def categories
  @redis.smembers("nb:set:categories").map(&:to_sym)
end
categories_count() click to toggle source
# File lib/nb/backend/redis.rb, line 58
def categories_count
  @categories_count ||= RedisHash.new(@redis, "nb:hash:categories_count")
end
clear!() click to toggle source
# File lib/nb/backend/redis.rb, line 66
def clear!
  @redis.flushall

  setup

  categories.each do |category|
    self.categories_count[category] = 0
  end
end
setup() click to toggle source
# File lib/nb/backend/redis.rb, line 76
def setup
  @redis.sadd "nb:set:categories", @_categories

  categories.each do |category|
    # @tokens_count[category] = Hash.new(0)
    self.tokens_count[category] = RedisHash.new(@redis, "nb:hash:tokens_count:#{category}")
  end
end
tokens_count() click to toggle source
# File lib/nb/backend/redis.rb, line 62
def tokens_count
  @tokens_count ||= Hash.new
end
train(category, *tokens) click to toggle source
# File lib/nb/backend/redis.rb, line 85
def train(category, *tokens)
  tokens.uniq.each do |token|
    self.tokens_count[category].incr(token)
  end

  self.categories_count.incr(category)
end
untrain(category, *tokens) click to toggle source
# File lib/nb/backend/redis.rb, line 93
def untrain(category, *tokens)
  tokens.uniq.each do |token|
    self.tokens_count[category][token].decr(token)
  end

  self.categories_count.decr(category)
end