Class BinaryDictionary
- java.lang.Object
-
- org.apache.lucene.analysis.ko.dict.BinaryDictionary
-
- All Implemented Interfaces:
Dictionary
- Direct Known Subclasses:
TokenInfoDictionary
,UnknownDictionary
public abstract class BinaryDictionary extends java.lang.Object implements Dictionary
Base class for a binary-encoded in-memory dictionary.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BinaryDictionary.ResourceScheme
Deprecated, for removal: This API element is subject to removal in a future version.-
Nested classes/interfaces inherited from interface org.apache.lucene.analysis.ko.dict.Dictionary
Dictionary.Morpheme
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.ByteBuffer
buffer
static java.lang.String
DICT_FILENAME_SUFFIX
static java.lang.String
DICT_HEADER
static int
HAS_READING
flag that the entry has reading data.static int
HAS_SINGLE_POS
flag that the entry has a single part of speech (leftPOS)private POS.Tag[]
posDict
static java.lang.String
POSDICT_FILENAME_SUFFIX
static java.lang.String
POSDICT_HEADER
private int[]
targetMap
static java.lang.String
TARGETMAP_FILENAME_SUFFIX
static java.lang.String
TARGETMAP_HEADER
private int[]
targetMapOffsets
static int
VERSION
-
Constructor Summary
Constructors Modifier Constructor Description protected
BinaryDictionary(IOSupplier<java.io.InputStream> targetMapResource, IOSupplier<java.io.InputStream> posResource, IOSupplier<java.io.InputStream> dictResource)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
getLeftId(int wordId)
Get left id of specified wordPOS.Tag
getLeftPOS(int wordId)
Get the leftPOS.Tag
of specfied word.Dictionary.Morpheme[]
getMorphemes(int wordId, char[] surfaceForm, int off, int len)
Get the morphemes of specified word (e.g.POS.Type
getPOSType(int wordId)
Get thePOS.Type
of specified word (morpheme, compound, inflect or pre-analysis)java.lang.String
getReading(int wordId)
Get the reading of specified word (mainly used for Hanja to Hangul conversion).static java.io.InputStream
getResource(BinaryDictionary.ResourceScheme scheme, java.lang.String path)
Deprecated, for removal: This API element is subject to removal in a future version.int
getRightId(int wordId)
Get right id of specified wordPOS.Tag
getRightPOS(int wordId)
Get the rightPOS.Tag
of specfied word.int
getWordCost(int wordId)
Get word cost of specified wordprivate boolean
hasReadingData(int wordId)
private boolean
hasSinglePOS(int wordId)
void
lookupWordIds(int sourceId, IntsRef ref)
private static void
populateTargetMap(DataInput in, int[] targetMap, int[] targetMapOffsets)
private java.lang.String
readString(int offset)
-
-
-
Field Detail
-
TARGETMAP_FILENAME_SUFFIX
public static final java.lang.String TARGETMAP_FILENAME_SUFFIX
- See Also:
- Constant Field Values
-
DICT_FILENAME_SUFFIX
public static final java.lang.String DICT_FILENAME_SUFFIX
- See Also:
- Constant Field Values
-
POSDICT_FILENAME_SUFFIX
public static final java.lang.String POSDICT_FILENAME_SUFFIX
- See Also:
- Constant Field Values
-
DICT_HEADER
public static final java.lang.String DICT_HEADER
- See Also:
- Constant Field Values
-
TARGETMAP_HEADER
public static final java.lang.String TARGETMAP_HEADER
- See Also:
- Constant Field Values
-
POSDICT_HEADER
public static final java.lang.String POSDICT_HEADER
- See Also:
- Constant Field Values
-
VERSION
public static final int VERSION
- See Also:
- Constant Field Values
-
buffer
private final java.nio.ByteBuffer buffer
-
targetMapOffsets
private final int[] targetMapOffsets
-
targetMap
private final int[] targetMap
-
posDict
private final POS.Tag[] posDict
-
HAS_SINGLE_POS
public static final int HAS_SINGLE_POS
flag that the entry has a single part of speech (leftPOS)- See Also:
- Constant Field Values
-
HAS_READING
public static final int HAS_READING
flag that the entry has reading data. otherwise reading is surface form- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BinaryDictionary
protected BinaryDictionary(IOSupplier<java.io.InputStream> targetMapResource, IOSupplier<java.io.InputStream> posResource, IOSupplier<java.io.InputStream> dictResource) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
populateTargetMap
private static void populateTargetMap(DataInput in, int[] targetMap, int[] targetMapOffsets) throws java.io.IOException
- Throws:
java.io.IOException
-
getResource
@Deprecated(forRemoval=true, since="9.1") public static final java.io.InputStream getResource(BinaryDictionary.ResourceScheme scheme, java.lang.String path) throws java.io.IOException
Deprecated, for removal: This API element is subject to removal in a future version.- Throws:
java.io.IOException
-
lookupWordIds
public void lookupWordIds(int sourceId, IntsRef ref)
-
getLeftId
public int getLeftId(int wordId)
Description copied from interface:Dictionary
Get left id of specified word- Specified by:
getLeftId
in interfaceDictionary
-
getRightId
public int getRightId(int wordId)
Description copied from interface:Dictionary
Get right id of specified word- Specified by:
getRightId
in interfaceDictionary
-
getWordCost
public int getWordCost(int wordId)
Description copied from interface:Dictionary
Get word cost of specified word- Specified by:
getWordCost
in interfaceDictionary
-
getPOSType
public POS.Type getPOSType(int wordId)
Description copied from interface:Dictionary
Get thePOS.Type
of specified word (morpheme, compound, inflect or pre-analysis)- Specified by:
getPOSType
in interfaceDictionary
-
getLeftPOS
public POS.Tag getLeftPOS(int wordId)
Description copied from interface:Dictionary
Get the leftPOS.Tag
of specfied word.For
POS.Type.MORPHEME
andPOS.Type.COMPOUND
the left and right POS are the same.- Specified by:
getLeftPOS
in interfaceDictionary
-
getRightPOS
public POS.Tag getRightPOS(int wordId)
Description copied from interface:Dictionary
Get the rightPOS.Tag
of specfied word.For
POS.Type.MORPHEME
andPOS.Type.COMPOUND
the left and right POS are the same.- Specified by:
getRightPOS
in interfaceDictionary
-
getReading
public java.lang.String getReading(int wordId)
Description copied from interface:Dictionary
Get the reading of specified word (mainly used for Hanja to Hangul conversion).- Specified by:
getReading
in interfaceDictionary
-
getMorphemes
public Dictionary.Morpheme[] getMorphemes(int wordId, char[] surfaceForm, int off, int len)
Description copied from interface:Dictionary
Get the morphemes of specified word (e.g. 가깝으나: 가깝 + 으나).- Specified by:
getMorphemes
in interfaceDictionary
-
readString
private java.lang.String readString(int offset)
-
hasSinglePOS
private boolean hasSinglePOS(int wordId)
-
hasReadingData
private boolean hasReadingData(int wordId)
-
-