/* */ public CompiledEstimator(ObjectInput in) /* */ throws ClassNotFoundException, IOException /* */ { /* 144 */ this.mTokenCategorizer = ((TokenCategorizer) in.readObject()); /* */ /* 146 */ this.mTagSymbolTable = ((SymbolTable) in.readObject()); /* 147 */ this.mTokenSymbolTable = ((SymbolTable) in.readObject()); /* */ /* 150 */ this.mTagTrie = new EstimatorTrie(in); /* 151 */ this.mTokenTrie = new EstimatorTrie(in); /* 152 */ this.mLogUniformVocabEstimate = in.readDouble(); /* */ /* 154 */ int numSymbols = this.mTagSymbolTable.numSymbols(); /* 155 */ this.mConvertToInterior = new int[numSymbols]; /* 156 */ this.mCannotFollow = new boolean[numSymbols][numSymbols]; /* 157 */ int numTags = this.mTagSymbolTable.numSymbols(); /* 158 */ List starts = new ArrayList(); /* 159 */ List interiors = new ArrayList(); /* 160 */ for (int tagID = 0; tagID < numTags; tagID++) { /* 161 */ String tag = idToTag(tagID); /* 162 */ this.mConvertToInterior[tagID] = tagToInteriorID(tag); /* 163 */ if (tagID != this.mConvertToInterior[tagID]) { /* 164 */ interiors.add(Integer.valueOf(this.mConvertToInterior[tagID])); /* 165 */ starts.add(Integer.valueOf(tagID)); /* */ } /* 167 */ for (int tagMinus1ID = 0; tagMinus1ID < numTags; tagMinus1ID++) { /* 168 */ this.mCannotFollow[tagID][tagMinus1ID] = Tags.illegalSequence(idToTag(tagMinus1ID), tag); /* */ } /* */ } /* 171 */ this.mStart = convertToIntArray(starts); /* 172 */ this.mInterior = convertToIntArray(interiors); /* */ }