银鸽投资股吧:有事找百度,百度真的是神吗?请看分词技术

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 02:28:20
有事找百度,百度真的是神吗?请看分词技术 (2011-05-25 21:14:19)

   有事找百度。

   不知道这句话,大家陌生不?反正我是现在不陌生了。

   还记得没有创业,做饰品这一行业开始,在大连去学过软件编程等等。那时候老师就说,让我们多学会运用百度。

   而,听陈老师最近的讲解后,终于知道了百度。

   我们首先要知道,百度搜索引擎至少有两个字典库,其中一个是专用字典,另一个普通字典。百度的分词系统:首先用专有词典采用最大正向匹配分词,切分出部分结果。剩余没有切分交给普通词典。同样采取正向最大匹配分词,最后输出结果。另外,GOOGLE也是采用正向最大匹配分词算法,不过好像没有那个专用词典,所以很多专名都被切碎了,小心你们的名字不要在GOOGlE给切碎了,在中文分词技术这点上GOOGLE显然没有百度做得细致,还需要加大力度才行。

   具体我们来看看:当我们输入一个词进行查询时,百度首先是查询专用词典(人名,部分地名等),将专有名称切出,剩下的部分采取双向匹配分词策略。如果两者切分结果相同,说明没有歧义,直接输出分词结果。如果不一致,则输出最短路径的那个结果,如果长度相同。则选择单字词少的那一组切分结果。如果单字也相同,则选择正向分词结果。这个专用词典录入了人名(比如大长今)、称谓(比如老太太)、部分地名(比如阿联酋等)。估计百度是采用学术界公布的比较新的命名实体识别算法。

    搜索引擎检如何判断用户输入是否是有错误呢?对于中文一般是拼写错误,那我们就来分析拼写检查系统关注以下几个问题:(1)系统如何判断用户的输入是有可能发生错误的查询?百度有又是如何做到这些的?百度判断用户输入是否错误的标准,应该是查字典,如果发现字典里面不包含这个词汇,那么很有可能是个错误的输入。此时启动错误提示功能。例如在百度输入查询“紫材”。百度提供的提示词汇为: 您要找的是不是“紫菜”(即“紫材”的同音字)。由此看出,百度必然维持着一个同音词词典。里面保留着同音词信息。比如可能包含着下面这条词条: “ zi cai  紫材”,另外还有一个标注拼音程序,现在能够看到的基本流程是:用户输入“紫材”,查词典。发现没有这个词汇。启动标注拼音程序。将“紫材”标注为拼音“zi cai”。然后查找同音词词典,发现同音词“紫菜”,那么提示用户可能的正确拼写。

    整体流程看起来很简单,但是还有一些遗留的小问题。比如是否将词表里面所有同音词都作为用户的提示信息?比如某个拼音有10个同音词,是否都输出呢?百度并没有将所有同音词都输出,而是选择一定筛选标准,选择其中几个输出。

最后总结一下百度的拼写检查系统:

(1)百度分词使用的词典至少包含两个词典一个是普通词典,另外一个是专用词典(专名等), 百度利用拼音标注程序依次扫描所有词典中的每个词条,然后标注拼音,如果是多音字则把多个音都标上

(2)通过标注完的词条,建立同音词词典,

比如上面的”长大”,会有两个词条: zhang daà长大” chang daà长大。

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

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

 

拼写检查:

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

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

(3)如果发现词典里面不包含用户查询,启动拼写检查系统:

首先利用拼音标注程序对用户输入进行拼音标注

(4)对于标注好的拼音在同音词词典里面扫描,

如果没有发现则不作任何提示;

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

拼音提示:

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

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

对百度分词算法的进一步分析,上面说过,经过分析得出百度的分词系统采用双向最大匹配分词.