自然语言理解在对话系统中的应用及模型分析
1. 自然语言理解任务定义
在构建对话系统的自然语言理解(NLU)部分时,有两个关键任务与上下文理解相关,它们分别是对话行为分类和槽位识别。
1.1 对话行为分类
对话行为分类旨在识别用户话语在对话上下文中所扮演的角色,即明确用户正在执行的“行为”。例如,对于“Are you going to school today?”这样的问题,可将其分类为“是/否”问题;而“What is the depth of the ocean?”则不属于“是/否”问题。识别意图对于构建聊天机器人至关重要,它能帮助我们理解用户的需求并采取相应的行动。
这个任务可以被重新定义为一个分类问题,即给定一个对话语句,将其分类为不同的对话行为或标签。例如,在餐厅预订的对话中,“Where is it?”可被分类为“请求”对话行为,“I’m looking for a cheaper restaurant”可被分类为“告知”对话行为。我们可以使用各种分类器来解决这个问题。
1.2 槽位识别
在提取意图后,我们需要进一步提取实体,这对于生成正确且合适的响应同样重要。以“I’m looking for a cheaper restaurant”为例,我们要识别“cheaper”为价格槽位,并直接获取其值,若知道槽位 - 值对的本体,还可将其转换为更规范的形式,如“cheaper” -> “cheap”。
之前在Dialogflow示例中,槽位需要预先定义,而现在我们希望使用机器学习算法自行构建这个组件。我们可以采用类似第5章中提取句子实体的序列标注方法,并使用开源的序列标注库skl
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



