相关文章
北京网站制作网站排名因素列举(2)
北京网站设计免费电影网站的推广方法
北京网站建设互联网:网络广告盈利模式发展趋势
企通互联我国农业电子商务的现状与前景分析
北京网页设计Google桌面搜索中文版试用体验(2)
北京网页设计推荐:增加反向链接的101个方法
www.qitongnet.com新形式下企业网络营销新手段
北京网页设计善良土匪:标题党是这样炼成的(改写)
网站设计baidu分词算法分析之二
北京网站设计如何策划你的导出链接
品牌理念
北京网站建设最佳合作伙伴
北京网站建设专家企通互联
竭诚为您提供网站建设服务!
友好连接
文章搜索
你的位置:首页 >> 网站推广 >> 北京网站设计北京网站制作baidu分词算法分析之一
北京网站设计北京网站制作baidu分词算法分析之一
作者: 北京网站建设 日期:2008-03-27 06:09:39 来源: http://www.qitongnet.com
资深北京网站建设公司企通互联,专业致力于北京网站建设,北京网站制作,北京网站设计,北京网页设计领域,千余网站建设案例,公司拥有国内一流的网站建设、网站制作、网页设计团队,如果您已经有网站的,看看我们精美的网站建设案例也无妨.北京网站建设网址:http://www.qitongnet.com
=======================================================================================
|
北京网站建设 随着搜索经济的崛起,人们开始越加关注全球各大搜索引擎的性能、技术和日流量。作为企业,会根据搜索引擎的知名度以及日流量来选择是否要投放广告等;作为普通网民,会根据搜索引擎的性能和技术来选择自己喜欢的引擎查找资料;作为技术人员,会把有代表性的搜索引擎作为研究对象. 搜索引擎经济的崛起,又一次向人们证实了网络所蕴藏的巨大商机。网络离开了搜索将只剩下空洞杂乱的数据,以及大量等待去费力挖掘的金矿。www.qitongnet.com 企通互联 但是,如何设计一个高效的搜索引擎?我们可以以百度所采取的技术手段来探讨如何设计一个实用的搜索引擎.搜索引擎涉及到许多技术点,比如查询处理,排序算法,页面抓取算法,CACHE 北京网站建设机制,ANTI-SPAM等等.这些技术细节,作为商业公司的搜索引擎服务提供商比如百度,GOOGLE等是不会公之于众的.我们可以将现有的搜索引擎看作一个黑盒,通过向黑盒提交输入,判定黑盒返回的输出大致判定黑盒里面不为人知的技术细节.北京网站设计 北京网站制作 查询处理与分词是一个中文搜索引擎必不可少的工作,而百度作为一个典型的中文搜索引擎一直强调其”中文处理”方面具有其它搜索引擎所不具有的要害技术和优势.那么我们就来看看百度到底采用了哪些所谓的核心技术.网站设计 北京网站建设 我们分两个部分来讲述:查询处理 北京网站制作/中文分词.北京网站设计 北京网页设计 一. 查询处理网页设计 网页设计 用户向搜索引擎提交查询,搜索引擎一般在接受到用户查询后要做一些处理,然后在索引数据库里面提取相关的信息.那么百度在接受到用户查询后做了些什么工作呢?网站建设 北京网页设计 1. 假设用户提交了不只一个查询串,比如”信息检索 理论 工具”.那么搜索引擎首先做的是根据分隔符比如空格,标点符号,将查询串分割成若干子查询串,比如上面的查询就会被解析为:<信息检索,理论,工具>三个子字符串;这个道理简单,我们接着往下看.www.qitongnet.com 北京网站设计 2. 假设提交的查询有重复的内容,搜索引擎怎么处理呢?比如查询”理论 工具 理论”,百度是将重复的字符串当作只出现过一次,也就是处理成等价的”理论 工具”,而GOOGLE显然是没有进行归并,而是将重复查询子串的权重增大进行处理.那么是如何得出这个结论的呢?我们可以将”理论 工具”提交给百度,返回341,000篇文档,大致看看第一页的返回内容.OK.继续,我们提交查询”理论 工具 理论”,在看看返回结果,仍然是那么多返回文档,当然这个不能说明太多问题,那看看第一页返回结果的排序,看出来了吗?顺序完全没有变化,而GOOGLE则排序有些变动,这说明百度是将重复的查询归并成一个处理的,而且字符串之间的先后出现顺序基本不予考虑(GOOGLE是考虑了这个顺序关系的).北京网站制作 北京网页设计 3. 假设提交的中文查询包含英文单词,搜索引擎是怎么处理的?比如查询”电影BT下载”,百度的方法是将中文字符串中的英文当作一个整体保留,并以此为断点将中文切分开,这样上述的查询就切为<电影,BT,下载>,不论中间的英文是否一个字典里能查到的单词也好 www.qitongnet.com,还是随机的字符也好,都会当作一个整体来对待.至于为什么,你用查询” 电影dfdfdf下载”看看结果就知道了.当然假如查询中包含数字,也是如此办理.网站制作 北京网站建设 到目前为止,一切很简单,也很清楚,百度怎么处理用户查询的呢?归纳如下:首先根据分割符号将查询分开,然后看看是否有重复的字符串,假如有,就抛弃多余的,只保留一个,接着判定是否有英文或者数字,假如有的话,把英文或者数字当作一个整体保留并把前后的中文切开.北京网站建设 网站建设 接着该干什么呢?该考虑分词的问题了. 北京网页设计 北京网站设计 二. 中文分词www.qitongnet.com www.qitongnet.com 首先,讲讲百度的分词时机或者条件问题,是否是个中文字符串百度就拿来切一下呢?非也,要想被百度的分词程序荣幸的切割一下也是要讲条件的,哪能是个字符串就切割啊?你当百度是卖锯条的么? 网站设计 企通互联 那么什么样的字符串才满足被切割的条件呢?简单说来,假如字符串只包含小于等于3个中文字符的话,那就保留不动,当字符串长度大于4个中文字符的时候,百度的分词程序才出马大干快上,把这个字符串肢解掉.北京网站设计 www.qitongnet.com 怎么证实呢?我们向百度提交”电影下载”,看看返回结果中标为红字的地方,不难看出来,查询已经被切割成<电影,下载>两个单词了,说明分词程序已经开工了,假如是比4个中文字符更长的字符串,那分词程序就更不客气了, 网页设计一定大卸八块而后快.我们来看看三个字符的情况 网站建设,提交查询”当然择”,看起来这个查询不伦不类,那是因为我希望看到这个字符串被切分为<当然,择>,返回结果365篇相关页面,翻到最后一页,发现标红的要害字都是”当然择”连续出现的情况,似乎没有切分,但是还不确定,那么再提交人工分好的查询”当然 企通互联 择”看看,返回结果1,090,000篇,基本上可以确定没有进行分词了,当然另外一种解释是:对于三个字符先切分,然后将切分后的结果当作一个短语查询,这样看到的效果和没有切分是相似的.但是我倾向于判定百度对于少于3个字符的串没有切分,奥卡姆不是说了么”如无必要,勿增实体”,干吗做无用功呢.那么假如没有切分,会有一个随之而来的问题,怎么从索引库里面提取未切分的字符串呢?这牵扯到索引的问题,我觉得百度应该采取了两套索引机制,一种是按照单词索引,一种是按照N-GRAM索引 网站设计,至于索引的具体问题,以后在具体论述. 企通互联 网站设计 下面我们看看百度是采取的何种分词算法,现在分词算法已经算是比较成熟了,有简单的有复杂的,比如正向最大匹配,反向最大匹配,双向最大匹配,语言模型方法,最短路径算法等等,有爱好的可以用GOOGLE去搜索一下以增加理解.这里就不展开说了.但是要记住一点的是:判定一个分词系统好不好,要害看两点,一个是消除歧义能力 北京网页设计;一个是词典未登录词的识别比如人名,地名,机构名等. 北京网站建设 北京网站建设 那么百度用的是什么方法?我的判定是用双向最大匹配算法.至于怎么推理得出的,让我们一步步来看.当然,这里首先有个假设,百度不会采取比较复杂的算法,因为考虑到速度问题. 网站设计 北京网页设计 我们提交一个查询”毛泽东北京华烟云”,又一个不知所云的查询,尽管不知所云但是自有它的道理,我想看看百度的分词是如何消歧以及是否有词典未登录词的识别的功能,假如是正向最大匹配算法的话,那么输出应该是:”毛泽东/北京/华/烟云”,假如是反向最大匹配算法的话,那么输出应该是:”毛/泽/东北/京华烟云”,我们看看百度的分词结果:”毛泽东/北/京华烟云”,一个很希奇的输出,跟我们的期望相差较多,但是从中我们可以获得如下信息:百度分词可以识别人名,也可以识别”京华烟云”,这说明有词典未登录词的识别的功能,我们可以假设分词过程分为两个阶段:第一阶段,先查找一个非凡词典,这个词典包含一些人名,部分地名以及一些普通词典没有的新词,这样首先将”毛泽东”解析出来,剩下了字符串”北京华烟云”,而”北/京华烟云”,可以看作是反向最大匹配的分词结果.这样基本说得通.为了证实这一点,我们提交查询”发毛泽东北”,我们期望两种分词结果,一个是正向最大匹配<发毛,泽,东北>,一个是上述假设的结果<发,毛泽东,北>,事实上百度输出是第二种情况,这样基本能确定百度分词采取了至少两个词典,一个是普通词典,一个是专用词典(人名等).而且是专用词典先切分,然后将剩余的片断交由普通词典来切分. 北京网站设计 (阅读次数:) |
||