Class LanguageProfileImpl

java.lang.Object
com.optimaize.langdetect.profiles.LanguageProfileImpl
All Implemented Interfaces:
LanguageProfile

public final class LanguageProfileImpl extends Object implements LanguageProfile

This class is immutable.

  • Field Details

  • Constructor Details

  • Method Details

    • makeStats

      private static LanguageProfileImpl.Stats makeStats(Map<Integer,Map<String,Integer>> ngrams)
    • getLocale

      @NotNull public @NotNull LdLocale getLocale()
      Specified by:
      getLocale in interface LanguageProfile
    • getGramLengths

      @NotNull public @NotNull List<Integer> getGramLengths()
      Description copied from interface: LanguageProfile
      Tells what the n in n-grams are used here. Example: [1,2,3]
      Specified by:
      getGramLengths in interface LanguageProfile
      Returns:
      Sorted from smaller to larger.
    • getFrequency

      public int getFrequency(String gram)
      Specified by:
      getFrequency in interface LanguageProfile
      Parameters:
      gram - for example "a" or "foo".
      Returns:
      0-n, also zero if this profile does not use n-grams of that length (for example if no 4-grams are made).
    • getNumGrams

      public int getNumGrams(int gramLength)
      Description copied from interface: LanguageProfile
      Tells how many different n-grams there are for a certain n-gram size. For example the English language has about 57 different 1-grams, whereas Chinese in Hani has thousands.
      Specified by:
      getNumGrams in interface LanguageProfile
      Parameters:
      gramLength - 1-n
      Returns:
      0-n, returns zero if no such n-grams were made (for example if no 4-grams were made), or if all the training text did not contain such long words.
    • getNumGrams

      public int getNumGrams()
      Description copied from interface: LanguageProfile
      Tells how many n-grams there are for all n-gram sizes combined.
      Specified by:
      getNumGrams in interface LanguageProfile
      Returns:
      0-n (0 only on an empty profile...)
    • getNumGramOccurrences

      public long getNumGramOccurrences(int gramLength)
      Description copied from interface: LanguageProfile
      Tells how often all n-grams of a certain length occurred, combined. This returns a much larger number than LanguageProfile.getNumGrams(int).
      Specified by:
      getNumGramOccurrences in interface LanguageProfile
      Parameters:
      gramLength - 1-n
      Returns:
      0-n, returns zero if no such n-grams were made (for example if no 4-grams were made), or if all the training text did not contain such long words.
    • getMinGramCount

      public long getMinGramCount(int gramLength)
      Description copied from interface: LanguageProfile
      Tells how often the n-gram with the lowest amount of occurrences used in this profile occurred. Most likely there were n-grams with less (unless the returned number is 1), but they were eliminated in order to keep the profile reasonably small. This is the opposite of getMaxGramCount().
      Specified by:
      getMinGramCount in interface LanguageProfile
      Parameters:
      gramLength - 1-n
      Returns:
      0-n, returns zero if no such n-grams were made or existed.
    • getMaxGramCount

      public long getMaxGramCount(int gramLength)
      Description copied from interface: LanguageProfile
      Tells how often the n-gram with the highest amount of occurrences used in this profile occurred. This is the opposite of getMinGramCount().
      Specified by:
      getMaxGramCount in interface LanguageProfile
      Parameters:
      gramLength - 1-n
      Returns:
      0-n, returns zero if no such n-grams were made or existed.
    • iterateGrams

      @NotNull public @NotNull Iterable<Map.Entry<String,Integer>> iterateGrams()
      Description copied from interface: LanguageProfile
      Iterates all ngram strings with frequency.
      Specified by:
      iterateGrams in interface LanguageProfile
    • iterateGrams

      @NotNull public @NotNull Iterable<Map.Entry<String,Integer>> iterateGrams(int gramLength)
      Description copied from interface: LanguageProfile
      Iterates all gramLength-gram strings with frequency.
      Specified by:
      iterateGrams in interface LanguageProfile
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object