Class: Mitie::TextCategorizerTrainer

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

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ TextCategorizerTrainer

Returns a new instance of TextCategorizerTrainer.

Raises:

  • (ArgumentError)


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

def initialize(filename)
  raise ArgumentError, "File does not exist" unless File.exist?(filename)
  @pointer = FFI.mitie_create_text_categorizer_trainer(+filename)
  @pointer.free = FFI["mitie_free"]
end

Instance Method Details

#add(text, label) ⇒ Object



9
10
11
12
13
# File 'lib/mitie/text_categorizer_trainer.rb', line 9

def add(text, label)
  tokens = text.is_a?(Array) ? text : Mitie.tokenize(text)
  tokens_pointer = Utils.array_to_pointer(tokens)
  FFI.mitie_add_text_categorizer_labeled_text(@pointer, tokens_pointer, +label)
end

#betaObject



15
16
17
# File 'lib/mitie/text_categorizer_trainer.rb', line 15

def beta
  FFI.mitie_text_categorizer_trainer_get_beta(@pointer)
end

#beta=(value) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
# File 'lib/mitie/text_categorizer_trainer.rb', line 19

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

  FFI.mitie_text_categorizer_trainer_set_beta(@pointer, value)
end

#num_threadsObject



25
26
27
# File 'lib/mitie/text_categorizer_trainer.rb', line 25

def num_threads
  FFI.mitie_text_categorizer_trainer_get_num_threads(@pointer)
end

#num_threads=(value) ⇒ Object



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

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

#sizeObject



33
34
35
# File 'lib/mitie/text_categorizer_trainer.rb', line 33

def size
  FFI.mitie_text_categorizer_trainer_size(@pointer)
end

#trainObject

Raises:



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

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

  categorizer = FFI.mitie_train_text_categorizer(@pointer)

  raise Error, "Unable to create text categorizer. Probably ran out of RAM." if categorizer.null?

  Mitie::TextCategorizer.new(pointer: categorizer)
end