Class: LangExtract::Core::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/langextract/core/resolver.rb

Overview

Resolves model extraction text to exact or fuzzy source intervals.

Defined Under Namespace

Classes: FuzzySourceContext

Constant Summary collapse

DEFAULT_FUZZY_THRESHOLD =
0.78
DEFAULT_MIN_COVERAGE =
0.70
DEFAULT_MIN_DENSITY =
0.50
MAX_FUZZY_RANGE_TOKENS =
20_000

Instance Method Summary collapse

Constructor Details

#initialize(text:, tokenizer: UnicodeTokenizer.new, fuzzy_threshold: DEFAULT_FUZZY_THRESHOLD, allow_overlaps: false, suppress_alignment_errors: true, min_coverage: DEFAULT_MIN_COVERAGE, min_density: DEFAULT_MIN_DENSITY) ⇒ Resolver

Returns a new instance of Resolver.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/langextract/core/resolver.rb', line 19

def initialize(text:, tokenizer: UnicodeTokenizer.new, fuzzy_threshold: DEFAULT_FUZZY_THRESHOLD,
               allow_overlaps: false, suppress_alignment_errors: true,
               min_coverage: DEFAULT_MIN_COVERAGE, min_density: DEFAULT_MIN_DENSITY)
  @text = text
  @tokenizer = tokenizer
  @fuzzy_threshold = fuzzy_threshold
  @allow_overlaps = allow_overlaps
  @suppress_alignment_errors = suppress_alignment_errors
  @min_coverage = min_coverage
  @min_density = min_density
  @tokens = tokenizer.tokenize(text)
  @fuzzy_token_stream = FuzzyTokenStream.new(tokens)
  @fuzzy_contexts = {}
end

Instance Method Details

#resolve(items, document_id: nil, preferred_interval: nil) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/langextract/core/resolver.rb', line 34

def resolve(items, document_id: nil, preferred_interval: nil)
  occupied = []

  items.map.with_index do |item, index|
    resolve_one(item, index, document_id, preferred_interval, occupied)
  end
end