Class: Mitie::NER
- Inherits:
-
Object
- Object
- Mitie::NER
- Defined in:
- lib/mitie/ner.rb
Instance Attribute Summary collapse
-
#pointer ⇒ Object
readonly
Returns the value of attribute pointer.
Class Method Summary collapse
Instance Method Summary collapse
- #doc(text) ⇒ Object
- #entities(text) ⇒ Object
-
#initialize(path = nil, pointer: nil) ⇒ NER
constructor
A new instance of NER.
- #save_to_disk(filename) ⇒ Object
- #tags ⇒ Object
- #tokens(text) ⇒ Object
- #tokens_with_offset(text) ⇒ Object
Constructor Details
#initialize(path = nil, pointer: nil) ⇒ NER
Returns a new instance of NER.
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/mitie/ner.rb', line 5 def initialize(path = nil, pointer: nil) if path # better error message raise ArgumentError, "File does not exist" unless File.exist?(path) @pointer = FFI.mitie_load_named_entity_extractor(path) elsif pointer @pointer = pointer else raise ArgumentError, "Must pass either a path or a pointer" end ObjectSpace.define_finalizer(self, self.class.finalize(@pointer)) end |
Instance Attribute Details
#pointer ⇒ Object (readonly)
Returns the value of attribute pointer.
3 4 5 |
# File 'lib/mitie/ner.rb', line 3 def pointer @pointer end |
Class Method Details
.finalize(pointer) ⇒ Object
48 49 50 51 |
# File 'lib/mitie/ner.rb', line 48 def self.finalize(pointer) # must use proc instead of stabby lambda proc { FFI.mitie_free(pointer) } end |
Instance Method Details
#doc(text) ⇒ Object
25 26 27 |
# File 'lib/mitie/ner.rb', line 25 def doc(text) Document.new(self, text) end |
#entities(text) ⇒ Object
29 30 31 |
# File 'lib/mitie/ner.rb', line 29 def entities(text) doc(text).entities end |
#save_to_disk(filename) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/mitie/ner.rb', line 33 def save_to_disk(filename) if FFI.mitie_save_named_entity_extractor(filename, pointer) != 0 raise Error, "Unable to save model" end nil end |
#tags ⇒ Object
19 20 21 22 23 |
# File 'lib/mitie/ner.rb', line 19 def FFI.(pointer).times.map do |i| FFI.(pointer, i).to_s end end |
#tokens(text) ⇒ Object
40 41 42 |
# File 'lib/mitie/ner.rb', line 40 def tokens(text) doc(text).tokens end |
#tokens_with_offset(text) ⇒ Object
44 45 46 |
# File 'lib/mitie/ner.rb', line 44 def tokens_with_offset(text) doc(text).tokens_with_offset end |