摘要

任务型对话系统中的对话理解模块目标是将用户输入的自然语言转换成结构化的形式,但在面向诊断的医疗对话系统中,现有方法会遇到如下问题:(1)无法支持精准医疗所需的信息粒度,如给出某一症状的严重程度;(2)难以同时满足医疗领域中多样化的槽值表示形式,如“症状”等可能含有非连续和嵌套实体的抽取型槽和“否定”等分类型槽。本研究提出一种基于提示学习的多层次生成式医疗对话理解方法。针对问题一,本研究用多层次槽结构替代了当前对话理解任务中单层的槽结构,以表示更细粒度的信息,之后采用一种基于对话风格提示的生成式方法,利用提示字符模拟医患对话,从多轮交互中获得多层次信息。针对问题二,本研究提出在推理过程中使用一种受限的解码策略,使模型能够以统一的方式处理意图识别与分类型和抽取型的槽填充任务,避免复杂的建模。此外,针对医疗领域缺少标注数据的问题,本研究提出一种两阶段训练策略,以充分利用大规模的无标注医疗对话语料提升性能。本研究针对含有多层次槽结构的医疗对话理解任务标注并发布了一个数据集,包含4722条对话,涉及17种意图与74种槽。实验结果表明,本研究的方法能够有效解析医疗对话中的各种复杂实体,相较于已有的生成方法性能高出2.18%,而在小样本的场景下两阶段训练最高能提高模型5.23%的性能。数据集与代码公开于:https://github.com/ZingLix/mdu