基于ElasticSearch的检索式智能问答方案

思路:

在ElasticSearch数据库中以“问题-回答”对的方式构建知识库,对用户输入的问题进行预处理后,在ES中检索相应的答案,返回答案。

 

方案:

 

具体过程讲解:

1、敏感词汇过滤:

非必要功能,只是为了防止用户输入政治错误或者黄赌毒相关词汇。与敏感词汇库进行比对即可完成。

2、判断问题是否能匹配到相应的实体模板

在实际生活中,我们对同一个实体会有许多不同的叫法,比如“上学”也常常说成“读书”。此功能的意义便在于我们可以对同一事物的不同问法匹配到知识库中相应的“问题”。

3、对问句进行中文分词,去除停用词

中文分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,是除停用词前一步必要操作。结巴分词分最常用的分词技术。

停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。可以通用与停用词库进行匹配实现些功能

4、根据聊天问句检索相似度为90%以上问句的答案

es查询的时候控制可以相似度,eg:

GET /nm*/_search
{
  "query": {
    "match": {
      "title": {
         "query" : "国家利益高于一",
         "minimum_should_match": "90%"
      }
    }
  }
}

相似度查询原理:计算词在数据库文本中出现的频率,以及数据库文本中含有该词的文本数量,然后通过TF-IDF模型的计算公式计算出数据库中文本与查询文本的相似度值,根据相似度值降序快速返回搜索结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值