stanfordnlp/CoreNLP · error · RuntimeException
These features are no longer supported. The paths and data…
Error message
These features are no longer supported. The paths and data files associated with this material are out of date, and the classes used are not thread-safe. Those problems would need to be fixed to use this feature.
What it means
The chinesedictionaryfeatures(...) extractor spec is explicitly disabled: the data paths it relied on are obsolete and the implementing classes were not thread-safe. Requesting it throws this RuntimeException unconditionally. It is a deliberate removal, not a configuration problem.
Solutions
- Remove the chinesedictionaryfeatures(...) entry from your extractors/rareExtractors configuration
- Replace the feature with ExtractorCtb or equivalent currently supported Chinese features if available in your version
- Check the current version's ExtractorFramesRare.java for the supported feature list and pick supported alternatives
- Pin an old Stanford POS tagger version only if the feature is absolutely required (not recommended: paths are stale)
Example fix
// before String rareExtractors = "...,chinesedictionaryfeatures(/path/ctb),..."; // throws // after String rareExtractors = "...,unicodeshapeconjunction(-1,1),..."; // supported feature
Defensive patterns
Strategy: validation
Validate before calling
if (spec.startsWith("chinesedictionaryfeatures(")) {
throw new IllegalArgumentException("chinesedictionaryfeatures is removed in this tagger version; use supported Chinese features instead");
} Try / catch
try {
ExtractorFramesRare.getExtractorFramesRare(spec);
} catch (RuntimeException e) {
if (e.getMessage() != null && e.getMessage().startsWith("These features are no longer supported.")) {
// strip the feature from the config and continue without it
} else { throw e; }
} Prevention
- Remove chinesedictionaryfeatures from legacy training properties files
- Review the current ExtractorFramesRare source for the supported feature list
- Do not carry forward extractors from abandoned code paths when upgrading
- Document removed features for your team when pinning library versions
When it happens
Trigger: Including 'chinesedictionaryfeatures(...)' in the tagger's rare extractors config string; using an old training properties file from before the feature was removed.
Common situations: Reusing legacy POS tagger training props from old CTB experiments; following an outdated tutorial or paper appendix that lists the feature.
Understand the failure class
Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.
Related errors
- At least two of lang (" + lang + "), openClassTags (length…
- can't open file
- Couldn't create POS tagger extractor class
- Couldn't create POS tagger extractor class
- Extractors can't both be local and dynamic!
AI-assisted analysis of stanfordnlp/CoreNLP@1b7edd19c4 (2026-09-10).
Data as JSON: /api/errors/8f33c3895ebbc940.
Report an issue: GitHub.
Appendix: source
Thrown at src/edu/stanford/nlp/tagger/maxent/ExtractorFramesRare.java:302
String wsc = Extractor.getParenthesizedArg(arg, 3);
if (wsc == null) {
wsc = "chris2";
}
for (int i = lWindow; i <= rWindow; i++) {
extrs.add(new ExtractorWordShapeConjunction(lWindow, rWindow, wsc));
}
} else if (arg.startsWith("unicodeshapes(")) {
int lWindow = Extractor.getParenthesizedNum(arg, 1);
int rWindow = Extractor.getParenthesizedNum(arg, 2);
for (int i = lWindow; i <= rWindow; i++) {
extrs.add(new ExtractorWordShapeClassifier(i, "chris4"));
}
} else if (arg.startsWith("unicodeshapeconjunction(")) {
int lWindow = Extractor.getParenthesizedNum(arg, 1);
int rWindow = Extractor.getParenthesizedNum(arg, 2);
extrs.add(new ExtractorWordShapeConjunction(lWindow, rWindow, "chris4"));
} else if (arg.startsWith("chinesedictionaryfeatures(")) {
throw new RuntimeException("These features are no longer supported." +
" The paths and data files associated " +
"with this material are out of date, and " +
"the classes used are not thread-safe. " +
"Those problems would need to be fixed " +
"to use this feature.");
//String path = Extractor.getParenthesizedArg(arg, 1);
//// Default nlp location for these features is: /u/nlp/data/pos-tagger/dictionary
//int lWindow = Extractor.getParenthesizedNum(arg, 2);
//int rWindow = Extractor.getParenthesizedNum(arg, 3);
//// First set up the dictionary prefix for the Chinese dictionaries
//ASBCDict.setPathPrefix(path);
//for (int i = lWindow; i <= rWindow; i++) {
// extrs.addAll(Arrays.asList(ctbPreFeatures(i)));
// extrs.addAll(Arrays.asList(ctbSufFeatures(i)));
// extrs.addAll(Arrays.asList(ctbUnkDictFeatures(i)));
// extrs.addAll(Arrays.asList(asbcUnkFeatures(i)));
//}
// No longer add prefix suffix features, now that you can more flexibly add them separately.View on GitHub (pinned to 1b7edd19c4)