搜索引擎纠错技术

from:https://www.zhihu.com/question/24675366?sort=created
 
中文:主要是从拼音角度,比如输入“雷缝”(雷锋),使用编辑距离会改变要查询的语义,所以我们从同音词入手,使用噪声信道模型,先确定出一些常见的相关词,再确定概率。
 
英文:主要是单词拼写,可以使用编辑距离。
 
 
 
 
 
之前自己实习的时候,根据同事的讲解,自己的理解,总结过一篇文章,这里copy过来,刚好回答这个问题。

总结一下问题:

根据用户输入的query,以及其它信息,判断用户是否输入错误,如果输入错误,猜测用户原本想输入的query并提示。


再举几个栗子:

    • case1:当用户在搜索引擎中输入query时,本来想输入,“中国好声音”,但是因为不小心,输入了“中国好sengyin”,这时需要搜索引擎能发现用户输入了错误的查询语句,提示原本用户想输入的query,“中国好声音”,
    • case2:用户本想输入,“肯德基”,但是因为记不清这几个字的字形,只记得字的发音,错误地输入了,“肯得鸡”,这里,搜索引擎需要发现用户原本想输入的query,“肯德基”

理论模型:Noisy Channel Model(噪声信道模型)
<img src="https://pic3.zhimg.com/50/v2-c696fddac63c684d7af1327c2d756db6_hd.jpg" data-rawwidth="541" data-rawheight="89" class="origin_image zh-lightbox-thumb" width="541" data-original="https://pic3.zhimg.com/v2-c696fddac63c684d7af1327c2d756db6_r.jpg">

噪声信道试图通过带噪声的输出信号恢复输入信号,形式化定义为:

<img src="https://pic1.zhimg.com/50/v2-8c49e008e13b1d5a4d50e25f34cd504c_hd.jpg" data-rawwidth="658" data-rawheight="66" class="origin_image zh-lightbox-thumb" width="658" data-original="https://pic1.zhimg.com/v2-8c49e008e13b1d5a4d50e25f34cd504c_r.jpg">

应用到这个问题:把用户输入的query记为input_query,用户原来想输入的query记为correct_query,那么correct_query对应于噪声信道模型的Input,input_query对应于那个模型的Output

我对所有可对的correct_query,我们要分别计算P(input_query | correct_query) * P(correct_query ),

  1. P(correct_query) 可以使用unigram语言模型统计得出
  2. P(input_query | correct_query) 可以使用input_query和correct之间的编辑距离和拼音编辑距离、可以从模糊音、形似字字典的数据给出input_query和correct_query之间的距离信息,可以从用户session中挖掘可能可以用到的数据,因为有些用户会,主动对自己输错的query进行修改直到正确为止,P(input_query | correct_query)和用户将input_query改写成correct_query的次数 / input_query出现的总次数成正比例关系。

纠错总体分这么几个方面:

  1. 同音纠错,
  2. 形似字纠错(五笔和手写输入,会带来形似字错误),
  3. “多字、少字、顺序错误”,
  4. 模糊音纠错,

举个栗子:

  • case1: 比如用户输入,“kendeji”,那么,从同音纠错的角度,可能的correct_query可以是“肯德基”,“肯得鸡”,从形似字纠错方面看没有什么可能的correct_query,“多字、少字、顺序错误”角度,可以是“肯德基店”,我们先获取这些可能的correct_query的集合,称之为候选集,然后对于集合中的每个correct_query计算P(input_query | correct_query) * P(correct_query ),值最大为最后的提示的correct_query
  • case2:比如用户输入,“汗丽轩”,从同音纠错的角度,可能的correct_query可以是“汉丽轩”,“韩丽轩”,从形似字纠错方面看correct_query可能是“汗雨轩”,模糊音纠错角度看,可能是,“汉腻轩”,我们先获取这些可能的correct_query的集合,称之为候选集,然后对于集合中的每个correct_query计算P(input_query | correct_query) * P(correct_query ),值最大为最后的提示的correct_query

ps:纠错时会采用一个策略,叫片段纠错策略,会把长度比较大的query,先切段,再对每个片段进行纠错

 

 

############################################################################

 

转载于:https://www.cnblogs.com/mdumpling/p/8662686.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值