上QQ阅读APP看书,第一时间看更新
1.3.3 自然语言理解
自然语言理解模块主要是为对话管理提供当前对话信息。如图1-1的框架图所示,主要包含领域识别、意图识别以及语义标注。
1.领域识别
领域识别主要用于检测用户输入内容所涉及的领域概念。由于现有人机交互系统的复杂度高,其所面对的领域也并非唯一存在。在跨领域的人机交互系统中,机器人首先需要判断当前用户咨询问题对应的领域。由于系统领域特征事先可以约定,因此运用文本分类这一技术可以实现,像SVM、TextCNN、RNN、Bert-classify等相关算法均可用在领域识别中,本书也将在后面章节中重点介绍文本分类技术。
2.意图识别
意图识别主要用于检测用户在特定领域下表述内容所代表的真实意图。例如在办公场景下,用户可以用“我今天不舒服,来不了了”“今天家里有事,无法准时到岗”“今天飞机晚点,我到不了公司”来表述核心意图——请假。针对意图识别,除了同领域识别一样定义成文本分类任务以外,还可以运用其他技术进行处理。考虑到意图识别颗粒度较领域识别更细,以及单意图场景数据更少这一特点,可以运用诸如小样本学习在内的弱监督学习技术,甚至将无监督相似度计算与K近邻算法相结合的办法实现意图识别相关模块设计。
3.语义标注
语义标注模块主要用于收集用户在对话过程中涉及任务所必需的相关参数信息。例如上文提到的机票预订系统中包含的航班号、出发地、目的地、用户姓名以及舱位信息。针对简单的语义标注可采用结合词典的模糊匹配方法抽取舱位信息。更进一步,面对人名、地名此类无法事先穷举的参数类型,可运用词性标注(POS)技术完成。然而面对出发地、目的地这种无法根据词性区分的情况,则需要运用序列标注技术完成,本书将在第6章重点介绍中文序列标注相关技术方案。