Stanford CoreNLP提示Unknown variable WORKDAY报错如何解决?
CoreNLP WORKDAY未知变量报错解决方案
问题根因
该报错来源于CoreNLP的SUTime时间解析组件,规则文件中引用了未预定义的WORKDAY变量,触发规则加载异常,最终导致文档处理失败。
所有配置调整均针对CoreNLP Java服务端,修改后重启服务即可生效,Jupyter Notebook侧的Python调用代码无需改动。
可选用的解决方案
- 方案一:关闭SUTime时间解析(无需使用时间提取功能时推荐)
启动CoreNLP Java服务时添加启动参数-ner.useSUTime false,完全禁用时间规则加载,即可直接消除该报错。启动命令示例:
该方案无需修改任何代码,配置成本最低。java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -ner.useSUTime false -port 9000 - 方案二:自定义补充WORKDAY变量规则(需要保留时间解析功能时使用)
新建自定义SUTime规则文件,在文件中添加WORKDAY变量的匹配规则,示例如下(根据你处理的是中文/英文内容调整正则表达式):
启动CoreNLP服务时添加参数指定自定义规则路径:# 中文规则示例 WORKDAY = /(周一|周二|周三|周四|周五|工作日|上班日)/ # 英文规则示例 # WORKDAY = /(Monday|Tuesday|Wednesday|Thursday|Friday|workday|weekday)/-sutime.rules 你的自定义规则文件路径,edu/stanford/nlp/time/rules/sutime.rules,保证原有规则和自定义规则同时加载即可。 - 方案三:校验CoreNLP版本一致性
部分旧版本CoreNLP的多语言模型包存在规则缺失问题,确保CoreNLP主包版本、对应语言模型包版本完全一致,或直接升级到最新稳定版,也可修复该内置变量缺失问题。
内容的提问来源于stack exchange,提问作者Moe
相关产品推荐
相关产品推荐

