中国IDC圈5月29日报道:在网络营销中,要记住一点的是:判断一个分词系统好不好,关键看两点, 一个是消除歧义能力;一个是词典未登录词的识别比如人名,地名,机构名等。
那么百度用的是什么方法?我的判断是用双向最大匹配算法。至于怎么推理得出的,让我们一步步来看。当然,这里首先有个假设,百度不会采取比较复杂的算法,因为考虑到速度问题。下面网站推广编辑来和大家具体分析一下。
我们提交一个查询“毛泽东北京华烟云”,又一个不知所云的网络营销查询,尽管不知所云但是自有它的道理,我想看看百度的分词是如何消歧以及是否有词典未登录词的识 别的功能,如果是正向最大匹配算法的话,那么输出应该是:”毛泽东/北京/华/烟云”,如果是反向最大匹配算法的话,那么输出应该是:”毛/泽/东北/京 华烟云”,我们看看百度的分词结果:”毛泽东/北/京华烟云”,一个很奇怪的输出,跟我们的期望相差较多,但是从中我们可以获得如下信息:网站推广百度分词可以识 别人名,也可以识别”京华烟云”,这说明有词典未登录词的识别的功能,我们可以假设分词过程分为两个阶段:第一阶段,先查找一个特殊词典,这个词典包含一 些人名,部分地名以及一些普通词典没有的新词,这样首先将”毛泽东”解析出来,剩下了字符串”北京华烟云”,而”北/京华烟云”,可以看作是反向最大匹配 的分词结果。这样基本说得通。为了证明这一点,我们提交查询”发毛泽东北”,我们期望网络营销两种分词结果,一个是正向最大匹配《发毛,泽,东北》, 一个是上述假设的结果《发,毛泽东,北》,事实上百度输出是第二种情况,这样基本能确定百度分词采取了至少两个词典,一个是普通词典,一个是 专用词典(人名等)。而且是专用词典先切分,然后将剩余的片断交由普通词典来切分。
继续测验,提交查询“古巴比伦理”,如果是正向最大匹配,那么结果应该是《古巴比伦,理》,如果是反向最大匹配,那么结果应该是《古巴,比,伦理》,事实上百度的分词结果是《古巴比伦,理》,从这个例子看,好像用了正向最大匹配算法;此外还有一些例子表明好像是使用网络营销正向最大匹配的;但是且慢,我们看这个查询“北京华烟云”,正向最大匹配期望的结果是《北京,华,烟云》,而反向最大匹配期望的结果是 《北,京华烟云》,事实上百度输出的是后者,这说明可能采用的反向最大匹配;从这点我们可以猜测百度采用的是双向最大匹配分词算法,如果网站推广正向和反向匹配分词结果一致当然好办,直接输出即可;但是如果两者不一致,正向匹配一种结果,反向匹配一种结果,此时该如何是好呢?从上面两个例子看,在这种情况下,百度采取最短路径方法,也就是切分的片断越少越好,比如《古巴,比,伦理》和《古巴比伦,理相比选择后者,《北 京,华,烟云》和《北,京华烟云》相比选择后者。还有类似的一些例子,这样基本可以解释这些输出结果。
但是仍然遗留的问题是:如果正向反向分词不一致,而且最短路径也相同,那怎么办?输出正向的还是反向的结果?我们再来看一个例子。提交查询“遥远古古巴比 伦”,这个网络营销查询被百度切分为《遥远,古古,巴比伦》,说明词典里面有”巴比伦”,但是是否有”古巴比伦”这个词汇不确定,此时看不出是正向切 分还是反向切分得出的结果,换查询为“遥远古巴比伦”,此时被切分为“遥远/古巴比伦”,这说明词典里面有”古巴比伦”这个词汇,这说明了“遥远古古巴比 伦”是正向最大匹配的结果。那为什么“遥远古古巴比伦”不会被反向切分为”遥/远古/古巴比伦”呢,百度的可能选择是这种情况下选择单字少的那组切分结果。
当然还可以继续追问:如果切分后单字也一样多,那怎么办?最后看一个例子,查询“王强大小:”,百度将其切分为“王/强大/小”,是正向切分的结果,如果是反向的会被切分为“王/强/大小”,这说明有歧义而且单字也相同则选择正向切分结果。
OK,看到这里可能头已经有些晕了,最后总结一下网络营销中百度的分词算法,当然里面还是有猜测的成分,算法如下:
首先查询专用词典(人名,部分地名等),将专有名称切出,剩下的部分采取双向分词策略,如果两者切分结果相同,说明没有歧义,直接输出分词结果。如果不一 致,则输出最短路径的那个结果,如果长度相同,则选择单字词少的那一组切分结果。如果单字也相同,则选择正向分词结果。
这个专用词典登录了人名(比如大长今),称谓(比如老太太),部分地名(比如阿联酋等),估计网站推广百度采用学术界公布的比较新的命名实体识别算法从语料库里面不断识别出词典未登录词,逐渐扩充这个专门词典。如果这就是优势的话,那么这个优势能够保持多久就是个很明显的问题。
Spelling Checker拼写检查错误提示(以及拼音提示功能)
拼写检查错误提示是搜索引擎都具备的一个功能,也就是说用户提交查询 给搜索引擎,搜索引擎检查看是否用户输入的拼写有错误,对于中文用户来说一般造成的错误是输入法造成的错误。那么我们就来分析看看百度是 怎么实现这一功能的。
总结:在网络营销中,百度一直宣传自己在中文处理方面的优势,从上面看,网络营销分词算法并无特殊之处,消歧效果并不理想,即使百度采取比上述分词算法复杂些的算法也难以说成是优势, 如果说网站推广百度有优势的话,唯一的优势就是那个很大的专用词典。