网站运营
位置:首页>> 网站运营>> 中科院软件所张俊林:Baidu分词算法分析(4)

中科院软件所张俊林:Baidu分词算法分析(4)

作者:张俊林 来源:中科院 发布时间:2008-10-06 17:44:00 

标签:分词,搜索,算法,百度


最后让我们总结归纳一下百度的拼写检查系统:

后台作业:

(1)前面的文 章我们说过,百度分词使用的词典至少包含两个词典一个是普通词典,另外一个是专用词典(专名等),百度利用拼音标注程序依次扫描所有词典中 的每个词条,然后标注拼音,如果是多音字则把多个音都标上,比如”长大“,会被标注为”zhang da/chang da“两个词条。

(2)通过标注完的 词条,建立同音词词典,比如上面的”长大“,会有两个词条: zhang daà长大” , chang daà长大。

(3)利用用户查询LOG频率信息给予每个 中文词条一个权重;

(4)OK,同音词词典建立完成了,当然随着分词词典的逐步扩大,同音词词典也跟着同步扩大;

拼写 检查:

(1)用户输入查询,如果是多个子字符串,不作拼写检查;

(2)对于用户查询,先查分词词典,如果发现有这个单词词条,OK, 不作拼写检查;

(3)如果发现词典里面不包含用户查询,启动拼写检查系统;首先利用拼音标注程序对用户输入进行拼音标注;

(4)对于标注好的拼音在同音词词典里面扫描,如果没有发现则不作任何提示;

(5)如果发现有词条,则按照顺序输出权重比较大的几个提 示结果;

拼音提示:

(1)对于用户输入的拼音在同音词词典里面扫描,如果没有发现则不作任何提示;

(2)如果 发现有词条,则按照顺序输出权重比较大的几个提示结果;

上面说过,经过分析得出百度的分词系统采用双向最大匹配分词,但是后来发现推理过程中存在一个漏洞,而且推导出来的百度分词算法步骤还是过于繁琐,所以进一步进行分析,看看是否前面的推导有错误。

那么以前的分析有什么漏洞呢?我们推导百度分词有反向最大匹配的依据是百度将“北京华烟云”分词为《北,京华烟云》,从这里看好像采用了反向最大匹配,因为正向最大匹配的结果应该是《北京,华,烟云》,但是由此就推论说百度采用了双向最大匹配还是太仓促了,前面文章我们也讲过,百度有两个词典,一个普通词典,一个专有词典,而且是专有词典的词汇先切分,然后将剩余片断交给普通词典去切分。所以上面的“北京华烟云”之所以被切分成《北,京华烟云》,另外一个可能是:京华烟云这个词汇是在专有词典里面存储的,所以先分析,这样得出“京华烟云”,剩下“北”,没什么好切分的,所以输出《北,京华烟云》。

这里只是假设,那么是否确实“京华烟云”在专有词典呢?我们再看一个例子“山东北京华烟云”,百度切分的结果是《山东,北,京华烟云》,如果“京华烟云”在普通词典,如果是反向切分,那么结果应该是《山,东北,京华烟云》,如果是正向切分应该是《山东,北京,华,烟云》,无论如何都分不出《山东,北,京华烟云》。这说明什么?说明“京华烟云”是在那个专有词典,所以先切分出“京华烟云”,然后剩下的“山东北”交由普通词典切分,明显是正向最大匹配的结果输出《山东,北》。当然按照我们在第一篇文章的算法推导“山东北”的切分也会得出《山东,北》的结论,但是明显比正向最大匹配多几个判断步骤,既然效果一样,另外一个更加简洁的方法也能说得通,那当然选择简便的方法了。所以初步判断百度采取的是正向最大匹配。

我们继续测试采用何种分词算法,为了减少专有词典首先分词造成的影响,那么查询里面不能出现相对特殊的词汇,构筑查询“天才能量级”,这里应该没有专有词典出现过的词汇,百度切分为《天才,能量,级》,看来是正向最大匹配的结果。另外,如果所有查询词汇都出现在专有词典,那么采取的是何种方法?这样首先就得保证词汇都出现在专有词典,这么保证这一点呢?我们构造查询“铺陈晓东方”,百度切分为《铺,陈晓东,方》,可以看出“陈晓东”是在专有词典的所以先切分出来。另外一个例子 “山东京城”,百度切分为《山东,京城》,说明“东京”是在普通词典的.OK,构造查询“陈晓东京华烟云”,通过前面分析可以看出两个词汇都在专有词典里面,百度切分为《陈晓东,京华烟云》,说明对于专有词典词汇也是采取正向最大匹配或者双向最大匹配。那么使用反向最大匹配了吗?构造查询例子“陈晓东方不败”,首先我们肯定“陈晓东”和“东方不败”都是在专有词典出现的,如果是正向切分,那么应该是《陈晓东,方,不败》或者《陈晓东,方,不,败》如果是反向切分则是《陈,晓,东方不败》,可以看出百度的切分是《陈晓东,方,不败》或者《陈晓东,方,不,败》,说明采用的是正向最大匹配。通过分析,百度的词典不包含“不败”这个单词,所以实际上百度的切分结果是《陈晓东,方,不,败》,很明显这和我们以前推导的算法是有矛盾的,所以以前的分析算法确实有问题,所以结论是百度采取的是正向最大匹配算法。

