public class FirstTokenPermutationImpl extends java.lang.Object implements LookupAlgorithm
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CTX_KEY_WINDOW_ANNOTATIONS
Key value for context map.
|
private DictionaryEngine |
iv_firstTokenDictEngine |
private Logger |
iv_logger |
private int |
iv_maxPermutationLevel |
private java.util.Map<java.lang.Integer,java.util.List<java.util.List<java.lang.Integer>>> |
iv_permCacheMap |
private PhraseBuilder |
iv_phrBuilder |
private java.lang.String[] |
iv_textMetaFieldNames |
static java.lang.String |
LT_KEY_USE_FOR_LOOKUP
Key value for LookupToken attribute.
|
Constructor and Description |
---|
FirstTokenPermutationImpl(DictionaryEngine firstTokenDictEngine,
PhraseBuilder phraseBuilder,
java.lang.String[] textMetaFieldNames,
int maxPermutationLevel)
Constructor
|
Modifier and Type | Method and Description |
---|---|
private java.util.Collection<MetaDataHit> |
getFirstTokenHits(LookupToken firstLookupToken)
Gets the hits for the specified LookupToken.
|
private int |
getFixedWindowEndOffset(int tokenIdx,
LookupToken lt,
java.util.List<LookupToken> ltList) |
private LookupAnnotation |
getLargestWindowAnnotation(int tokenIdx,
LookupToken lt,
java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltStartOffsetMap,
java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltEndOffsetMap,
java.util.Map<LookupToken,java.lang.Integer> ltListIndexMap,
java.util.Map<java.lang.Integer,java.util.List<LookupAnnotation>> wStartOffsetMap,
java.util.Map<java.lang.Integer,java.util.List<LookupAnnotation>> wEndOffsetMap)
Determines the largest overlapping window annotation for the specified
LookupToken.
|
private static java.util.Map<LookupToken,java.lang.Integer> |
getListIndexMap(java.util.List<LookupToken> list)
Creates a map that binds an object from a list to its index position.
|
private java.util.Collection<LookupHit> |
getLookupHits(java.util.Collection<MetaDataHit> firstTokenHits,
java.util.List<LookupToken> wLookupTokenList,
int firstTokenIndex) |
private static java.util.List<LookupToken> |
getLookupTokenList(int offset,
java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltOffsetMap,
boolean traverseRight)
Attempts to get a list of LookupToken objects at the specified offset.
|
private static <T extends LookupAnnotation> |
getMultipleEndOffsetMap(java.util.List<T> lookupAnnotList)
Creates a map that uses the end offset to index the LookupAnnotation objects.
|
private static <T extends LookupAnnotation> |
getMultipleStartOffsetMap(java.util.List<T> lookupAnnotList)
Creates a map that uses the start offset to index the LookupAnnotation objects.
|
private java.util.Map<java.lang.String,java.util.Set<MetaDataHit>> |
getNamedMetaDataHits(java.util.Collection<MetaDataHit> firstTokenHits) |
private int |
getNumberOfListTokens(java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltStartOffsetMap,
java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltEndOffsetMap,
java.util.Map<LookupToken,java.lang.Integer> ltListIndexMap,
int startOffset,
int endOffset)
Determines the number of ListTokens are contained within the specified
start and end offsets;
|
private static <T extends LookupAnnotation> |
getSingleEndOffsetMap(java.util.List<T> lookupAnnotList)
Creates a map that uses the end offset to index the LookupAnnotation objects.
|
private static <T extends LookupAnnotation> |
getSingleStartOffsetMap(java.util.List<T> lookupAnnotList)
Creates a map that uses the start offset to index the LookupAnnotation objects.
|
private java.util.List<LookupAnnotation> |
getWindowAnnotations(java.util.Map<java.lang.String,java.util.List<LookupAnnotation>> contextMap)
Extracts the list of LookupAnnotation objects representing noun phrases
from the context map.
|
java.util.Collection<LookupHit> |
lookup(java.util.List<LookupToken> lookupTokenList,
java.util.Map<java.lang.String,java.util.List<LookupAnnotation>> contextMap)
Lookup the given text specified via LookupToken objects.
|
private final Logger iv_logger
public static final java.lang.String CTX_KEY_WINDOW_ANNOTATIONS
public static final java.lang.String LT_KEY_USE_FOR_LOOKUP
private final DictionaryEngine iv_firstTokenDictEngine
private final PhraseBuilder iv_phrBuilder
private final int iv_maxPermutationLevel
private final java.util.Map<java.lang.Integer,java.util.List<java.util.List<java.lang.Integer>>> iv_permCacheMap
private java.lang.String[] iv_textMetaFieldNames
public FirstTokenPermutationImpl(DictionaryEngine firstTokenDictEngine, PhraseBuilder phraseBuilder, java.lang.String[] textMetaFieldNames, int maxPermutationLevel)
firstTokenDictEngine
- Dictionary that is indexed against first tokens.phraseBuilder
- Builds phrases to match against Dictionary.textMetaFieldNames
- MetaFieldNames used to extract presentations.maxPermutationLevel
- Max permutation Level allowed.public java.util.Collection<LookupHit> lookup(java.util.List<LookupToken> lookupTokenList, java.util.Map<java.lang.String,java.util.List<LookupAnnotation>> contextMap) throws java.lang.Exception
lookup
in interface LookupAlgorithm
lookupTokenList
- List of LookupTokens, must be sorted.contextMap
- Map where key=Impl specific String object and value=List of
LookupAnnotation objectsjava.lang.Exception
private java.util.Map<java.lang.String,java.util.Set<MetaDataHit>> getNamedMetaDataHits(java.util.Collection<MetaDataHit> firstTokenHits)
private java.util.Collection<LookupHit> getLookupHits(java.util.Collection<MetaDataHit> firstTokenHits, java.util.List<LookupToken> wLookupTokenList, int firstTokenIndex) throws java.lang.Exception
java.lang.Exception
private java.util.List<LookupAnnotation> getWindowAnnotations(java.util.Map<java.lang.String,java.util.List<LookupAnnotation>> contextMap)
contextMap
- Map where key=Impl specific String object and value=List of
LookupAnnotation objectsprivate int getNumberOfListTokens(java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltStartOffsetMap, java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltEndOffsetMap, java.util.Map<LookupToken,java.lang.Integer> ltListIndexMap, int startOffset, int endOffset)
ltStartOffsetMap
- -ltEndOffsetMap
- -ltListIndexMap
- -startOffset
- -endOffset
- -private static java.util.List<LookupToken> getLookupTokenList(int offset, java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltOffsetMap, boolean traverseRight)
offset
- -ltOffsetMap
- -traverseRight
- -private LookupAnnotation getLargestWindowAnnotation(int tokenIdx, LookupToken lt, java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltStartOffsetMap, java.util.Map<java.lang.Integer,java.util.List<LookupToken>> ltEndOffsetMap, java.util.Map<LookupToken,java.lang.Integer> ltListIndexMap, java.util.Map<java.lang.Integer,java.util.List<LookupAnnotation>> wStartOffsetMap, java.util.Map<java.lang.Integer,java.util.List<LookupAnnotation>> wEndOffsetMap)
private int getFixedWindowEndOffset(int tokenIdx, LookupToken lt, java.util.List<LookupToken> ltList)
private static java.util.Map<LookupToken,java.lang.Integer> getListIndexMap(java.util.List<LookupToken> list)
list
- -private static <T extends LookupAnnotation> java.util.Map<java.lang.Integer,T> getSingleStartOffsetMap(java.util.List<T> lookupAnnotList)
lookupAnnotList
- -private static <T extends LookupAnnotation> java.util.Map<java.lang.Integer,java.util.List<T>> getMultipleStartOffsetMap(java.util.List<T> lookupAnnotList)
lookupAnnotList
- -private static <T extends LookupAnnotation> java.util.Map<java.lang.Integer,T> getSingleEndOffsetMap(java.util.List<T> lookupAnnotList)
lookupAnnotList
- -private static <T extends LookupAnnotation> java.util.Map<java.lang.Integer,java.util.List<T>> getMultipleEndOffsetMap(java.util.List<T> lookupAnnotList)
lookupAnnotList
- -private java.util.Collection<MetaDataHit> getFirstTokenHits(LookupToken firstLookupToken) throws java.lang.Exception
firstLookupToken
- -java.lang.Exception