class Sastrawi::Stemmer::Context::Visitor::PrefixDisambiguator

Attributes

disambiguators[R]

Public Class Methods

new(disambiguators = []) click to toggle source
# File lib/sastrawi/stemmer/context/visitor/prefix_disambiguator.rb, line 8
def initialize(disambiguators = [])
  @disambiguators = []

  add_disambiguators(disambiguators)
end

Public Instance Methods

add_disambiguator(disambiguator) click to toggle source
# File lib/sastrawi/stemmer/context/visitor/prefix_disambiguator.rb, line 39
def add_disambiguator(disambiguator)
  @disambiguators.push(disambiguator)
end
add_disambiguators(disambiguators) click to toggle source
# File lib/sastrawi/stemmer/context/visitor/prefix_disambiguator.rb, line 33
def add_disambiguators(disambiguators)
  disambiguators.each do |disambiguator|
    add_disambiguator(disambiguator)
  end
end
visit(context) click to toggle source
# File lib/sastrawi/stemmer/context/visitor/prefix_disambiguator.rb, line 14
def visit(context)
  result = nil

  @disambiguators.each do |disambiguator|
    result = disambiguator.disambiguate(context.current_word)

    break if context.dictionary.contains?(result)
  end

  return if result.nil?

  removed_part = context.current_word.sub(/#{Regexp.quote(result)}/, '')

  removal = Removal.new(self, context.current_word, result, removed_part, 'DP')

  context.add_removal(removal)
  context.current_word = result
end