OPENIE 6并列抽取异常:含并列宾语输入仅返回1个三元组问题求助
异常原因
- 并列拆分功能未开启
OPENIE6默认运行配置下,并列结构拆分功能处于关闭状态,官方演示示例是开启了拆分参数后的效果。未开启该功能时,模型不会对ARG2中的并列名词短语做拆分处理,只会返回包含整体宾语的单个三元组。 - 句法依赖解析错误
如果输入句子的句法树解析结果中,India和China未被识别为介词of的并列宾语,而是被标记为leaders的联合修饰成分,模型就不会触发拆分逻辑,直接将the leaders of India and China作为单个ARG2返回。 - 拆分置信度阈值过高
部分版本的预训练权重为了降低冗余抽取率,默认设置了较高的并列拆分置信度阈值,只有置信度高于阈值的拆分结果才会被保留,你当前测试的句子拆分结果置信度刚好低于阈值,就被过滤掉了。
排查解决方法
- 检查运行参数是否正确:运行抽取脚本时需要加上
--split参数,开启并列结构拆分功能,基础运行命令参考格式为python run.py --split --inp <输入文件路径> --out <输出文件路径>。 - 校验句法解析结果:在代码中打印输入句子的句法依赖树,确认India和China的依赖标签是否均为
pobj且属于并列关系,如果解析出错,可以替换默认的spaCy模型为更大的预训练版本提升解析准确率。 - 下调拆分置信度阈值:修改配置文件中
split_threshold参数,将默认的0.5下调至0.3左右,降低拆分结果的过滤门槛,即可输出更多低置信度的拆分三元组。 - 验证环境配置一致性:拿官方文档给出的标准测试句运行抽取,如果同样出现拆分失败的问题,说明是本地依赖环境配置错误,重新按照要求安装对应版本的依赖即可。
内容的提问来源于stack exchange,提问作者Mohit Sarpal
相关产品推荐
相关产品推荐

