Class: EventMachine::EmailServer::Classifier

Inherits:
Object
  • Object
show all
Defined in:
lib/eventmachine/email_server/classifier.rb

Instance Method Summary collapse

Constructor Details

#initialize(datafile, categories, blocked_categories) ⇒ Classifier

Returns a new instance of Classifier.



8
9
10
11
12
13
14
15
16
17
# 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

Instance Method Details

#block?(email) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
32
33
34
# 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) ⇒ Object



24
25
26
# File 'lib/eventmachine/email_server/classifier.rb', line 24

def classify(email)
  @classifier.classify(email)
end

#train(category, email) ⇒ Object



19
20
21
22
# File 'lib/eventmachine/email_server/classifier.rb', line 19

def train(category, email)
  @classifier.train(category, email)
  @madeleine.take_snapshot
end