当前位置: 首页 > news >正文

郑州百度建网站重庆怎么制作网站?

郑州百度建网站,重庆怎么制作网站?,阿里云如何购买域名,家里电脑如何做网站随着搜索经济的崛起#xff0c;人们开始越加关注全球各大搜索引擎的性能、技术和日流量。作为企业#xff0c;会根据搜索引擎的知名度以及日流量来选择是否要投放广告等#xff1b;作为 普通网民#xff0c;会根据搜索引擎的性能和技术来选择自己喜欢的引擎查找资料#x…随着搜索经济的崛起人们开始越加关注全球各大搜索引擎的性能、技术和日流量。作为企业会根据搜索引擎的知名度以及日流量来选择是否要投放广告等作为 普通网民会根据搜索引擎的性能和技术来选择自己喜欢的引擎查找资料作为技术人员会把有代表性的搜索引擎作为研究对象。搜索引擎经济的崛起又一次向人们证明了网络所蕴藏的巨大商机。网络离开了搜索将只剩下空洞杂乱的数据以及大量等待去费力挖掘的金矿。 但是如何设计一个高效的搜索引擎我们可以以百度所采取的技术手段来探讨如何设计一个实用的搜索引擎。搜索引擎涉及到许多技术点比如查询处理排序算法页面抓取算法CACHE机制ANTI-SPAM等等。这些技术细节作为商业公司的搜索引擎服务提供商比如百度GOOGLE等是不会公之于众的。我们可以将现有的搜索引擎看作一个黑盒通过向黑盒提交输入判断黑盒返回的输出大致判断黑盒里面不为人知的技术细节。 查询处理与分词是一个中文搜索引擎必不可少的工作而百度作为一个典型的中文搜索引擎一直强调其“中文处理”方面具有其它搜索引擎所不具有的关键技术和优势。那么我们就来看看百度到底采用了哪些所谓的核心技术。 我们分两个部分来讲述查询处理/中文分词。 一、查询处理 用户向搜索引擎提交查询搜索引擎一般在接受到用户查询后要做一些处理然后在索引数据库里面提取相关的信息。那么百度在接受到用户查询后做了些什么工作呢 1、假设用户提交了不只一个查询串比如“信息检索 理论 工具”。那么搜索引擎首先做的是根据分隔符比如空格标点符号将查询串分割成若干子查询串比如上面的查询就会被解析为三个子字符串这个道理简单我们接着往下看。 2、假设提交的查询有重复的内容搜索引擎怎么处理呢比如查询“理论 工具理论”百度是将重复的字符串当作只出现过一次也就是处理成等价的“理论工具”而GOOGLE显然是没有进行归并而是将重复查询子串的权重增大进行处理。那么是如何得出这个结论的呢我们可以将“理论工具”提交给百度返回341,000篇文档大致看看第一页的返回内容。 OK。继续我们提交查询“理论 工具理论”在看看返回结果仍然是那么多返回文档当然这个不能说明太多问题那看看第一页返回结果的排序看出来了吗顺序完全没有变化而GOOGLE 则排序有些变动这说明百度是将重复的查询归并成一个处理的而且字符串之间的先后出现顺序基本不予考虑GOOGLE是考虑了这个顺序关系的。 3、假设提交的中文查询包含英文单词搜索引擎是怎么处理的比如查询”电影BT下载”百度的方法是将中文字符串中的英文当作一个整体保留并以此为断点将中文切分开这样上述的查询就切为不论中间的英文是否一个字典里能查到的单词也好还是随机的字符也好都会当作一个整体来对待。至于为什么你用查询“电影dfdfdf下载”看看结果就知道了。当然如果查询中包含数字也是如此办理。 到目前为止一切很简单也很清楚百度怎么处理用户查询的呢归纳如下首先根据分割符号将查询分开然后看看是否有重复的字符串如果有就抛弃多余的只保留一个接着判断是否有英文或者数字如果有的话把英文或者数字当作一个整体保留并把前后的中文切开。 接着该干什么呢该考虑分词的问题了。 二、中文分词 首先讲讲百度的分词时机或者条件问题是否是个中文字符串百度就拿来切一下呢非也要想被百度的分词程序荣幸的切割一下也是要讲条件的哪能是个字符串就切割啊你当百度是卖锯条的么 那么什么样的字符串才满足被切割的条件呢简单说来如果字符串只包含小于等于3个中文字符的话那就保留不动当字符串长度大于4个中文字符的时候百度的分词程序才出马大干快上把这个字符串肢解掉。 怎么证明呢我们向百度提交“电影下载”看看返回结果中标为红字的地方不难看出来查询已经被切割成两个单词了说明分词程序已经开工了如果是比4个中文字符更长的字符串那分词程序就更不客气了一定大卸八块而后快。我们来看看三个字符的情况提交查询“当然择”看起来这个查询不伦不类那是因为我希望看到这个字符串被切分为返回结果365篇相关页面翻到最后一页发现标红的关键字都是” 当然择”连续出现的情况好像没有切分但是还不确定那么再提交人工分好的查询“当然择”看看返回结果1090000篇基本上可以确定没有进行分词了当然另外一种解释是对于三个字符先切分然后将切分后的结果当作一个短语查询这样看到的效果和没有切分是相似的。 但是我倾向于判断百度对于少于3个字符的串没有切分奥卡姆不是说了么“如无必要勿增实体”干吗做无用功呢。那么如果没有切分会有一个随之而来的问题怎么从索引库里面提取未切分的字符串呢这牵扯到索引的问题我觉得百度应该采取了两套索引机制一种是按照单词索引一种是按照N-GRAM索引至于索引的具体问题以后在详细论述。 下面我们看看百度是采取的何种分词算法现在分词算法已经算是比较成熟了有简单的有复杂的比如正向最大匹配反向最大匹配双向最大匹配语言模型方法最短路径算法等等有兴趣的可以用GOOGLE去搜索一下以增加理解。这里就不展开说了。但是要记住一点的是判断一个分词系统好不好关键看两点一个是消除歧义能力一个是词典未登录词的识别比如人名地名机构名等。 那么百度用的是什么方法我的判断是用双向最大匹配算法。至于怎么推理得出的让我们一步步来看。当然这里首先有个假设百度不会采取比较复杂的算法因为考虑到速度问题。 我们提交一个查询“博客园天涯海角北京华烟云”又一个不知所云的查询尽管不知所云但是自有它的道理我想看看百度的分词是如何消歧以及是否有词典未登录词的识别的功能如果是正向最大匹配算法的话那么输出应该是”博客园天涯海角/北京/华/烟云”如果是反向最大匹配算法的话那么输出应该是”毛/泽/东北/京华烟云”我们看看百度的分词结果”博客园天涯海角/北/京华烟云”一个很奇怪的输出跟我们的期望相差较多但是从中我们可以获得如下信息百度分词可以识别人名也可以识别”京华烟云”这说明有词典未登录词的识别的功能我们可以假设分词过程分为两个阶段第一阶段先查找一个特殊词典这个词典包含一些人名部分地名以及一些普通词典没有的新词这样首先将”博客园天涯海角”解析出来剩下了字符串”北京华烟云”而”北/京华烟云”可以看作是反向最大匹配的分词结果。这样基本说得通。为了证明这一点我们提交查询”发博客园天涯海角北”我们期望两种分词结果一个是正向最大匹配一个是上述假设的结果事实上百度输出是第二种情况这样基本能确定百度分词采取了至少两个词典一个是普通词典一个是专用词典人名等。而且是专用词典先切分然后将剩余的片断交由普通词典来切分。继续测验提交查询“古巴比伦理”如果是正向最大匹配那么结果应该是如果是反向最大匹配那么结果应该是 事实上百度的分词结果是从这个例子看好像用了正向最大匹配算法此外还有一些例子表明好像是使用正向最大匹配的但是且慢我们看这个查询“北京华烟云”正向最大匹配期望的结果是而反向最大匹配期望的结果是 事实上百度输出的是后者这说明可能采用的反向最大匹配从这点我们可以猜测百度采用的是双向最大匹配分词算法如果正向和反向匹配分词结果一致当然好办直接输出即可但是如果两者不一致正向匹配一种结果反向匹配一种结果此时该如何是好呢 从上面两个例子看在这种情况下百度采取最短路径方法也就是切分的片断越少越好比如和相比选择后者和相比选择后者。还有类似的一些例子这样基本可以解释这些输出结果。 但是仍然遗留的问题是如果正向反向分词不一致而且最短路径也相同那怎么办输出正向的还是反向的结果 我们再来看一个例子。提交查询“遥远古古巴比伦”这个查询被百度切分为说明词典里面有”巴比伦”但是是否有”古巴比伦”这个词汇不确定此时看不出是正向切分还是反向切分得出的结果换查询为“遥远古巴比伦”此时被切分为“遥远/古巴比伦”这说明词典里面有”古巴比伦”这个词汇这说明了“遥远古古巴比伦”是正向最大匹配的结果。那为什么“遥远古古巴比伦”不会被反向切分为”遥/远古/古巴比伦”呢百度的可能选择是这种情况下选择单字少的那组切分结果。 当然还可以继续追问如果切分后单字也一样多那怎么办最后看一个例子查询“王强大小”百度将其切分为“王/强大/小”是正向切分的结果如果是反向的会被切分为“王/强/大小”这说明有歧义而且单字也相同则选择正向切分结果。 OK看到这里可能头已经有些晕了最后总结一下百度的分词算法当然里面还是有猜测的成分算法如下 首先查询专用词典人名部分地名等将专有名称切出剩下的部分采取双向分词策略如果两者切分结果相同说明没有歧义直接输出分词结果。如果不一 致则输出最短路径的那个结果如果长度相同则选择单字词少的那一组切分结果。如果单字也相同则选择正向分词结果。 百度一直宣传自己在中文处理方面的优势从上面看分词算法并无特殊之处消歧效果并不理想即使百度采取比上述分词算法复杂些的算法也难以说成是优势如果说百度有优势的话唯一的优势就是那个很大的专用词典这个专用词典登录了人名比如大长今称谓比如老太太部分地名比如阿联酋等估计百度采用学术界公布的比较新的命名实体识别算法从语料库里面不断识别出词典未登录词逐渐扩充这个专门词典。如果这就是优势的话那么这个优势能够保持多久就是个很明显的问题。 Spelling Checker拼写检查错误提示(以及拼音提示功能)    拼写检查错误提示是搜索引擎都具备的一个功能,也就是说用户提交查询 给搜索引擎,搜索引擎检查看是否用户输入的拼写有错误,对于中文用户来说一般造成的错误是输入法造成的错误.那么我们就来分析看看百度是 怎么实现这一功能的. 我们分析拼写检查系统关注以下几个问题: (1)系统如何判断用户的输入是有可能发生错误的查询呢? (2)如果判断是可能错误的查询输入,如何提示正确的词汇呢?    那么百度是如何做的呢?百度判断用户输入是否错误的标准,我觉得应该是查字典,如果发现字典里面不包含这个词汇,那么很有可能是个错误的输入,此时启动错误提示功能,这个很好判断,因为如果是一个正常词汇的话,百度一般不会有错误提示,而你故意输入一个词典不可能包含的所谓词汇,此时百度一般会提示你正确的检索词汇. 那么百度是怎么提示正确词汇的呢?很明显是通过拼音的方式,比如我输入查询 制才,百度提供的提示词汇为: “:制裁 质材纸材,都是同 音字.所以百度必然维持着一个同音词词典,里面保留着同音词信息,比如可能包含着下面这条词条: “ zhi cai à制裁,质材,纸材,另外还有一 个标注拼音程序,现在能够看到的基本流程是: 用户输入 制才,查词典,发现没有这个词汇,OK,启动标注拼音程序,将 制才标注为拼音zhi cai,然后查找同音词词典,发现同音词 制裁,质材,纸材,那么提示用户可能的正确拼写. 整体流程看起来很简单,但是还有一些遗留的小问题,比如是否将词表里面所有同音词都作为用户的提示信息呢?比如某个拼音有10个同音词,是否都输出呢?百度并没有将所有同音词都输出而是选择一定筛选标准,选择其中几个输出.怎么证明这一点?我们看看拼音liu li的同音词,紫光输入法提示同音词汇有 流丽 流离 琉璃流利4个,我们看看百度返回几个,输入流厉作为查询,这里是故意输入一个词典不包含的词汇,这样百度的拼写检查才开始工作,百度提示: 琉璃刘丽 刘莉 ,这说明什么?说明不是所有同音词都输出,而是选择输出,那么选择的标准是什么? 我能够猜测到的方法是对于用户查询LOG进行统计,提取用户查询次数多的那些同音词输出,如果是这样的话,上面的例子说明用户搜索琉璃次数比其它的都要高些,次之是 刘丽,再次是 刘莉,看来大家都喜欢查询自己或者认识的人的名字. 另外一个小问题:同音词词典包含2字词,3字词,那么是否包含4字词以及更长的词条?是否包含一字词? 这里一字词好回答,不用测试也能知道肯定不包含,因为你输入一个字,谁知道是否是错误的呢? 反正只要是汉字就能在词表里面找到,所以没有判断依据.二字词是包含的,上面有例子,三字词也包含,比如查询 中城药百度错误提示:中成药,修改查询为重城药,还是提示中成药 ,再次修改查询 重城要,百度依然提示中成药. 那么4字词汇呢? 百度还是会给你提示的,下面是个例子: 输入:静华烟云 提示 京华烟云 输入:静话烟云 提示 京华烟云 输入:静话阎晕 提示 京华烟云 那么更长的词汇是否提 示呢?也提示,比如我输入: 落花世界有风军,这个查询是什么意思,估计读过古诗的都知道,看看百度的提示落花时节又逢君,这说明什么?说明同音词词典包含不同长度的同音词信息,另外也说明了百度的核心中文处理技术,也就是那个词典,还真挺大的. 但是,如果用户输入的 查询由两个或者两个以上子字符串构成,那么百度的错误提示功能就罢工了,比如输入查询哀体,百度提示艾提 挨踢,但是.输入为 我 哀体 ,则没有任何错误提示. 还有一个比较重要的问题:如果汉字是多音字那么怎么处理?百度呢比较偷懒,它根本就没有对多音字做处理.我们来看看百度的一个标注拼音的错误,在看这个错误前先看看对于多音字百度是怎么提示错误的,我们输入查询俱长,百度提示剧场 局长, “俱长的拼音有两个:ju zhang /ju chang ,可见如果是多音字则几种情况都提示..现在我们来看看错误的情况, 我们输入查询剧常,百度 提示:剧场局长,提示为剧场当然好解释,因为是同音字,但是为什么 局长也会被提示呢?这说明百度的同音字词典有错误,说明在ju chang这个词条里面包含局长这个错误的同音词.让我们顺藤摸瓜,这个错误又说明什么问题呢? 说明百度的同音词典是自动生成的,而且没有人工校对.还说明在自动生成同音词典的过程中,百度不是根据对一篇文章标注拼音然后在抽取词汇和对应的拼音信息获得的,而是完全按照某个词典的词条来标注音节的, 所以对于多音字造成的错误无法识别出来,如果是对篇章进行拼音标注,可能就不会出现这种很容易发现的错误标注. 当然还有另外一种解释,就是局长是故意被百度提示出来可能的正确提示词汇,因为考虑到南方人zh和 ch等前后鼻音分不清么,那么是这样的么?我们继续测试到底是何种情况.是百度有错误还是这是百度的先进的算法? 我们考虑词汇长大 ,故意错误输入为赃大,如果百度考虑到了前后鼻音的问题,那么应该会提示长大,但是百度提示是藏大.这说明什么?说明百度并没有考虑前后鼻音问题,根本就是系统错 误. 我们输入查询悬赏,故意将之错误输入为悬桑,没有错误提示,说明确实没有考虑这种情况.前鼻音没有考虑,那么后鼻音考虑了么,我们输入:经常,故意改为后鼻音 经缠,百度提示为经产 经忏,还是没有考虑后鼻音.这基本可以确定是百度系统的错误导致. 根据以上推导, 我们可以得出如下结论:百度是将分词词典里面每个词条利用拼音标注程序标注成拼音,然后形成同音词词典,所以两个词典是同样大的 ,而且这个词典也随着分词词典的增长而在不断增长. 至于标注过程中多音字百度没有考虑,如果是多音字就标注成多个发音组合,通过这种方式形成同音词词典.这样的同音词词典显然包含着很多错误. 最后一个问题:百度对于英文进行拼写检查么?让我们试试看,输入查询china,不错,搜到不少结果,专注中文搜索的百度还能搜索到英文,真是意外的惊喜.变换一下查询chine,会更加意外惊喜的给我们提示china吗? 百度提示的是: 吃呢持呢,原来是不小心触发了百度的拼音搜索功能了.那么拼音搜索和中文检查错误是否采用同一套同音词词典呢,让我们来实验一下,搜索rongji,百度提示 榕基 溶剂 容积,OK,换个中文查询容机,百度提示 榕基溶剂容积,看来使用的是同一套同音词词典.也就是说百度的中文纠错和拼音检索使用的机制相同,中文纠错多了一道拼音注音的过程而已.难道这就是传说中那个百度的事实上是一个无比强大的拼音输入法的拼音提示功能么? 最后让我们总结归纳一下百度的拼写检查系统: 后台作业: (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在中文词典构建上比百度差些,还需要加把子力气才行,不过这也不是什么多难的事. 转载于:https://www.cnblogs.com/OceanChen/archive/2009/02/19/1393819.html
http://wiki.neutronadmin.com/news/397988/

