中科院软件所张俊林:Baidu分词算法分析(3)
作者:张俊林 来源:中科院 发布时间:2008-10-06 17:44:00
Spelling Checker拼写检查错误提示(以及拼音提示功能)
拼写检查错误提示是搜索引擎都具备的一个功能,也就是说用户提交查询 给搜索引擎,搜索引擎检查看是否用户输入的拼写有错误,对于中文用户来说一般造成的错误是输入法造成的错误。那么我们就来分析看看百度是 怎么实现这一功能的。
我们分析拼写检查系统关注以下几个问题:
(1)系统如何判断用户的输入是有可能发生错误的查询呢?
(2)如果判断是可能错误的查询输入,如何提示正确的词汇呢?
那么百度是如何做的呢?百度判断用户输入是否错误的 标准,我觉得应该是查字典,如果发现字典里面不包含这个词汇,那么很有可能是个错误的输入,此时启动错误提示功能,这个很好判断,因为如果 是一个正常词汇的话,百度一般不会有错误提示,而你故意输入一个词典不可能包含的所谓词汇,此时百度一般会提示你正确的检索词汇。
那么百度是怎么提示正确词汇的呢?很明显是通过拼音的方式,比如我输入查询“ 制才”,百度提供的提示词汇为: “:制裁 质材 纸材“,都是同 音字。所以百度必然维持着一个同音词词典,里面保留着同音词信息,比如可能包含着下面这条词条: “ zhi cai à制裁,质材,纸材”,另外还有一 个标注拼音程序,现在能够看到的基本流程是: 用户输入“ 制才”,查词典,发现没有这个词汇,OK,启动标注拼音程序,将“ 制才”标注为拼音“zhi cai”,然后查找同音词词典,发现同音词“ 制裁,质材,纸材”,那么提示用户可能的正确拼写。
整体流程看起来很简单,但是还有一些遗留 的小问题,比如是否将词表里面所有同音词都作为用户的提示信息呢?比如某个拼音有10个同音词,是否都输出呢?百度并没有将所有同音词都输 出而是选择一定筛选标准,选择其中几个输出。怎么证明这一点?我们看看拼音“liu li”的同音词,紫光输入法提示同音词汇有“ 流丽 流离 琉璃 流利”4个,我们看看百度返回几个,输入“流厉”作为查询,这里是故意输入一个词典不包含的词汇,这样百度的拼写检查才开始工作,百度提示: “ 琉璃刘丽 刘莉 ”,这说明什么?说明不是所有同音词都输出,而是选择输出,那么选择的标准是什么?我能够猜测到的方法是对于用户查询LOG进行 统计,提取用户查询次数多的那些同音词输出,如果是这样的话,上面的例子说明用户搜索“琉璃”次数比其它的都要高些,次之是“ 刘丽”,再次是“ 刘莉”,看来大家都喜欢查询自己或者认识的人的名字。
另外一个小问题:同音词词典包含2字词,3字词,那么是否包含4字词以及更长的词 条?是否包含一字词? 这里一字词好回答,不用测试也能知道肯定不包含,因为你输入一个字,谁知道是否是错误的呢?反正只要是汉字就能在词表 里面找到,所以没有判断依据。二字词是包含的,上面有例子,三字词也包含,比如查询 “中城药”百度错误提示:“中成药”,修改查询为“重城药”,还 是提示“中成药” ,再次修改查询 “重城要”,百度依然提示“中成药”。 那么4字词汇呢?
百度还是会给你提示的,下面是个例子:
输入:静华烟云 提示 京华烟云
输入:静话烟云 提示 京华烟云
输入:静话阎晕 提示 京华烟云
那么更长的词汇是否提 示呢?也提示,比如我输入: “落花世界有风军”,这个查询是什么意思,估计读过古诗的都知道,看看百度的提示“落花时节又逢君”,这说明什么?说 明同音词词典包含不同长度的同音词信息,另外也说明了百度的核心中文处理技术,也就是那个词典,还真挺大的。
但是,如果用户输入的 查询由两个或者两个以上子字符串构成,那么百度的错误提示功能就罢工了,比如输入查询“哀体”,百度提示“艾提 挨踢”,但是。输入为 “我 哀体 ”,则没有任何错误提示。
还有一个比较重要的问题:如果汉字是多音字那么怎么处理?百度呢比较偷懒,它根本就没有对多音字做处理。我 们来看看百度的一个标注拼音的错误,在看这个错误前先看看对于多音字百度是怎么提示错误的,我们输入查询“俱长”,百度提示“剧场 局长”, “俱长“的拼音有两个:”ju zhang /ju chang“ ,可见如果是多音字则几种情况都提示。.现在我们来看看错误的情况, 我们输入查询”剧常“,百度 提示”:剧场局长“,提示为”剧场“当然好解释,因为是同音字,但是为什么 ”局长“也会被提示呢?这说明百度的同音字词典有错误,说明在”ju chang“这个词条里面包含”局长“这个错误的同音词。让我们顺藤摸瓜,这个错误又说明什么问题呢?说明百度的同音词典是自动生成的,而且没有 人工校对。还说明在自动生成同音词典的过程中,百度不是根据对一篇文章标注拼音然后在抽取词汇和对应的拼音信息获得的,而是完全按照某个 词典的词条来标注音节的,所以对于多音字造成的错误无法识别出来,如果是对篇章进行拼音标注,可能就不会出现这种很容易发现的错误标注。 当然还有另外一种解释,就是”局长“是故意被百度提示出来可能的正确提示词汇,因为考虑到南方人”zh“和 ”ch“等前后鼻音分不清么,那么是这 样的么?我们继续测试到底是何种情况。是百度有错误还是这是百度的先进的算法?
我们考虑词汇”长大 “,故意错误输入为”赃大“,如果 百度考虑到了前后鼻音的问题,那么应该会提示”长大“,但是百度提示是”藏大“。这说明什么?说明百度并没有考虑前后鼻音问题,根本就是系统错 误。 我们输入查询”悬赏“,故意将之错误输入为”悬桑“,没有错误提示,说明确实没有考虑这种情况。前鼻音没有考虑,那么后鼻音考虑了么,我们 输入”:经常“,故意改为后鼻音 ”经缠“,百度提示为”经产 经忏“,还是没有考虑后鼻音。这基本可以确定是百度系统的错误导致。
根据以 上推导, 我们可以得出如下结论:百度是将分词词典里面每个词条利用拼音标注程序标注成拼音,然后形成同音词词典,所以两个词典是同样大的 ,而且这个词典也随着分词词典的增长而在不断增长。 至于标注过程中多音字百度没有考虑,如果是多音字就标注成多个发音组合,通过这种方式 形成同音词词典。这样的同音词词典显然包含着很多错误。
最后一个问题:百度对于英文进行拼写检查么?让我们试试看,输入查 询”china“,不错,搜到不少结果,专注中文搜索的百度还能搜索到英文,真是意外的惊喜。变换一下查询”chine“,会更加意外惊喜的给我们提 示”china“吗?百度提示的是: 吃呢持呢,原来是不小心触发了百度的拼音搜索功能了。那么拼音搜索和中文检查错误是否采用同一套同音词词典 呢,让我们来实验一下,搜索”rongji“,百度提示” 榕基 溶剂 容积“,OK,换个中文查询”容机“,百度提示” 榕基 溶剂容积“,看来使用的是同一套 同音词词典。也就是说百度的中文纠错和拼音检索使用的机制相同,中文纠错多了一道拼音注音的过程而已。难道这就是传说中那个百度的”事实 上是一个无比强大的拼音输入法“的拼音提示功能么?


