Search in sources :

Example 1 with ByteArray

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;
}
Also used : ByteArray(com.hankcs.hanlp.corpus.io.ByteArray)

Example 2 with ByteArray

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);
}
Also used : ByteArray(com.hankcs.hanlp.corpus.io.ByteArray) DoubleArrayTrie(com.hankcs.hanlp.collection.trie.DoubleArrayTrie)

Example 3 with 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;
}
Also used : ByteArray(com.hankcs.hanlp.corpus.io.ByteArray)

Example 4 with ByteArray

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;
}
Also used : Nature(com.hankcs.hanlp.corpus.tag.Nature) ByteArray(com.hankcs.hanlp.corpus.io.ByteArray)

Example 5 with ByteArray

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);
}
Also used : ByteArray(com.hankcs.hanlp.corpus.io.ByteArray)

Aggregations

ByteArray (com.hankcs.hanlp.corpus.io.ByteArray)21 DataOutputStream (java.io.DataOutputStream)5 FileOutputStream (java.io.FileOutputStream)5 Nature (com.hankcs.hanlp.corpus.tag.Nature)2 DoubleArrayTrie (com.hankcs.hanlp.collection.trie.DoubleArrayTrie)1 LinkedList (java.util.LinkedList)1