相关文章:

  • 北京好网站制作公司淘宝店铺推广方法
  • 网站设计网站建设哪家快平度建设网站
  • 做精细化工网站东莞网站建设环保设备
  • 网站开发时如何设计英文版本建站行业的发展趋势
  • 沈阳唐朝网站建设wordpress广告插件汉化
  • 可以做头像的网站有哪些东莞市网站建设哪家好
  • 网站变灰 兼容安全的营销型网站制作
  • 赣州市规划建设局网站改项目建设的必要性
  • 网站模板 可做采集站域名出售网站
  • 网站建站公司广州潍坊市建设银行坊子支行网站
  • 一般网站隐蔽点么么进关键字查询我的网站怎么做
  • 职工之家网站开发新闻稿多用户商城app源码
  • 书店网站建设需求分析调研表小米路由器3做网站
  • 如何修改网站内容一分钟赚一元的游戏
  • 商城网站主机品质好怎么形容词语
  • 手机app网站开发wordpress获取用户等级
  • 医疗网站建设目录榆林网站建设熊掌号
  • html做的小网站免费注册域名哪里有
  • 重庆电子商务网站seo做网站上面的图标
  • 低多边形生成网站电子商务平台(网站)建设方式
  • 个人网站赏析重庆假山制作
  • 已有域名 搭建网站wordpress怎么改登陆不了
  • 湛江做网站制作什么是理财北京网站建设公司
  • 专做正品 网站网站版面做得好的
  • 无需注册免费的网站wordpress导航怎么改
  • 装门做特卖的网站做推文的网站知乎
  • 福州电商网站设计长春网站优化seo
  • 网站建设中upl连接商丘软件开发
  • 婚纱网站策划书模板网页代码制作基础教程
  • python做网站性能五台县建设局网站