多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 补充说明 首先介绍一个概念,就是缓存。为提升整体查询效率,所有的历史查询会被记录在缓存里,当用户请求过来时,会首先去缓存里寻找结果。而缓存的更新周期较长,所以在我们做一些修改,比如为某条问答增加了关键词之后,再问同样的问题,发现关键词没有生效,实际上是从缓存里取了添加关键词之前的问题。 ## 关键词的工作逻辑 首先还是解释一下关键词的整体工作逻辑:加权+完全匹配。展开来说,1、在没有关键词设置的情况下,用户的提问首先会和私有语料库的所有问题进行相似度打分,如果打分最高的结果超过了私有语料库设置的匹配度,则返回该结果;2、在设置了关键词的情况下,如果用户说的话中包含了设置的关键词,会对设置的关键词进行加权计算相似度,如果加权后打分最高的结果超过了设置的匹配度,则返回该结果;3、在设置了关键词,且加权计算之后,任然没有超过设置的匹配度,那么进行关键词完全匹配对比,如果用户说的话,包含了私有语料库某条问答的所有关键词,则返回该问答;4、在设置了关键词,且触发了关键词完全匹配逻辑之后,如果命中了多个问题,那么在这些问题里取相似度打分最高的结果返回。 ## 关键词的使用注意事项 根据以上的逻辑,关键词的设置,应该尽量遵循以下原则:1、多个关键词的情况下,不要设置近义词,要设置会在一句话里同时出现的词;2、如果需要通过关键词设置来提升匹配精度,那么关键词粒度要细,如“AAA的价格”“AAA的选型”这两个问题,可分别将“价格”“选型”设置为关键词,如果还有“BBB的价格”“BBB的选型”这些问题,那么就要将”AAA”,”BBB”也分别设置为关键词;3、避免使用短语,尽量使用单词作为关键词,提升关键词的命中率。 ## 关键词的使用案例 (未避免缓存的影响,我们在两个不同的机器人下面来做这个案例) 分别在两个机器人下面设置同样的问题:“断路器的选型问题”。 其中一个问题没有关键词,另外一个问题,将 “断路器”与“选型”设置为关键词。 ![](https://box.kancloud.cn/f9249e56a0a07fe3fe95b0fb62afdce8_554x300.png) ----------------------------------------------------------------- ![](https://box.kancloud.cn/420f6fa0c1d264d64fed109314e6d971_554x330.png) 我们来看下测试结果: 首先是没有设置关键词的问题,当问法与设置的问题相差较大时,机器人无法给出正确答复。 ![](https://box.kancloud.cn/000105e845086a0ab0f31c083f147c5d_347x282.png) 再来看设置了关键词的问题:当问法与设置的问题相差较大时,机器人可以给出正确答复。 ![](https://box.kancloud.cn/5066b5c3d60180061ee0f38d3cee5345_366x241.png) 下面再来看另外一个案例,围绕同一个产品的不同属性的问题,如上面的例子是断路器选型,我们在这里再加一个“断路器的价格”问题,设置如下 ![](https://box.kancloud.cn/5137a445439d01594afc327628c816f9_554x297.png) 测试结果如下:在分别提问价格和选型相关的问题,且问法与设置的问题有较大差距时,均可以返回正确的结果。 ![](https://box.kancloud.cn/21c8ae5f49b369d67ea7e3491728e220_371x265.png)