class EventMachine::EmailServer::Classifier

Public Class Methods

new(datafile, categories, blocked_categories) click to toggle source
# File lib/eventmachine/email_server/classifier.rb, line 8
def initialize(datafile, categories, blocked_categories)
  @categories = categories || [:good, :bad]
  @blocked_categories = blocked_categories || [:bad]
  @categories.map! { |c| c.prepare_category_name.to_s }
  @blocked_categories.map! { |c| c.prepare_category_name.to_s }
  @madeleine = SnapshotMadeleine.new(datafile) {
      ::Classifier::Bayes.new(*categories)
  }
  @classifier = @madeleine.system
end

Public Instance Methods

block?(email) click to toggle source
# File lib/eventmachine/email_server/classifier.rb, line 28
def block?(email)
  c = classify(email)
  if @blocked_categories.index(c).nil?
    return false
  end
  true
end
classify(email) click to toggle source
# File lib/eventmachine/email_server/classifier.rb, line 24
def classify(email)
  @classifier.classify(email)
end
train(category, email) click to toggle source
# File lib/eventmachine/email_server/classifier.rb, line 19
def train(category, email)
  @classifier.train(category, email)
  @madeleine.take_snapshot
end