Class PhoneticEngine

java.lang.Object
org.apache.commons.codec.language.bm.PhoneticEngine

public class PhoneticEngine extends Object
Converts words into potential phonetic representations.

This is a two-stage process. Firstly, the word is converted into a phonetic representation that takes into account the likely source language. Next, this phonetic representation is converted into a pan-European 'average' representation, allowing comparison between different versions of essentially the same word from different languages.

This class is intentionally immutable and thread-safe. If you wish to alter the settings for a PhoneticEngine, you must make a new one with the updated settings.

Ported from phoneticengine.php

Since:
1.6
  • Field Details

    • DEFAULT_MAX_PHONEMES

      private static final int DEFAULT_MAX_PHONEMES
      See Also:
    • NAME_PREFIXES

      private static final Map<NameType,Set<String>> NAME_PREFIXES
    • lang

      private final Lang lang
    • nameType

      private final NameType nameType
    • ruleType

      private final RuleType ruleType
    • concat

      private final boolean concat
    • maxPhonemes

      private final int maxPhonemes
  • Constructor Details

    • PhoneticEngine

      public PhoneticEngine(NameType nameType, RuleType ruleType, boolean concat)
      Generates a new, fully-configured phonetic engine.
      Parameters:
      nameType - the type of names it will use
      ruleType - the type of rules it will apply
      concat - if it will concatenate multiple encodings
    • PhoneticEngine

      public PhoneticEngine(NameType nameType, RuleType ruleType, boolean concat, int maxPhonemes)
      Generates a new, fully-configured phonetic engine.
      Parameters:
      nameType - the type of names it will use
      ruleType - the type of rules it will apply
      concat - if it will concatenate multiple encodings
      maxPhonemes - the maximum number of phonemes that will be handled
      Since:
      1.7
  • Method Details

    • join

      private static String join(List<String> strings, String sep)
      Joins some strings with an internal separator.
      Parameters:
      strings - Strings to join
      sep - String to separate them with
      Returns:
      a single String consisting of each element of strings interleaved by sep
    • applyFinalRules

      private PhoneticEngine.PhonemeBuilder applyFinalRules(PhoneticEngine.PhonemeBuilder phonemeBuilder, Map<String,List<Rule>> finalRules)
      Applies the final rules to convert from a language-specific phonetic representation to a language-independent representation.
      Parameters:
      phonemeBuilder - the current phonemes
      finalRules - the final rules to apply
      Returns:
      the resulting phonemes
    • encode

      public String encode(String input)
      Encodes a string to its phonetic representation.
      Parameters:
      input - the String to encode
      Returns:
      the encoding of the input
    • encode

      public String encode(String input, Languages.LanguageSet languageSet)
      Encodes an input string into an output phonetic representation, given a set of possible origin languages.
      Parameters:
      input - String to phoneticise; a String with dashes or spaces separating each word
      languageSet - set of possible origin languages
      Returns:
      a phonetic representation of the input; a String containing '-'-separated phonetic representations of the input
    • getLang

      public Lang getLang()
      Gets the Lang language guessing rules being used.
      Returns:
      the Lang in use
    • getNameType

      public NameType getNameType()
      Gets the NameType being used.
      Returns:
      the NameType in use
    • getRuleType

      public RuleType getRuleType()
      Gets the RuleType being used.
      Returns:
      the RuleType in use
    • isConcat

      public boolean isConcat()
      Gets if multiple phonetic encodings are concatenated or if just the first one is kept.
      Returns:
      true if multiple phonetic encodings are returned, false if just the first is
    • getMaxPhonemes

      public int getMaxPhonemes()
      Gets the maximum number of phonemes the engine will calculate for a given input.
      Returns:
      the maximum number of phonemes
      Since:
      1.7