/** * Reads weights quantation object from stream * @param order - max order of ngrams for this model * @return quantation object, see {@link NgramTrieQuant} * @throws IOException if reading from stream failed */ public NgramTrieQuant readQuant(int order) throws IOException { int quantTypeInt = Utilities.readLittleEndianInt(inStream); if (quantTypeInt < 0 || quantTypeInt >= NgramTrieQuant.QuantType.values().length) throw new Error("Unknown quantatization type: " + quantTypeInt); NgramTrieQuant.QuantType quantType = NgramTrieQuant.QuantType.values()[quantTypeInt]; NgramTrieQuant quant = new NgramTrieQuant(order, quantType); //reading tables for (int i = 2; i <= order; i++) { quant.setTable(readFloatArr(quant.getProbTableLen()), i, true); if (i < order) quant.setTable(readFloatArr(quant.getBackoffTableLen()), i, false); } return quant; }
/** * Reads weights quantation object from stream * @param order - max order of ngrams for this model * @return quantation object, see {@link NgramTrieQuant} * @throws IOException if reading from stream failed */ public NgramTrieQuant readQuant(int order) throws IOException { int quantTypeInt = Utilities.readLittleEndianInt(inStream); if (quantTypeInt < 0 || quantTypeInt >= NgramTrieQuant.QuantType.values().length) throw new Error("Unknown quantatization type: " + quantTypeInt); NgramTrieQuant.QuantType quantType = NgramTrieQuant.QuantType.values()[quantTypeInt]; NgramTrieQuant quant = new NgramTrieQuant(order, quantType); //reading tables for (int i = 2; i <= order; i++) { quant.setTable(readFloatArr(quant.getProbTableLen()), i, true); if (i < order) quant.setTable(readFloatArr(quant.getBackoffTableLen()), i, false); } return quant; }