Class: Spacy::Matcher

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-spacy.rb

Overview

See also spaCy Python API document for [Matcher](spacy.io/api/matcher).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nlp) ⇒ Matcher

Creates a Spacy::Matcher instance



682
683
684
# File 'lib/ruby-spacy.rb', line 682

def initialize(nlp)
  @py_matcher = PyMatcher.call(nlp.vocab)
end

Instance Attribute Details

#py_matcherObject (readonly)



678
679
680
# File 'lib/ruby-spacy.rb', line 678

def py_matcher
  @py_matcher
end

Instance Method Details

#add(text, pattern) ⇒ Object

Adds a label string and a text pattern.



689
690
691
# File 'lib/ruby-spacy.rb', line 689

def add(text, pattern)
  @py_matcher.add(text, pattern)
end

#match(doc) ⇒ Array<Hash{:match_id => Integer, :start_index => Integer, :end_index => Integer}>

Execute the match.



696
697
698
699
700
# File 'lib/ruby-spacy.rb', line 696

def match(doc)
  PyCall::List.call(@py_matcher.call(doc.py_doc)).map do |py_match|
    { match_id: py_match[0].to_i, start_index: py_match[1].to_i, end_index: py_match[2].to_i - 1 }
  end
end