use of com.hankcs.hanlp.corpus.io.ByteArray in project HanLP by hankcs.
the class BinTrie method load.
/**
* 只加载值,此时相当于一个set
*
* @param path
* @return
*/
public boolean load(String path) {
byte[] bytes = IOUtil.readBytes(path);
if (bytes == null)
return false;
_ValueArray valueArray = new _EmptyValueArray();
ByteArray byteArray = new ByteArray(bytes);
for (int i = 0; i < child.length; ++i) {
int flag = byteArray.nextInt();
if (flag == 1) {
child[i] = new Node<V>();
child[i].walkToLoad(byteArray, valueArray);
}
}
// 不知道有多少
size = -1;
return true;
}
use of com.hankcs.hanlp.corpus.io.ByteArray in project HanLP by hankcs.
the class CRFDependencyParser method loadDat.
boolean loadDat(String path) {
ByteArray byteArray = ByteArray.createByteArray(path);
if (byteArray == null)
return false;
crfModel = new CRFModelForDependency(new DoubleArrayTrie<FeatureFunction>());
return crfModel.load(byteArray);
}
use of com.hankcs.hanlp.corpus.io.ByteArray in project HanLP by hankcs.
the class CoreBiGramMixDictionary method loadDat.
static boolean loadDat(String path) {
try {
ByteArray byteArray = ByteArray.createByteArray(path);
if (byteArray == null)
return false;
int size = byteArray.nextInt();
Integer[] value = new Integer[size];
for (int i = 0; i < size; i++) {
value[i] = byteArray.nextInt();
}
if (!trie.load(byteArray, value))
return false;
} catch (Exception e) {
return false;
}
return true;
}
use of com.hankcs.hanlp.corpus.io.ByteArray in project HanLP by hankcs.
the class CustomDictionary method loadDat.
/**
* 从磁盘加载双数组
*
* @param path
* @return
*/
static boolean loadDat(String path) {
try {
ByteArray byteArray = ByteArray.createByteArray(path + Predefine.BIN_EXT);
if (byteArray == null)
return false;
int size = byteArray.nextInt();
if (// 一种兼容措施,当size小于零表示文件头部储存了-size个用户词性
size < 0) {
while (++size <= 0) {
Nature.create(byteArray.nextString());
}
size = byteArray.nextInt();
}
CoreDictionary.Attribute[] attributes = new CoreDictionary.Attribute[size];
final Nature[] natureIndexArray = Nature.values();
for (int i = 0; i < size; ++i) {
// 第一个是全部频次,第二个是词性个数
int currentTotalFrequency = byteArray.nextInt();
int length = byteArray.nextInt();
attributes[i] = new CoreDictionary.Attribute(length);
attributes[i].totalFrequency = currentTotalFrequency;
for (int j = 0; j < length; ++j) {
attributes[i].nature[j] = natureIndexArray[byteArray.nextInt()];
attributes[i].frequency[j] = byteArray.nextInt();
}
}
if (!dat.load(byteArray, attributes))
return false;
} catch (Exception e) {
logger.warning("读取失败,问题发生在" + TextUtility.exceptionToString(e));
return false;
}
return true;
}
use of com.hankcs.hanlp.corpus.io.ByteArray in project HanLP by hankcs.
the class JapanesePersonDictionary method loadDat.
static boolean loadDat() {
ByteArray byteArray = ByteArray.createByteArray(path + Predefine.VALUE_EXT);
if (byteArray == null)
return false;
int size = byteArray.nextInt();
Character[] valueArray = new Character[size];
for (int i = 0; i < valueArray.length; ++i) {
valueArray[i] = byteArray.nextChar();
}
return trie.load(path + Predefine.TRIE_EXT, valueArray);
}
Aggregations