猜你喜欢
- 地方网站竞争激烈,各个网站都习惯将注意力放在了竞争对手上。殊不知对于地方网站,尤其是发展初期的地方网站来说,当地的百度贴吧也是不容忽视的一点
- 打开:require/showimg.php查找:if (!$faceurl || !$user_a[0]&n
- 今日淘特Asp.Net CMs推出2.0版,系统新增加了Tag标签,会员投稿,发布网站地图等功能。淘特Asp.Net Cms(V2.0) 2
- 第一步:创建自定义网络docker network create --subnet=172.18.0.0/24 docker-br0备注:这
- ixwebhosting作为国外知名的主机商之一,购买它们的主机时,它不仅赠送免费域名,还赠送独立IP,当我们使用免费域名的时候,有时为了某
- 11月19日消息,中国领先的社区平台与服务提供商康盛创想(Comsenz)旗下核心产品Discuz!新版正式发布。全新推出的Discuz!
- 交换空间是当今计算的一个共同方面,不管操作系统如何。Linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个
- 做站有2年的时间,做过的站加起来应该有200个了吧,每月收入1W左右。看过无数的软文,交换过无数的链接,遇到无数的站长兄弟,回想起来,非常的
- 说句实在话,作为中国排名第一的搜索引擎,出现这种情况真的是很不应该,但是却着实出现了。在五月的时候,很多的seoer就讨论过这个现象。有很多
- 这是我不小心遇到的呵!昨天在同类(免费资源)站看到我朋友载入的广告代码<DIV class=ggad><span id=&
- 作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、
- 北京时间3月3日早间消息,据国外媒体报道,雅虎CEO卡罗尔·巴茨(Carol Bartz)周二在接受美国CNBC采访时讽刺Facebook缺
- Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf, acce
- 下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们
- 前言大家都知道,我们使用Vim的一点好处就是,可定制性非常高,如果遇到任何让自己感到不适的痛点,都可以通过配置甚至开发一款插件来解决。开始使
- 随着杀毒软件的身躯越来越庞大,资源占用越来越多,“裸奔”的人也越来越多.其实只要有良好的习惯,平时再多加注意,就算不装杀毒软件也威胁不大.但
- PHPWind v7.3.2开启门户模式为默认后打开read页面导致浏览器死掉问题。打开:mode/area/template/read.h
- 如何使用Godaddy主机拷贝Account Manager的文件到自己选择的目的地去呢?首先. 登陆你的Account Manager.第
- 情人节来喽,动手做一张Silverlight贺卡送给她(他)吧。只须简单的几步,就可以在线完成贺卡定制。支持livespace/Flicke
- 最新消息,日前国内知名垂直IT资讯网站泡泡网( * OP)推出专业社交网络(SNS)平台我的炮兵团(http://tuan.pcpop.co