重新归纳一下百度的分词系统:首先用专有词典采用最大正向匹配分词,切分出部分结果,剩余没有切分交给普通词典,同样采取正向最大匹配分词,最后输出结果。

另外,GOOGLE也是采用正向最大匹配分词算法,不过好像没有那个专用词典,所以很多专名都被切碎了。

从这点讲,GOOGLE在中文词典构建上比百度差些,还需要加把子力气才行,不过这也不是什么多难的

0
投稿

猜你喜欢

  • 晚上写的,思维有点乱,没怎么整理。大家仔细看看,别拍砖啊。说到SNS,想必在CHINAZ的网友应该都比我了解的多、懂的多。我才接触1个多月S
  • 其实这个也没有什么可以改的,因为以前的也能用,不过局限性太小,现在,在代码里面用一个函数来获取表单所有数据来构造URL,避免一些不必要的麻烦
  • 1.前言:木马的危害,在于它能够远程控制你的电脑。当你成为“肉鸡”的时候,别人(控制端)就可以进入你的电脑,偷看你的文件、盗窃密码、甚至用你
  • 呵呵,很高兴asp之家的Google PR实现了0的突破:最新查询PR值为1虽然只有1,但是毕竟有进步,加油!最新更新:2008年7月26日
  • windows 2000的DNS服务器中有两种类型的搜索区域:“正向搜索区域”和&ldquo
  • 北京时间10月24日,据国外媒体报道,专门研究微软公司的独立研究机构Directions on Microsoft分析师罗布·赫尔姆(Rob
  • 如何增加网站访问量?以下是你可以考虑采用29个方法。其中,你或许已经采用了一些,有的方法你可能忘了采用,还有一些是你从来没有听说过的。总之,
  • 前言其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。本文
  • 前段时间,又一个SNS网站在短时间内得到了大量互联网人士的关注,那就是搜狐推出的“白社会”。除去依托于搜狐这个大平台外,还因为其在细节方面的
  • 很多人谈架构师,其实有两种架构师,一种是业务架构,一种是技术架构。我的经验和教训局限于技术架构,所以本文特指技术架构师。毕业前一年,毕业后7
  • 1打开:global.php查找:$db_bbsname && $db_bbstitle =&
  • OFFICE文档是我们办公中使用最普遍的文档格式之一,它里面存储内容一般都是涉及公司或个人的重要内容,在很多情况下是禁止别人修改或者查看的。
  • 随着时代的不断发展和推进,我们看到了今天的互联网也在逐渐的完善和成熟,回眸一下05年前的站长圈子,那个时候大家都很单纯的在讨论网络技术,没有
  • 今天,收到Google Ad Planner小组发来的邮件,说我已经被接受为Google Ad Planner的beta测试员,可以登录提前
  • 10月21日消息,全球最大下载引擎迅雷,从2009年9月底至10月底隆重开展“迅雷2010高校人才发现计划&rd
  • 现在每个企业几乎都有自己的网站,而且有些网站做的很美观。对一个企业站来说,抓住客户签到单子是很重要的,有的会花大价钱去找SEO公司优化,也有
  • 第一步:准备好精美、快速空间、网站程序并发布少而精的网站内容要点:不求程序功能强大,但求程序速度快不要用采集功能,发布大量垃圾信息 ,就要手
  • 主服务器设置Apache服务器需要各种设置,以定义自己使用各种参数以提供Web服务。对于使用虚拟主机的情况,除了在虚拟主机的定义项中覆盖的设
  • 很多SEO文章里都提及301重定向,能说说它的作用吗?当你的站点域名发生变化或者网页地址更改(网页更换存放目录或者网页文件的名称发生改变),
  • 今天调试asp程序的时候,一个问题困扰我了一整天,老是提示用户名和密码错误,现在才发现,原来是iis搞的鬼...不过在这过程中也学到不少东西
手机版 网站运营 asp之家 www.aspxhome.com