Class: Predicate

Inherits:
Object
  • Object
show all
Defined in:
lib/predicate.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pred_xml) ⇒ Predicate

Returns a new instance of Predicate.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/predicate.rb', line 8

def initialize(pred_xml)
  @pred_xml =  pred_xml.xpath('*')[0]

  @op = @pred_xml.xpath('@operator').to_s
  @bool_op = @pred_xml.xpath('@booleanOperator').to_s

  if !@op.empty?
    @pred = NumericalPredicate.new(@pred_xml)
  elsif !@bool_op.empty?
    @pred = CategoricalPredicate.new(@pred_xml)
  end

  @decision = pred_xml.xpath('@score').to_s
end

Instance Attribute Details

#decisionObject (readonly)

Returns the value of attribute decision.



6
7
8
# File 'lib/predicate.rb', line 6

def decision
  @decision
end

Instance Method Details

#fieldObject



27
28
29
# File 'lib/predicate.rb', line 27

def field
  @pred.field
end

#missing_feature?(features) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
41
42
# File 'lib/predicate.rb', line 38

def missing_feature?(features)
  return false if features.has_key? field
  RandomForester.logger.error "Missing feature #{field}"
  true
end

#nil_feature?(features) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
48
# File 'lib/predicate.rb', line 44

def nil_feature?(features)
  return false unless features[field].nil?
  RandomForester.logger.error "Feature #{field} value is nil"
  true
end

#to_sObject



23
24
25
# File 'lib/predicate.rb', line 23

def to_s
  @pred_xml.to_s
end

#true?(features) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
# File 'lib/predicate.rb', line 31

def true?(features)
  return true if @pred.nil?
  return if missing_feature?(features)
  return if nil_feature?(features)
  @pred.true?(features)
end