Class: Mitie::NERTrainer

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ NERTrainer

Returns a new instance of NERTrainer.

Raises:

  • (ArgumentError)


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

def initialize(filename)
  raise ArgumentError, "File does not exist" unless File.exist?(filename)
  @pointer = FFI.mitie_create_ner_trainer(filename)

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

Class Method Details

.finalize(pointer) ⇒ Object



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

def self.finalize(pointer)
  # must use proc instead of stabby lambda
  proc { FFI.mitie_free(pointer) }
end

Instance Method Details

#add(instance) ⇒ Object



10
11
12
# File 'lib/mitie/ner_trainer.rb', line 10

def add(instance)
  FFI.mitie_add_ner_training_instance(@pointer, instance.pointer)
end

#betaObject



14
15
16
# File 'lib/mitie/ner_trainer.rb', line 14

def beta
  FFI.mitie_ner_trainer_get_beta(@pointer)
end

#beta=(value) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
# File 'lib/mitie/ner_trainer.rb', line 18

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

  FFI.mitie_ner_trainer_set_beta(@pointer, value)
end

#num_threadsObject



24
25
26
# File 'lib/mitie/ner_trainer.rb', line 24

def num_threads
  FFI.mitie_ner_trainer_get_num_threads(@pointer)
end

#num_threads=(value) ⇒ Object



28
29
30
# File 'lib/mitie/ner_trainer.rb', line 28

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

#sizeObject



32
33
34
# File 'lib/mitie/ner_trainer.rb', line 32

def size
  FFI.mitie_ner_trainer_size(@pointer)
end

#trainObject

Raises:



36
37
38
39
40
41
42
43
44
# File 'lib/mitie/ner_trainer.rb', line 36

def train
  raise Error, "You can't call train() on an empty trainer" if size.zero?

  extractor = FFI.mitie_train_named_entity_extractor(@pointer)

  raise Error, "Unable to create named entity extractor. Probably ran out of RAM." if extractor.null?

  Mitie::NER.new(pointer: extractor)
end