org.apache.lucene.analysis.pt

## Class RSLPStemmerBase

- java.lang.Object
- - org.apache.lucene.analysis.pt.RSLPStemmerBase

- Direct Known Subclasses:
    GalicianMinimalStemmer, GalicianStemmer, PortugueseMinimalStemmer, PortugueseStemmer

      public abstract class RSLPStemmerBase
      extends Object

  Base class for stemmers that use a set of RSLP-like stemming steps.

  RSLP (Removedor de Sufixos da Lingua Portuguesa) is an algorithm designed originally for stemming the Portuguese language, described in the paper A Stemming Algorithm for the Portuguese Language, Orengo et. al.

  Since this time a plural-only modification (RSLP-S) as well as a modification for the Galician language have been implemented. This class parses a configuration file that describes `RSLPStemmerBase.Step`s, where each Step contains a set of `RSLPStemmerBase.Rule`s.

  The general rule format is:

  > { "suffix", N, "replacement", { "exception1", "exception2", ...}}

  where:
  - `suffix` is the suffix to be removed (such as "inho").
  - `N` is the min stem size, where stem is defined as the candidate stem after removing the suffix (but before appending the replacement!)
  - `replacement` is an optimal string to append after removing the suffix. This can be the empty string.
  - `exceptions` is an optional list of exceptions, patterns that should not be stemmed. These patterns can be specified as whole word or suffix (ends-with) patterns, depending upon the exceptions format flag in the step header.

  A step is an ordered list of rules, with a structure in this format:

  > { "name", N, B, { "cond1", "cond2", ... } ... rules ... };

  where:
  - `name` is a name for the step (such as "Plural").
  - `N` is the min word size. Words that are less than this length bypass the step completely, as an optimization. Note: N can be zero, in this case this implementation will automatically calculate the appropriate value from the underlying rules.
  - `B` is a "boolean" flag specifying how exceptions in the rules are matched. A value of 1 indicates whole-word pattern matching, a value of 0 indicates that exceptions are actually suffixes and should be matched with ends-with.
  - `conds` are an optional list of conditions to enter the step at all. If the list is non-empty, then a word must end with one of these conditions or it will bypass the step completely as an optimization.
  See Also:
    RSLP description
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `RSLPStemmerBase.Rule` A basic rule, with no exceptions.
    `protected static class` | `RSLPStemmerBase.RuleWithSetExceptions` A rule with a set of whole-word exceptions.
    `protected static class` | `RSLPStemmerBase.RuleWithSuffixExceptions` A rule with a set of exceptional suffixes.
    `protected static class` | `RSLPStemmerBase.Step` A step containing a list of rules.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RSLPStemmerBase()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static Map<String,RSLPStemmerBase.Step>` | `parse(Class<? extends RSLPStemmerBase> clazz, String resource)` Parse a resource file into an RSLP stemmer description.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RSLPStemmerBase

          public RSLPStemmerBase()

  - ### Method Detail

    - #### parse

          protected static Map<String,RSLPStemmerBase.Step> parse(Class<? extends RSLPStemmerBase> clazz,
                                                                  String resource)

      Parse a resource file into an RSLP stemmer description.
      Returns:
        a Map containing the named Steps in this description.

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.