stanfordnlp/CoreNLP · error · java.lang.IllegalArgumentException
Expected parsers with DVModel embedded
Error message
Expected parsers with DVModel embedded
What it means
CombineDVModels expects each base model loaded via LexicalizedParser.loadModel to carry an embedded DVModel reranker; when parser.reranker is not a DVModelReranker it throws IllegalArgumentException. Plain (non-neural) parsers or parsers saved with a different reranker cannot contribute a DVModel to the combination.
Solutions
- Only pass serialized parsers that were trained with DVParser (DVModel embedded) to -baseModels
- Re-train the base models with dvparser options so a DVModelReranker is embedded
- Verify each model path loads as a DVParser before combining
Example fix
// before -baseModels englishPCFG.ser.gz dvparser.ser.gz // after -baseModels dvparser1.ser.gz dvparser2.ser.gz
Defensive patterns
Strategy: type-guard
Validate before calling
LexicalizedParser p = LexicalizedParser.loadModel(path);
if (!(p.reranker instanceof DVModelReranker)) {
throw new IllegalArgumentException(path + " is not a DVParser model");
} Type guard
boolean hasDvModel(LexicalizedParser p) {
return p != null && p.reranker instanceof DVModelReranker;
} Try / catch
try {
CombineDVModels.main(args);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("DVModel embedded")) {
System.err.println("All -baseModels must be parsers trained with DVParser");
}
} Prevention
- Only feed DVParser-trained serialized models to -baseModels
- Probe each model with loadModel + reranker type-check in a dry run
- Keep vanilla parser models out of neural-combination pipelines
When it happens
Trigger: Passing a serialized LexicalizedParser trained without a DV model (or a plain parser model like an English PCFG model file) to -baseModels, so the loaded parser's reranker field is null or a different Reranker implementation.
Common situations: Mixing vanilla parser models with DV-trained models in the -baseModels list; pointing at a model file from an older/different pipeline; confusing the underlying parser model with a DVParser model.
Understand the failure class
Background: Type mismatch errors: IllegalArgumentException, TypeError and type guards across 150 open-source libraries — this error's family across 150 libraries.
Related errors
- This parser does not contain a DVModel reranker
- format error in embeddings
- format error unexpected featureFactory line:
- Unknown word vector not specified in the word vector file
- Unable to annotate attribute " + key
AI-assisted analysis of stanfordnlp/CoreNLP@1b7edd19c4 (2026-09-10).
Data as JSON: /api/errors/0b0d5d3f8aec21a4.
Report an issue: GitHub.
Appendix: source
Thrown at src/edu/stanford/nlp/parser/dvparser/CombineDVModels.java:75
throw new IllegalArgumentException("Found an argument -baseModels with no actual models named");
}
} else {
unusedArgs.add(args[argIndex++]);
}
}
String[] newArgs = unusedArgs.toArray(new String[unusedArgs.size()]);
LexicalizedParser underlyingParser = null;
Options options = null;
LexicalizedParser combinedParser = null;
if (baseModelPaths != null) {
List<DVModel> dvparsers = new ArrayList<>();
for (String baseModelPath : baseModelPaths) {
log.info("Loading serialized DVParser from " + baseModelPath);
LexicalizedParser dvparser = LexicalizedParser.loadModel(baseModelPath);
Reranker reranker = dvparser.reranker;
if (!(reranker instanceof DVModelReranker)) {
throw new IllegalArgumentException("Expected parsers with DVModel embedded");
}
dvparsers.add(((DVModelReranker) reranker).getModel());
if (underlyingParser == null) {
underlyingParser = dvparser;
options = underlyingParser.getOp();
// TODO: other parser's options?
options.setOptions(newArgs);
}
log.info("... done");
}
combinedParser = LexicalizedParser.copyLexicalizedParser(underlyingParser);
CombinedDVModelReranker reranker = new CombinedDVModelReranker(options, dvparsers);
combinedParser.reranker = reranker;
combinedParser.saveParserToSerialized(modelPath);
} else {
throw new IllegalArgumentException("Need to specify -model to load an already prepared CombinedParser");
}
View on GitHub (pinned to 1b7edd19c4)