中科院软件所
2005年11月
上面说过,经过分析得出百度的分词系统采用双向最大匹配分词,但是后来发现推理过程中存在一个漏洞,而且推导出来的百度分词算法步骤还是过于繁琐,所以进一步进行分析,看看是否前面的推导有错误.
那么以前的分析有什么漏洞呢?我们推导百度分词有反向最大匹配的依据是百度将"北京华烟云"分词为<北,京华烟云>,从这里看好像采用了反向最大匹配,因为正向最大匹配的结果应该是<北京,华,烟云>,但是由此就推论说百度采用了双向最大匹配还是太仓促了,前面文章我们也讲过,百度有两个词典,一个普通词典,一个专有词典,而且是专有词典的词汇先切分,然后将剩余片断交给普通词典去切分.所以上面的"北京华烟云"之所以被切分成<北,京华烟云>,另外一个可能是:京华烟云这个词汇是在专有词典里面存储的,所以先分析,这样得出"京华烟云",剩下"北",没什么好切分的,所以输出<北,京华烟云>.
这里只是假设,那么是否确实"京华烟云"在专有词典呢?我们再看一个例子"山东北京华烟云",百度切分的结果是<山东,北,京华烟云>,如果"京华烟云"在普通词典,如果是反向切分,那么结果应该是<山,东北,京华烟云>,如果是正向切分应该是<山东,北京,华,烟云>,无论如何都分不出<山东,北,京华烟云>.这说明什么?说明"京华烟云"是在那个专有词典,所以先切分出"京华烟云",然后剩下的"山东北"交由普通词典切分,明显是正向最大匹配的结果输出<山东,北>.当然按照我们在第一篇文章的算法推导"山东北"的切分也会得出<山东,北>的结论,但是明显比正向最大匹配多几个判断步骤,既然效果一样,另外一个更加简洁的方法也能说得通,那当然选择简便的方法了.所以初步判断百度采取的是正向最大匹配.
我们继续测试采用何种分词算法,为了减少专有词典首先分词造成的影响,那么查询里面不能出现相对特殊的词汇,构筑查询"天才能量级",这里应该没有专有词典出现过的词汇,百度切分为<天才,能量,级>,看来是正向最大匹配的结果.另外,如果所有查询词汇都出现在专有词典,那么采取的是何种方法?这样首先就得保证词汇都出现在专有词典,这么保证这一点呢?我们构造查询"铺陈晓东方",百度切分为<铺,陈晓东,方>,可以看出"陈晓东"是在专有词典的所以先切分出来.另外一个例子 "山东京城",百度切分为<山东,京城>,说明"东京"是在普通词典的.OK,构造查询"陈晓东京华烟云",通过前面分析可以看出两个词汇都在专有词典里面,百度切分为<陈晓东,京华烟云>,说明对于专有词典词汇也是采取正向最大匹配或者双向最大匹配.那么使用反向最大匹配了吗?构造查询例子"陈晓东方不败",首先我们肯定"陈晓东"和"东方不败"都是在专有词典出现的,如果是正向切分,那么应该是<陈晓东,方,不败>或者<陈晓东,方,不,败>如果是反向切分则是<陈,晓,东方不败>,可以看出百度的切分是<陈晓东,方,不败>或者<陈晓东,方,不,败>,说明采用的是正向最大匹配.通过分析,百度的词典不包含"不败"这个单词,所以实际上百度的切分结果是<陈晓东,方,不,败>,很明显这和我们以前推导的算法是有矛盾的,所以以前的分析算法确实有问题,所以结论是百度采取的是正向最大匹配算法.
重新归纳一下百度的分词系统:首先用专有词典采用最大正向匹配分词,切分出部分结果,剩余没有切分交给普通词典,同样采取正向最大匹配分词,最后输出结果.
另外,GOOGLE也是采用正向最大匹配分词算法,不过好像没有那个专用词典,所以很多专名都被切碎了.
从这点讲,GOOGLE在中文词典构建上比百度差些,还需要加把子力气才行,不过这也不是什么多难的事.
引用:
http://www.cnblogs.com/wormday/archive/2005/11/28/286454.html
分享到:
相关推荐
本人写的搜索引擎部分抓词,里面含有数据库配置文件,以及本人开发心得。需要的可以下载来看看。采用的是正向最大匹配算法。目前只是分词部分结束。前台是简单的页面。使用了smarty模版分离代码。
分词算法设计思想分词算法设计思想
分词搜索引擎 分词搜索引擎 分词搜索引擎
分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 ...
百度(baidu)分词算法分析,很好的seo资料!
词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语...
百度分词算法分析.rar 讲诉BAIDU搜索引擎的分词算法。不过有点技术深度。。。
中文自动分词算法是自然语言处理中的一项基本技术,旨在将中文文本切分成单个词语,以便更好地进行信息检索、自动标引、自动文摘、机器翻译、语言学研究、搜索引擎研究和自然语言理解等领域的应用。 分词的基本知识...
中文分词算法设计 在本文中,我们将讨论中文分词算法的设计和实现。中文分词算法是自然语言处理和信息检索领域中的一个重要问题。本文将从最大匹配法的缺陷开始,讨论中文分词算法的设计目标和实现方法。 1. 最大...
搜索引擎关键技术之分词介绍,对搜索引擎感兴趣的朋友多多支持。
最新逆向最大匹配分词算法 盘古分词 分词算法 中文分词 源码
word分词是一个Java实现的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。 能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。 同时提供了Lucene...
分词匹配算法是自然语言处理领域中的一种重要技术,它的主要目的是将汉字串切分为单个词语,以便于进一步的语言处理。分词匹配算法有多种类型,其中机械分词方法是最基本的一种,机械分词方法可以分为正向最大匹配和...
中文词库-分词算法必备 是加权的,经过BP算法的权重训练
云寻觅搜索引擎分词
使用C sharp开发搜索引擎 C#搜索引擎开发实战 26-分析器(共15页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 27-概念搜索(共13页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 28-相关度打分(共12页...
使用C sharp开发搜索引擎 C#搜索引擎开发实战 26-分析器(共15页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 27-概念搜索(共13页).ppt 使用C sharp开发搜索引擎 C#搜索引擎开发实战 28-相关度打分(共12页...
关于百度的分词算法详解
分词算法baidu分词算法分析之,是做seo优化的钥匙!
之前在广州点石茶话会上也有重点讨论过百度分词算法,那时很多SEOer都认为百度在测试分词技术中,有些关键词带公司字眼的关键词,在搜索结果内容时基本上跟关键词不乎核。下面是中科院软件所张俊林一篇百度分词算法...