{"record":{"id":"fc787b875499aa5b","repo":"stanfordnlp/CoreNLP","slug":"invalid-value-for-useunknownwordsignatures","errorCode":null,"errorMessage":"Invalid value for useUnknownWordSignatures: ","messagePattern":"Invalid value for useUnknownWordSignatures: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/edu/stanford/nlp/parser/lexparser/ArabicUnknownWordModel.java","lineNumber":40,"sourceCode":"\n  private static final long serialVersionUID = 4825624957364628771L;\n\n  private static final int MIN_UNKNOWN = 6;\n\n  private static final int MAX_UNKNOWN = 10;\n\n  protected final boolean smartMutation;\n  protected final int unknownSuffixSize;\n  protected final int unknownPrefixSize;\n\n\n  public ArabicUnknownWordModel(Options op, Lexicon lex,\n                                Index<String> wordIndex,\n                                Index<String> tagIndex,\n                                ClassicCounter<IntTaggedWord> unSeenCounter) {\n    super(op, lex, wordIndex, tagIndex, unSeenCounter, null, null, null);\n    if (unknownLevel < MIN_UNKNOWN || unknownLevel > MAX_UNKNOWN) {\n      throw new IllegalArgumentException(\"Invalid value for useUnknownWordSignatures: \" + unknownLevel);\n    }\n    this.smartMutation = op.lexOptions.smartMutation;\n    this.unknownSuffixSize = op.lexOptions.unknownSuffixSize;\n    this.unknownPrefixSize = op.lexOptions.unknownPrefixSize;\n  }\n\n  /**\n   * This constructor creates an UWM with empty data structures.  Only\n   * use if loading in the data separately, such as by reading in text\n   * lines containing the data.\n   */\n  public ArabicUnknownWordModel(Options op, Lexicon lex,\n                                Index<String> wordIndex,\n                                Index<String> tagIndex) {\n    this(op, lex, wordIndex, tagIndex, new ClassicCounter<>());\n  }\n\n  @Override","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/parser/lexparser/ArabicUnknownWordModel.java#L22-L58","documentation":"ArabicUnknownWordModel validates the unknown-word signature level inherited from BaseUnknownWordModel (from Options LexOptions.useUnknownWordSignatures). Arabic supports only a limited range of signature levels (MIN_UNKNOWN..MAX_UNKNOWN); a value outside that range is rejected in the constructor with IllegalArgumentException.","triggerScenarios":"Constructing the model with options where useUnknownWordSignatures is set (e.g. via -unknownWordSignatures N on the command line or a loaded model options block) to a number outside the Arabic-supported range.","commonSituations":"Reusing English unknown-word option values with an Arabic model; editing serialized model options or training flags without checking Arabic's supported levels.","solutions":["Set useUnknownWordSignatures to a value within the Arabic-supported range (0..5; check MIN_UNKNOWN/MAX_UNKNOWN constants)","Omit the flag to use the default unknown word signature level","If loading a serialized model with bad options, retrain or fix the options file"],"exampleFix":"// before\njava ... -unknownWordSignatures 7\n// after\njava ... -unknownWordSignatures 5","handlingStrategy":"validation","validationCode":"int lvl = op.lexOptions.useUnknownWordSignatures;\nif (lvl < ArabicUnknownWordModel.MIN_UNKNOWN || lvl > ArabicUnknownWordModel.MAX_UNKNOWN) {\n  op.lexOptions.useUnknownWordSignatures = 0; // or clamp to range\n}","typeGuard":null,"tryCatchPattern":"try {\n  ArabicUnknownWordModel m = new ArabicUnknownWordModel(op, lex, wordIndex, tagIndex, unSeen);\n} catch (IllegalArgumentException e) {\n  op.lexOptions.useUnknownWordSignatures = 0;\n  ArabicUnknownWordModel m = new ArabicUnknownWordModel(op, lex, wordIndex, tagIndex, unSeen);\n}","preventionTips":["Clamp useUnknownWordSignatures to the model's documented range","Don't reuse English unknown-word option values for Arabic models","Validate Options objects after deserializing old models"],"tags":["java","stanford-parser","config","out-of-range"],"backgroundTag":"value-out-of-range","analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}