Class: Mitie::BinaryRelationTrainer

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

Instance Method Summary collapse

Constructor Details

#initialize(ner, name: "") ⇒ BinaryRelationTrainer

Returns a new instance of BinaryRelationTrainer.



3
4
5
6
7
# File 'lib/mitie/binary_relation_trainer.rb', line 3

def initialize(ner, name: "")
  @pointer = FFI.mitie_create_binary_relation_trainer(name, ner.pointer)

  ObjectSpace.define_finalizer(self, self.class.finalize(@pointer))
end

Instance Method Details

#add_negative_binary_relation(tokens, range1, range2) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/mitie/binary_relation_trainer.rb', line 19

def add_negative_binary_relation(tokens, range1, range2)
  check_add(tokens, range1, range2)

  tokens_pointer = Utils.array_to_pointer(tokens)
  status = FFI.mitie_add_negative_binary_relation(@pointer, tokens_pointer, range1.begin, range1.size, range2.begin, range2.size)
  if status != 0
    raise Error, "Unable to add binary relation"
  end
end

#add_positive_binary_relation(tokens, range1, range2) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/mitie/binary_relation_trainer.rb', line 9

def add_positive_binary_relation(tokens, range1, range2)
  check_add(tokens, range1, range2)

  tokens_pointer = Utils.array_to_pointer(tokens)
  status = FFI.mitie_add_positive_binary_relation(@pointer, tokens_pointer, range1.begin, range1.size, range2.begin, range2.size)
  if status != 0
    raise Error, "Unable to add binary relation"
  end
end

#betaObject



29
30
31
# File 'lib/mitie/binary_relation_trainer.rb', line 29

def beta
  FFI.mitie_binary_relation_trainer_get_beta(@pointer)
end

#beta=(value) ⇒ Object

Raises:

  • (ArgumentError)


33
34
35
36
37
# File 'lib/mitie/binary_relation_trainer.rb', line 33

def beta=(value)
  raise ArgumentError, "beta must be greater than or equal to zero" unless value >= 0

  FFI.mitie_binary_relation_trainer_set_beta(@pointer, value)
end

#num_negative_examplesObject



51
52
53
# File 'lib/mitie/binary_relation_trainer.rb', line 51

def num_negative_examples
  FFI.mitie_binary_relation_trainer_num_negative_examples(@pointer)
end

#num_positive_examplesObject



47
48
49
# File 'lib/mitie/binary_relation_trainer.rb', line 47

def num_positive_examples
  FFI.mitie_binary_relation_trainer_num_positive_examples(@pointer)
end

#num_threadsObject



39
40
41
# File 'lib/mitie/binary_relation_trainer.rb', line 39

def num_threads
  FFI.mitie_binary_relation_trainer_get_num_threads(@pointer)
end

#num_threads=(value) ⇒ Object



43
44
45
# File 'lib/mitie/binary_relation_trainer.rb', line 43

def num_threads=(value)
  FFI.mitie_binary_relation_trainer_set_num_threads(@pointer, value)
end

#trainObject

Raises:



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/mitie/binary_relation_trainer.rb', line 55

def train
  if num_positive_examples + num_negative_examples == 0
    raise Error, "You can't call train() on an empty trainer"
  end

  detector = FFI.mitie_train_binary_relation_detector(@pointer)

  raise Error, "Unable to create binary relation detector. Probably ran out of RAM." if detector.null?

  Mitie::BinaryRelationDetector.new(pointer: detector)
end