有限自动机—query中的where识别

 
  1. 有限状态自动机:5元组(Ʃ,Q,δ,q0,A
    • Ʃ:有限的输入字母表
    • Q:有限的状态集合
    • δ:从Ʃ* QQ的函数,状态转义函数
    • q0:初始状态
    • A:可接受状态集,AQ的子集
  2. DFA & NFA的区别:
    • DFA的转移函数δ(Qi,x)->Qj
    • NFA的转移函数δ(Qi,x)->{Qk…Qj}
    • DFA是待匹配文本驱动,若当前状态匹配失败,则匹配结束,匹配效率高。若要知道文本匹配到的所有规则,需要较多的额外的内存开销。
    • NFA是规则驱动,保留状态,以备回溯,若当前状态匹配失败,根据保存状态进行回溯,继续匹配,匹配效率低。
  3. 搜索引擎中query中的whatwhere解析
    • 地址实际是一棵5层树,从根到叶节点分别是:全国、省、市、区县、地标。
    • 使用自动机识别有效地址:将合法的地址结构建立成有限自动机,如下图所示。在上图中,当前的状态是“省”,如果遇到一个词组和(区)县名有关,我们就进入状态“区县”;如果遇到的下一个词组和城市有关,就进入“市”的状态。缺点:使用自动机识别地址,当用户输入的地址不标准或者有错别字,无法识别。即有限自动机只能精确匹配,不能模糊匹配,不能给出一个字串为有效地址的可能性。所以使用基于概率的有限自动机。举例:对于用户输入的“北京市双清路附近的酒家”,Google 本地会自动识别出地址“北京市双清路”和要找的对象“酒家”。

    • 建立where索引以识别query中的whatwhere

     根据where资源,建立where索引;

     对query切词,将切分后的词在索引中查找;

     将切分后的词的同义词在索引中查找;

     对多个term对应的拉链进行归并,并过滤;

     前向查找解决:“北京市海淀区海底捞”中的where识别;

     后向查找解决:“海底捞北京海淀区”中的where识别;

     当query没有结果时,对其进行纠错,继续以上操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值