Class: Mitie::TextCategorizerTrainer
- Inherits:
-
Object
- Object
- Mitie::TextCategorizerTrainer
- Defined in:
- lib/mitie/text_categorizer_trainer.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(text, label) ⇒ Object
- #beta ⇒ Object
- #beta=(value) ⇒ Object
-
#initialize(filename) ⇒ TextCategorizerTrainer
constructor
A new instance of TextCategorizerTrainer.
- #num_threads ⇒ Object
- #num_threads=(value) ⇒ Object
- #size ⇒ Object
- #train ⇒ Object
Constructor Details
#initialize(filename) ⇒ TextCategorizerTrainer
Returns a new instance of TextCategorizerTrainer.
3 4 5 6 7 8 |
# 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) ObjectSpace.define_finalizer(self, self.class.finalize(@pointer)) end |
Class Method Details
.finalize(pointer) ⇒ Object
48 49 50 51 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 48 def self.finalize(pointer) # must use proc instead of stabby lambda proc { FFI.mitie_free(pointer) } end |
Instance Method Details
#add(text, label) ⇒ Object
10 11 12 13 14 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 10 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 |
#beta ⇒ Object
16 17 18 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 16 def beta FFI.mitie_text_categorizer_trainer_get_beta(@pointer) end |
#beta=(value) ⇒ Object
20 21 22 23 24 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 20 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_threads ⇒ Object
26 27 28 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 26 def num_threads FFI.mitie_text_categorizer_trainer_get_num_threads(@pointer) end |
#num_threads=(value) ⇒ Object
30 31 32 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 30 def num_threads=(value) FFI.mitie_text_categorizer_trainer_set_num_threads(@pointer, value) end |
#size ⇒ Object
34 35 36 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 34 def size FFI.mitie_text_categorizer_trainer_size(@pointer) end |
#train ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/mitie/text_categorizer_trainer.rb', line 38 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 |