{"record":{"id":"73a5d3ea32751152","repo":"stanfordnlp/CoreNLP","slug":"there-is-no-word-shaper-called-val-no-word-s","errorCode":null,"errorMessage":"There is no word shaper called '${val}'; no word shape features will be used.","messagePattern":"There is no word shaper called '(.+?)'; no word shape features will be used\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/edu/stanford/nlp/sequences/SeqClassifierFlags.java","lineNumber":1363,"sourceCode":"        useIsDateRange = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"dehyphenateNGrams\")) {\n        dehyphenateNGrams = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"lowerNewgeneThreshold\")) {\n        lowerNewgeneThreshold = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"usePrev\")) {\n        usePrev = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useNext\")) {\n        useNext = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useTags\")) {\n        useTags = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useWordPairs\")) {\n        useWordPairs = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useGazettes\")) {\n        useGazettes = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"wordShape\")) {\n        wordShape = WordShapeClassifier.lookupShaper(val);\n        if (wordShape == WordShapeClassifier.NOWORDSHAPE) {\n          log.warn(\"There is no word shaper called '\" + val + \"'; no word shape features will be used.\");\n        }\n      } else if (key.equalsIgnoreCase(\"useShapeStrings\")) {\n        useShapeStrings = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useGoodForNamesCpC\")) {\n        useGoodForNamesCpC = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useDictionaryConjunctions\")) {\n        useDictionaryConjunctions = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useDictionaryConjunctions3\")) {\n        useDictionaryConjunctions3 = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"expandMidDot\")) {\n        expandMidDot = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useSequences\")) {\n        useSequences = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"usePrevSequences\")) {\n        usePrevSequences = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useNextSequences\")) {\n        useNextSequences = Boolean.parseBoolean(val);\n      } else if (key.equalsIgnoreCase(\"useLongSequences\")) {","sourceCodeStart":1345,"sourceCodeEnd":1381,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/sequences/SeqClassifierFlags.java#L1345-L1381","documentation":"SeqClassifierFlags.setProperties parses key/value property pairs for sequence classifiers (CRF, CMM). For the `wordShape` key it calls WordShapeClassifier.lookupShaper(val); if the name is unrecognized it resolves to NOWORDSHAPE and logs this warning, meaning word shape features are silently disabled for the run.","triggerScenarios":"Passing property wordShape=<name> whose value is not a known shaper name (e.g. 'shaped', 'chris4' misspelled, wrong case handled, but 'wordShape=foobar' fails) to a CRFClassifier or other seq classifier.","commonSituations":"Typos in training/test properties files; copying flags between classifier types that use different shaper names; remembering names like 'chris' when valid ones are e.g. chris2, chris3, chris4, jenkinsSmith.","solutions":["Use a valid shaper name: e.g. wordShape=chris4 or wordShape=jenkinsSmith (see WordShapeClassifier.lookupShaper).","Check spelling/case of the wordShape value in your properties file.","Verify programmatically with WordShapeClassifier.lookupShaper(name) != WordShapeClassifier.NOWORDSHAPE before training.","Re-train/evaluate after fixing — the previous run silently lacked word shape features."],"exampleFix":"// before\nprops.setProperty(\"wordShape\", \"chriss4\");\n// after\nprops.setProperty(\"wordShape\", \"chris4\");","handlingStrategy":"validation","validationCode":"Object shape = WordShapeClassifier.lookupShaper(props.getProperty(\"wordShape\", \"\"));\nif (shape.equals(WordShapeClassifier.NOWORDSHAPE)) throw new IllegalArgumentException(\"Unknown wordShape: \" + props.getProperty(\"wordShape\"));","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use documented shaper names (chris2/chris3/chris4, jenkinsSmith, etc.) in properties","Add a startup check that lookupShaper resolves your wordShape value","Keep a canonical properties template shared across training runs"],"tags":["nlp","crf","configuration","invalid-value"],"backgroundTag":"invalid-config-value","analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}