在正式做模板匹配之前,需要先来分析一下用户的问题,和模板对比的时候,可能会出现的一个问题。上节课讲到,在定义模板的时候,有一个slots值,是用来验证CQL查询需要的关键信息的,如果关键信息不够,就没法查询,那如果说关键信息太多,我们又当如何应对呢?这节课,就先来分析一下,这种场景应该如何处理。

问题分析

假设,用户问了这样一个问题:张国荣是霸王别姬的导演还是主演?

根据经验判断,这个问题里面包含了两个实体和两个关系:

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

假设,定义了一个模板:%ENT0%是%ENT1%的%REL%吗?他要求的slots,应该是:

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

这个场景当中,就有两个问题:

1、涉及到关系查询的CQL语句,一般都是有向的,从问句中抽取到的两个实体,是谁指向谁?

2、问句中关系有两个,而模板只要一个,取哪一个?

这两个问题的答案,就四个字:都要尝试。也就是说,在模板解析环节,要穷举所有可能。最终排列组合的结果:

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

看到这,可能有人会有疑问,这么多种组合,最后到底以谁为准呢?不用担心,在后面流程中,会把这些特殊标记,带入到标准问题,和CQL语句中,哪一个跟标准问题更像,而且数据库里能查到答案,就以谁为准。

那么,接下来几节课,就一起来实现这个过程。

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

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