Method: Ariel::Learner#perfect?

Defined in:
lib/ariel/learner.rb

#perfect?(rule) ⇒ Boolean

A given rule is perfect if it successfully matches the label on at least one example and fails all others.

Returns:

  • (Boolean)


100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/ariel/learner.rb', line 100

def perfect?(rule)
  perfect_count=0
  fail_count=0
  @examples.each do |example|
    if rule.matches(example, :perfect)
      perfect_count+=1
    elsif rule.matches(example, :fail) 
      fail_count+=1
    end
  end
  if (perfect_count >= 1) && (fail_count == (@examples.size - perfect_count))
    return true
  else
    Log.debug "Rule was not perfect, perfect_count=#{perfect_count}, fail_count=#{fail_count}"
    return false
  end
end