docs: @Override
    @SuppressWarnings( { "unchecked" })
    // can't have right types in deserialization
    public void loadClassifier(ObjectInputStream ois, Properties props) throws ClassCastException, IOException,
        ClassNotFoundException {
      labelIndices = (Index<CRFLabel>[]) ois.readObject();
      classIndex = (Index<String>) ois.readObject();
      featureIndex = (Index<String>) ois.readObject();
      flags = (SeqClassifierFlags) ois.readObject();
      featureFactory = (edu.stanford.nlp.sequences.FeatureFactory) ois.readObject();
  
      if (props != null) {
        flags.setProperties(props, false);
      }
      reinit();
  
      windowSize = ois.readInt();
      weights = (double[][]) ois.readObject();
  
      // WordShapeClassifier.setKnownLowerCaseWords((Set) ois.readObject());
      knownLCWords = (Set<String>) ois.readObject();
  
      if (VERBOSE) {
        System.err.println("windowSize=" + windowSize);
        System.err.println("flags=\n" + flags);
      }
    }