Class SymSpell
- java.lang.Object
-
- org.languagetool.rules.spelling.symspell.implementation.SymSpell
-
- All Implemented Interfaces:
java.io.Serializable
public class SymSpell extends java.lang.Object implements java.io.Serializable
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
SymSpell.SegmentedSuggestion
static class
SymSpell.Verbosity
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.Long>
belowThresholdWords
private int
compactMask
private long
countThreshold
private static int
defaultCompactLevel
private static int
defaultCountThreshold
private static int
defaultInitialCapacity
private static int
defaultMaxEditDistance
private static int
defaultPrefixLength
private java.util.Map<java.lang.Integer,java.lang.String[]>
deletes
private EditDistance.DistanceAlgorithm
distanceAlgorithm
private int
initialCapacity
private int
maxDictionaryEditDistance
private int
maxLength
private static long
N
private int
prefixLength
private java.util.Map<java.lang.String,java.lang.Long>
words
-
Constructor Summary
Constructors Constructor Description SymSpell(int initialCapacity, int maxDictionaryEditDistance, int prefixLength, int countThreshold)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commitStaged(SuggestionStage staging)
boolean
createDictionary(java.lang.String corpus)
boolean
createDictionaryEntry(java.lang.String key, long count, SuggestionStage staging)
private boolean
deleteInSuggestionPrefix(java.lang.String delete, int deleteLen, java.lang.String suggestion, int suggestionLen)
private java.util.HashSet<java.lang.String>
edits(java.lang.String word, int editDistance, java.util.HashSet<java.lang.String> deleteWords)
private java.util.HashSet<java.lang.String>
editsPrefix(java.lang.String key)
private int
getStringHash(java.lang.String s)
boolean
loadDictionary(java.io.BufferedReader br, int termIndex, int countIndex)
boolean
loadDictionary(java.io.InputStream corpus, int termIndex, int countIndex)
boolean
loadDictionary(java.lang.String corpus, int termIndex, int countIndex)
java.util.List<SuggestItem>
lookup(java.lang.String input, SymSpell.Verbosity verbosity)
java.util.List<SuggestItem>
lookup(java.lang.String input, SymSpell.Verbosity verbosity, int maxEditDistance)
java.util.List<SuggestItem>
lookupCompound(java.lang.String input)
java.util.List<SuggestItem>
lookupCompound(java.lang.String input, int maxEditDistance)
private java.lang.String[]
parseWords(java.lang.String text)
void
purgeBelowThresholdWords()
SymSpell.SegmentedSuggestion
wordSegmentation(java.lang.String input)
SymSpell.SegmentedSuggestion
wordSegmentation(java.lang.String input, int maxEditDistance)
SymSpell.SegmentedSuggestion
wordSegmentation(java.lang.String input, int maxEditDistance, int maxSegmentationWordLength)
-
-
-
Field Detail
-
defaultMaxEditDistance
private static int defaultMaxEditDistance
-
defaultPrefixLength
private static int defaultPrefixLength
-
defaultCountThreshold
private static int defaultCountThreshold
-
defaultInitialCapacity
private static int defaultInitialCapacity
-
defaultCompactLevel
private static int defaultCompactLevel
-
initialCapacity
private int initialCapacity
-
maxDictionaryEditDistance
private int maxDictionaryEditDistance
-
prefixLength
private int prefixLength
-
countThreshold
private long countThreshold
-
compactMask
private int compactMask
-
distanceAlgorithm
private EditDistance.DistanceAlgorithm distanceAlgorithm
-
maxLength
private int maxLength
-
deletes
private java.util.Map<java.lang.Integer,java.lang.String[]> deletes
-
words
private java.util.Map<java.lang.String,java.lang.Long> words
-
belowThresholdWords
private java.util.Map<java.lang.String,java.lang.Long> belowThresholdWords
-
N
private static long N
-
-
Method Detail
-
createDictionaryEntry
public boolean createDictionaryEntry(java.lang.String key, long count, SuggestionStage staging)
-
loadDictionary
public boolean loadDictionary(java.lang.String corpus, int termIndex, int countIndex)
-
loadDictionary
public boolean loadDictionary(java.io.InputStream corpus, int termIndex, int countIndex)
-
loadDictionary
public boolean loadDictionary(java.io.BufferedReader br, int termIndex, int countIndex)
-
createDictionary
public boolean createDictionary(java.lang.String corpus)
-
purgeBelowThresholdWords
public void purgeBelowThresholdWords()
-
commitStaged
public void commitStaged(SuggestionStage staging)
-
lookup
public java.util.List<SuggestItem> lookup(java.lang.String input, SymSpell.Verbosity verbosity)
-
lookup
public java.util.List<SuggestItem> lookup(java.lang.String input, SymSpell.Verbosity verbosity, int maxEditDistance)
-
lookupCompound
public java.util.List<SuggestItem> lookupCompound(java.lang.String input, int maxEditDistance)
-
lookupCompound
public java.util.List<SuggestItem> lookupCompound(java.lang.String input)
-
deleteInSuggestionPrefix
private boolean deleteInSuggestionPrefix(java.lang.String delete, int deleteLen, java.lang.String suggestion, int suggestionLen)
-
parseWords
private java.lang.String[] parseWords(java.lang.String text)
-
edits
private java.util.HashSet<java.lang.String> edits(java.lang.String word, int editDistance, java.util.HashSet<java.lang.String> deleteWords)
-
editsPrefix
private java.util.HashSet<java.lang.String> editsPrefix(java.lang.String key)
-
getStringHash
private int getStringHash(java.lang.String s)
-
wordSegmentation
public SymSpell.SegmentedSuggestion wordSegmentation(java.lang.String input)
-
wordSegmentation
public SymSpell.SegmentedSuggestion wordSegmentation(java.lang.String input, int maxEditDistance)
-
wordSegmentation
public SymSpell.SegmentedSuggestion wordSegmentation(java.lang.String input, int maxEditDistance, int maxSegmentationWordLength)
-
-