前面课程中,已经搞定了问题的意图识别和实体抽取,接下来就可以做模板匹配了。根据项目需求,这个项目要能够回答用户的12类问题,接下来就依次去配置这12类问题的处理模板。

代码示例

1、定义意图别名

这一步其实不是必须的,用意图的label_id也是可以的,但为了代码好维护,还是给意图都起一个英文名字,英文还是比数字直观一些。

内容不可见,请联系管理员开通权限。

2、查属性示例

查属性的CQL是最简单的,把节点查出来,然后返回对应的属性就可以了。

模板配置项:

slots - 对应CQL需要填充的词槽。

cypher - CQL语句,注意占位符用%xx%表示,查询结果重命名为RES。

answer - 回复语句的模板,%RES%为查询结果占位符。

confirm - 当意图识别置信度比较低时(注意不是特别低),向用户发起追问。

内容不可见,请联系管理员开通权限。

3、查关系示例

查关系和查属性类似,只有CQL语句有些差别,细节在Neo4j章节详细讲过了。

内容不可见,请联系管理员开通权限。

4、特殊的意图

查询疾病的治疗方法这个意图,其实是好几个意图的结合,也可以理解为是一个偷懒的操作。治疗方法、药物、推荐食物,我都放到了这个意图下面,一次性返回了。大家如果有更精细化的需求,也可以拆开,这里是想借这这个机会,给大家补充一个比较复杂的CQL写法。

内容不可见,请联系管理员开通权限。

5、完整模板

接下来,就把12类问题的模板,一次性的全部列出来了,说是12个,其实就两类,查属性和查关系,刚才都讲过了。

内容不可见,请联系管理员开通权限。

这节课代码看上去很多,其实都是老套路,基础项目也是分好几节课详细讲过了。大家课后有时间,也可以自己重写一下这些CQL,复习一下基础。

本文链接:http://ichenhua.cn/edu/note/641

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!