基于检索的问答系统的一个trick

问题

基于检索的问答系统,最大的问题就是知识库过大,如果使用输入和知识库里面的每篇文章计算相似度,然后匹配出和知识库相似度最大的文章,则时间复杂度过大,为 O ( N ) O(N) O(N)级别。所以需要有一种方法,它能够降低问题需要匹配的知识库大小,则可以降低时间复杂度。

倒排索引
符号化表示

构建倒排索引前先进行一些符号化表示,假设知识库的形式大概是这样的:

  • d o c 1 : [ w 11 , w 12 , w 13 … … ] doc_1:[w_{11},w_{12},w_{13}……] doc1:[w11w12w13]
  • d o c 2 : [ w 21 , w 22 , w 23 … … ] doc_2:[w_{21},w_{22},w_{23}……] doc2:[w21w22w23]
  • ……
构建倒排索引:

将知识库的内容分词,以词作为键,以文档为值,构建倒排表:

  • w i j : [ d o c i , d o c j , d o c k ] w_{ij}:[doc_i,doc_j,doc_k] wij:[doci,docj,dock]
  • w p q : [ d o c x , d o c y , d o c z ] w_{pq}:[doc_x,doc_y,doc_z] wpq:[docx,docy,docz]
处理流程

先将问题对应的文字分词,然后去倒排表里面查找相应的文档,我们可以设置一些规则,比如找到出现了和问题中有n个相同单词的文档,这样必定会排除掉很多和问题无关的文档,此时相当于减小了知识库,从而减少计算量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值