本文通过æœç´¢ç»“果归纳分æž+切è¯é€šç”¨ç®—法分æžçš„æ–¹å¼å¯¹ç™¾åº¦é¢„处ç†é˜¶æ®µçš„查询处ç†å’Œä¸æ–‡åˆ†è¯ä¸¤é¡¹æŠ€æœ¯è¿›è¡Œäº†é˜è¿°ã€æ€»ç»“ï¼Œå¦‚æžœä½ å¯¹æ•°æ®ç»“æž„ã€ç®—法有一定了解的è¯ï¼Œç†è§£èµ·æ¥ä¼šç›¸å¯¹å®¹æ˜“些;个人感觉,得出æ£å‘最大匹é…算法ä¸å¤Ÿå‡†ç¡®ï¼Œæ— 论是专用è¯å…¸è¿˜æ˜¯æ™®é€šè¯å…¸é‡Œçš„è¯ï¼Œéƒ½æ˜¯æœ‰ä¸åŒæƒé‡çš„ï¼Œè¿™æ ¹æœç´¢é¢‘率应该有一定关系,基于这点,在出现多个专用è¯å…¸é‡Œçš„è¯æ—¶ï¼Œæ˜¯éœ€è¦é‡‡ç”¨åŒå‘最大匹é…算法æ¥æ£€æµ‹åˆ°åº•å“ªä¸€ä¸ªä¸“有è¯æ±‡åº”该先被切出æ¥ï¼Œå½“然,这是个人猜想,有待考究。
ç†è§£åˆ†è¯æŠ€æœ¯å¯¹SEO工作具有æžå¤§æ„义,å¯ä»¥ä»Žç§‘å¦çš„角度æ¥åˆ†æžå…³é”®è¯ï¼Œå¹¶æž„想关键è¯éƒ¨ç½²ç–略;如果æ£å‘最大匹é…算法的结论是æ£ç¡®çš„,那基本上å¯ä»¥æ–定,切è¯åŽçš„分è¯çš„æƒé‡æ˜¯æŒ‰ç…§æ£å‘排åºçš„
我还想æžæ˜Žç™½çš„是专用è¯å…¸å’Œæ™®é€šè¯å…¸ï¼Œå“ªä¸€ä¸ªæƒé‡ä¼šæ›´é«˜ï¼Ÿ
以下为转载的原文:
查询处ç†ä»¥åŠåˆ†è¯æŠ€æœ¯
éšç€æœç´¢ç»æµŽçš„å´›èµ·ï¼Œäººä»¬å¼€å§‹è¶ŠåŠ å…³æ³¨å…¨çƒå„大æœç´¢å¼•æ“Žçš„性能ã€æŠ€æœ¯å’Œæ—¥æµé‡ã€‚作为ä¼ä¸šï¼Œä¼šæ ¹æ®æœç´¢å¼•æ“Žçš„知å度以åŠæ—¥æµé‡æ¥é€‰æ‹©æ˜¯å¦è¦æŠ•æ”¾å¹¿å‘Šç‰ï¼›ä½œä¸º æ™®é€šç½‘æ°‘ï¼Œä¼šæ ¹æ®æœç´¢å¼•æ“Žçš„性能和技术æ¥é€‰æ‹©è‡ªå·±å–œæ¬¢çš„引擎查找资料;作为技术人员,会把有代表性的æœç´¢å¼•æ“Žä½œä¸ºç ”究对象。æœç´¢å¼•æ“Žç»æµŽçš„崛起,åˆä¸€æ¬¡å‘人们è¯æ˜Žäº†ç½‘络所蕴è—的巨大商机。网络离开了æœç´¢å°†åªå‰©ä¸‹ç©ºæ´žæ‚乱的数æ®ï¼Œä»¥åŠå¤§é‡ç‰å¾…去费力挖掘的金矿。
但是,如何设计一个高效的æœç´¢å¼•æ“Žï¼Ÿæˆ‘们å¯ä»¥ä»¥ç™¾åº¦æ‰€é‡‡å–的技术手段æ¥æŽ¢è®¨å¦‚何设计一个实用的æœç´¢å¼•æ“Žã€‚æœç´¢å¼•æ“Žæ¶‰åŠåˆ°è®¸å¤šæŠ€æœ¯ç‚¹ï¼Œæ¯”如查询处ç†ï¼ŒæŽ’åºç®—法,页é¢æŠ“å–算法,CACHE机制,ANTI-SPAMç‰ç‰ã€‚这些技术细节,作为商业公å¸çš„æœç´¢å¼•æ“ŽæœåŠ¡æ供商比如百度,GOOGLEç‰æ˜¯ä¸ä¼šå…¬ä¹‹äºŽä¼—的。我们å¯ä»¥å°†çŽ°æœ‰çš„æœç´¢å¼•æ“Žçœ‹ä½œä¸€ä¸ªé»‘盒,通过å‘黑盒æ交输入,判æ–黑盒返回的输出大致判æ–黑盒里é¢ä¸ä¸ºäººçŸ¥çš„技术细节。
查询处ç†ä¸Žåˆ†è¯æ˜¯ä¸€ä¸ªä¸æ–‡æœç´¢å¼•æ“Žå¿…ä¸å¯å°‘的工作,而百度作为一个典型的ä¸æ–‡æœç´¢å¼•æ“Žä¸€ç›´å¼ºè°ƒå…¶â€œä¸æ–‡å¤„ç†â€æ–¹é¢å…·æœ‰å…¶å®ƒæœç´¢å¼•æ“Žæ‰€ä¸å…·æœ‰çš„关键技术和优势。那么我们就æ¥çœ‹çœ‹ç™¾åº¦åˆ°åº•é‡‡ç”¨äº†å“ªäº›æ‰€è°“çš„æ ¸å¿ƒæŠ€æœ¯ã€‚
我们分两个部分æ¥è®²è¿°ï¼šæŸ¥è¯¢å¤„ç†/ä¸æ–‡åˆ†è¯ã€‚
一ã€æŸ¥è¯¢å¤„ç†
用户å‘æœç´¢å¼•æ“Žæ交查询,æœç´¢å¼•æ“Žä¸€èˆ¬åœ¨æŽ¥å—到用户查询åŽè¦åšä¸€äº›å¤„ç†ï¼Œç„¶åŽåœ¨ç´¢å¼•æ•°æ®åº“里é¢æå–相关的信æ¯ã€‚那么百度在接å—到用户查询åŽåšäº†äº›ä»€ä¹ˆå·¥ä½œå‘¢ï¼Ÿ
1ã€å‡è®¾ç”¨æˆ·æ交了ä¸åªä¸€ä¸ªæŸ¥è¯¢ä¸²ï¼Œæ¯”如“信æ¯æ£€ç´¢ ç†è®º 工具â€ã€‚那么æœç´¢å¼•æ“Žé¦–å…ˆåšçš„æ˜¯æ ¹æ®åˆ†éš”ç¬¦æ¯”å¦‚ç©ºæ ¼ï¼Œæ ‡ç‚¹ç¬¦å·ï¼Œå°†æŸ¥è¯¢ä¸²åˆ†å‰²æˆè‹¥å¹²å查询串,比如上é¢çš„查询就会被解æžä¸ºï¼šä¸‰ä¸ªåå—符串;这个é“ç†ç®€å•ï¼Œæˆ‘们接ç€å¾€ä¸‹çœ‹ã€‚
2ã€å‡è®¾æ交的查询有é‡å¤çš„内容,æœç´¢å¼•æ“Žæ€Žä¹ˆå¤„ç†å‘¢ï¼Ÿæ¯”如查询“ç†è®º 工具ç†è®ºâ€ï¼Œç™¾åº¦æ˜¯å°†é‡å¤çš„å—符串当作åªå‡ºçŽ°è¿‡ä¸€æ¬¡ï¼Œä¹Ÿå°±æ˜¯å¤„ç†æˆç‰ä»·çš„“ç†è®ºå·¥å…·â€ï¼Œè€ŒGOOGLE显然是没有进行归并,而是将é‡å¤æŸ¥è¯¢å串的æƒé‡å¢žå¤§è¿›è¡Œå¤„ç†ã€‚那么是如何得出这个结论的呢?我们å¯ä»¥å°†â€œç†è®ºå·¥å…·â€æ交给百度,返回341,000篇文档,大致看看第一页的返回内容。
OK。继ç»ï¼Œæˆ‘们æ交查询“ç†è®º 工具ç†è®ºâ€ï¼Œåœ¨çœ‹çœ‹è¿”回结果,ä»ç„¶æ˜¯é‚£ä¹ˆå¤šè¿”回文档,当然这个ä¸èƒ½è¯´æ˜Žå¤ªå¤šé—®é¢˜ï¼Œé‚£çœ‹çœ‹ç¬¬ä¸€é¡µè¿”回结果的排åºï¼Œçœ‹å‡ºæ¥äº†å—?顺åºå®Œå…¨æ²¡æœ‰å˜åŒ–,而GOOGLE 则排åºæœ‰äº›å˜åŠ¨ï¼Œè¿™è¯´æ˜Žç™¾åº¦æ˜¯å°†é‡å¤çš„查询归并æˆä¸€ä¸ªå¤„ç†çš„,而且å—符串之间的先åŽå‡ºçŽ°é¡ºåºåŸºæœ¬ä¸äºˆè€ƒè™‘(GOOGLE是考虑了这个顺åºå…³ç³»çš„)。
3ã€å‡è®¾æ交的ä¸æ–‡æŸ¥è¯¢åŒ…å«è‹±æ–‡å•è¯ï¼Œæœç´¢å¼•æ“Žæ˜¯æ€Žä¹ˆå¤„ç†çš„?比如查询â€ç”µå½±BT下载â€ï¼Œç™¾åº¦çš„方法是将ä¸æ–‡å—符串ä¸çš„英文当作一个整体ä¿ç•™ï¼Œå¹¶ä»¥æ¤ä¸ºæ–点将ä¸æ–‡åˆ‡åˆ†å¼€ï¼Œè¿™æ ·ä¸Šè¿°çš„查询就切为,ä¸è®ºä¸é—´çš„英文是å¦ä¸€ä¸ªå—典里能查到的å•è¯ä¹Ÿå¥½ï¼Œè¿˜æ˜¯éšæœºçš„å—符也好,都会当作一个整体æ¥å¯¹å¾…ã€‚è‡³äºŽä¸ºä»€ä¹ˆï¼Œä½ ç”¨æŸ¥è¯¢â€œç”µå½±dfdfdf下载â€çœ‹çœ‹ç»“果就知é“了。当然如果查询ä¸åŒ…å«æ•°å—,也是如æ¤åŠžç†ã€‚
到目å‰ä¸ºæ¢ï¼Œä¸€åˆ‡å¾ˆç®€å•ï¼Œä¹Ÿå¾ˆæ¸…楚,百度怎么处ç†ç”¨æˆ·æŸ¥è¯¢çš„å‘¢ï¼Ÿå½’çº³å¦‚ä¸‹ï¼šé¦–å…ˆæ ¹æ®åˆ†å‰²ç¬¦å·å°†æŸ¥è¯¢åˆ†å¼€ï¼Œç„¶åŽçœ‹çœ‹æ˜¯å¦æœ‰é‡å¤çš„å—符串,如果有,就抛弃多余的,åªä¿ç•™ä¸€ä¸ªï¼ŒæŽ¥ç€åˆ¤æ–是å¦æœ‰è‹±æ–‡æˆ–者数å—,如果有的è¯ï¼ŒæŠŠè‹±æ–‡æˆ–者数å—当作一个整体ä¿ç•™å¹¶æŠŠå‰åŽçš„ä¸æ–‡åˆ‡å¼€ã€‚
接ç€è¯¥å¹²ä»€ä¹ˆå‘¢ï¼Ÿè¯¥è€ƒè™‘分è¯çš„问题了。
二ã€ä¸æ–‡åˆ†è¯
首先,讲讲百度的分è¯æ—¶æœºæˆ–者æ¡ä»¶é—®é¢˜ï¼Œæ˜¯å¦æ˜¯ä¸ªä¸æ–‡å—符串百度就拿æ¥åˆ‡ä¸€ä¸‹å‘¢ï¼Ÿéžä¹Ÿï¼Œè¦æƒ³è¢«ç™¾åº¦çš„分è¯ç¨‹åºè£å¹¸çš„切割一下也是è¦è®²æ¡ä»¶çš„,哪能是个å—ç¬¦ä¸²å°±åˆ‡å‰²å•Šï¼Ÿä½ å½“ç™¾åº¦æ˜¯å–锯æ¡çš„么?
é‚£ä¹ˆä»€ä¹ˆæ ·çš„å—符串æ‰æ»¡è¶³è¢«åˆ‡å‰²çš„æ¡ä»¶å‘¢ï¼Ÿç®€å•è¯´æ¥ï¼Œå¦‚æžœå—符串åªåŒ…å«å°äºŽç‰äºŽ3个ä¸æ–‡å—符的è¯ï¼Œé‚£å°±ä¿ç•™ä¸åŠ¨ï¼Œå½“å—符串长度大于4个ä¸æ–‡å—符的时候,百度的分è¯ç¨‹åºæ‰å‡ºé©¬å¤§å¹²å¿«ä¸Šï¼ŒæŠŠè¿™ä¸ªå—符串肢解掉。
怎么è¯æ˜Žå‘¢ï¼Ÿæˆ‘们å‘百度æ交“电影下载â€ï¼Œçœ‹çœ‹è¿”回结果ä¸æ ‡ä¸ºçº¢å—的地方,ä¸éš¾çœ‹å‡ºæ¥ï¼ŒæŸ¥è¯¢å·²ç»è¢«åˆ‡å‰²æˆä¸¤ä¸ªå•è¯äº†ï¼Œè¯´æ˜Žåˆ†è¯ç¨‹åºå·²ç»å¼€å·¥äº†ï¼Œå¦‚果是比4个ä¸æ–‡å—符更长的å—符串,那分è¯ç¨‹åºå°±æ›´ä¸å®¢æ°”了,一定大å¸å…«å—而åŽå¿«ã€‚我们æ¥çœ‹çœ‹ä¸‰ä¸ªå—符的情况,æ交查询“当然择â€ï¼Œçœ‹èµ·æ¥è¿™ä¸ªæŸ¥è¯¢ä¸ä¼¦ä¸ç±»ï¼Œé‚£æ˜¯å› 为我希望看到这个å—符串被切分为,返回结果365篇相关页é¢ï¼Œç¿»åˆ°æœ€åŽä¸€é¡µï¼Œå‘çŽ°æ ‡çº¢çš„å…³é”®å—都是†当然择â€è¿žç»å‡ºçŽ°çš„情况,好åƒæ²¡æœ‰åˆ‡åˆ†ï¼Œä½†æ˜¯è¿˜ä¸ç¡®å®šï¼Œé‚£ä¹ˆå†æ交人工分好的查询“当然择â€çœ‹çœ‹ï¼Œè¿”回结果1,090,000篇,基本上å¯ä»¥ç¡®å®šæ²¡æœ‰è¿›è¡Œåˆ†è¯äº†ï¼Œå½“然å¦å¤–一ç§è§£é‡Šæ˜¯ï¼šå¯¹äºŽä¸‰ä¸ªå—符先切分,然åŽå°†åˆ‡åˆ†åŽçš„结果当作一个çŸè¯æŸ¥è¯¢ï¼Œè¿™æ ·çœ‹åˆ°çš„效果和没有切分是相似的。
但是我倾å‘于判æ–百度对于少于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在ä¸æ–‡è¯å…¸æž„建上比百度差些,还需è¦åŠ 把å力气æ‰è¡Œ,ä¸è¿‡è¿™ä¹Ÿä¸æ˜¯ä»€ä¹ˆå¤šéš¾çš„事.
最后编辑: 郝聪 编辑于2008/02/19 15:56
ç†è§£åˆ†è¯æŠ€æœ¯å¯¹SEO工作具有æžå¤§æ„义,å¯ä»¥ä»Žç§‘å¦çš„角度æ¥åˆ†æžå…³é”®è¯ï¼Œå¹¶æž„想关键è¯éƒ¨ç½²ç–略;如果æ£å‘最大匹é…算法的结论是æ£ç¡®çš„,那基本上å¯ä»¥æ–定,切è¯åŽçš„分è¯çš„æƒé‡æ˜¯æŒ‰ç…§æ£å‘排åºçš„
我还想æžæ˜Žç™½çš„是专用è¯å…¸å’Œæ™®é€šè¯å…¸ï¼Œå“ªä¸€ä¸ªæƒé‡ä¼šæ›´é«˜ï¼Ÿ
以下为转载的原文:
查询处ç†ä»¥åŠåˆ†è¯æŠ€æœ¯
éšç€æœç´¢ç»æµŽçš„å´›èµ·ï¼Œäººä»¬å¼€å§‹è¶ŠåŠ å…³æ³¨å…¨çƒå„大æœç´¢å¼•æ“Žçš„性能ã€æŠ€æœ¯å’Œæ—¥æµé‡ã€‚作为ä¼ä¸šï¼Œä¼šæ ¹æ®æœç´¢å¼•æ“Žçš„知å度以åŠæ—¥æµé‡æ¥é€‰æ‹©æ˜¯å¦è¦æŠ•æ”¾å¹¿å‘Šç‰ï¼›ä½œä¸º æ™®é€šç½‘æ°‘ï¼Œä¼šæ ¹æ®æœç´¢å¼•æ“Žçš„性能和技术æ¥é€‰æ‹©è‡ªå·±å–œæ¬¢çš„引擎查找资料;作为技术人员,会把有代表性的æœç´¢å¼•æ“Žä½œä¸ºç ”究对象。æœç´¢å¼•æ“Žç»æµŽçš„崛起,åˆä¸€æ¬¡å‘人们è¯æ˜Žäº†ç½‘络所蕴è—的巨大商机。网络离开了æœç´¢å°†åªå‰©ä¸‹ç©ºæ´žæ‚乱的数æ®ï¼Œä»¥åŠå¤§é‡ç‰å¾…去费力挖掘的金矿。
但是,如何设计一个高效的æœç´¢å¼•æ“Žï¼Ÿæˆ‘们å¯ä»¥ä»¥ç™¾åº¦æ‰€é‡‡å–的技术手段æ¥æŽ¢è®¨å¦‚何设计一个实用的æœç´¢å¼•æ“Žã€‚æœç´¢å¼•æ“Žæ¶‰åŠåˆ°è®¸å¤šæŠ€æœ¯ç‚¹ï¼Œæ¯”如查询处ç†ï¼ŒæŽ’åºç®—法,页é¢æŠ“å–算法,CACHE机制,ANTI-SPAMç‰ç‰ã€‚这些技术细节,作为商业公å¸çš„æœç´¢å¼•æ“ŽæœåŠ¡æ供商比如百度,GOOGLEç‰æ˜¯ä¸ä¼šå…¬ä¹‹äºŽä¼—的。我们å¯ä»¥å°†çŽ°æœ‰çš„æœç´¢å¼•æ“Žçœ‹ä½œä¸€ä¸ªé»‘盒,通过å‘黑盒æ交输入,判æ–黑盒返回的输出大致判æ–黑盒里é¢ä¸ä¸ºäººçŸ¥çš„技术细节。
查询处ç†ä¸Žåˆ†è¯æ˜¯ä¸€ä¸ªä¸æ–‡æœç´¢å¼•æ“Žå¿…ä¸å¯å°‘的工作,而百度作为一个典型的ä¸æ–‡æœç´¢å¼•æ“Žä¸€ç›´å¼ºè°ƒå…¶â€œä¸æ–‡å¤„ç†â€æ–¹é¢å…·æœ‰å…¶å®ƒæœç´¢å¼•æ“Žæ‰€ä¸å…·æœ‰çš„关键技术和优势。那么我们就æ¥çœ‹çœ‹ç™¾åº¦åˆ°åº•é‡‡ç”¨äº†å“ªäº›æ‰€è°“çš„æ ¸å¿ƒæŠ€æœ¯ã€‚
我们分两个部分æ¥è®²è¿°ï¼šæŸ¥è¯¢å¤„ç†/ä¸æ–‡åˆ†è¯ã€‚
一ã€æŸ¥è¯¢å¤„ç†
用户å‘æœç´¢å¼•æ“Žæ交查询,æœç´¢å¼•æ“Žä¸€èˆ¬åœ¨æŽ¥å—到用户查询åŽè¦åšä¸€äº›å¤„ç†ï¼Œç„¶åŽåœ¨ç´¢å¼•æ•°æ®åº“里é¢æå–相关的信æ¯ã€‚那么百度在接å—到用户查询åŽåšäº†äº›ä»€ä¹ˆå·¥ä½œå‘¢ï¼Ÿ
1ã€å‡è®¾ç”¨æˆ·æ交了ä¸åªä¸€ä¸ªæŸ¥è¯¢ä¸²ï¼Œæ¯”如“信æ¯æ£€ç´¢ ç†è®º 工具â€ã€‚那么æœç´¢å¼•æ“Žé¦–å…ˆåšçš„æ˜¯æ ¹æ®åˆ†éš”ç¬¦æ¯”å¦‚ç©ºæ ¼ï¼Œæ ‡ç‚¹ç¬¦å·ï¼Œå°†æŸ¥è¯¢ä¸²åˆ†å‰²æˆè‹¥å¹²å查询串,比如上é¢çš„查询就会被解æžä¸ºï¼šä¸‰ä¸ªåå—符串;这个é“ç†ç®€å•ï¼Œæˆ‘们接ç€å¾€ä¸‹çœ‹ã€‚
2ã€å‡è®¾æ交的查询有é‡å¤çš„内容,æœç´¢å¼•æ“Žæ€Žä¹ˆå¤„ç†å‘¢ï¼Ÿæ¯”如查询“ç†è®º 工具ç†è®ºâ€ï¼Œç™¾åº¦æ˜¯å°†é‡å¤çš„å—符串当作åªå‡ºçŽ°è¿‡ä¸€æ¬¡ï¼Œä¹Ÿå°±æ˜¯å¤„ç†æˆç‰ä»·çš„“ç†è®ºå·¥å…·â€ï¼Œè€ŒGOOGLE显然是没有进行归并,而是将é‡å¤æŸ¥è¯¢å串的æƒé‡å¢žå¤§è¿›è¡Œå¤„ç†ã€‚那么是如何得出这个结论的呢?我们å¯ä»¥å°†â€œç†è®ºå·¥å…·â€æ交给百度,返回341,000篇文档,大致看看第一页的返回内容。
OK。继ç»ï¼Œæˆ‘们æ交查询“ç†è®º 工具ç†è®ºâ€ï¼Œåœ¨çœ‹çœ‹è¿”回结果,ä»ç„¶æ˜¯é‚£ä¹ˆå¤šè¿”回文档,当然这个ä¸èƒ½è¯´æ˜Žå¤ªå¤šé—®é¢˜ï¼Œé‚£çœ‹çœ‹ç¬¬ä¸€é¡µè¿”回结果的排åºï¼Œçœ‹å‡ºæ¥äº†å—?顺åºå®Œå…¨æ²¡æœ‰å˜åŒ–,而GOOGLE 则排åºæœ‰äº›å˜åŠ¨ï¼Œè¿™è¯´æ˜Žç™¾åº¦æ˜¯å°†é‡å¤çš„查询归并æˆä¸€ä¸ªå¤„ç†çš„,而且å—符串之间的先åŽå‡ºçŽ°é¡ºåºåŸºæœ¬ä¸äºˆè€ƒè™‘(GOOGLE是考虑了这个顺åºå…³ç³»çš„)。
3ã€å‡è®¾æ交的ä¸æ–‡æŸ¥è¯¢åŒ…å«è‹±æ–‡å•è¯ï¼Œæœç´¢å¼•æ“Žæ˜¯æ€Žä¹ˆå¤„ç†çš„?比如查询â€ç”µå½±BT下载â€ï¼Œç™¾åº¦çš„方法是将ä¸æ–‡å—符串ä¸çš„英文当作一个整体ä¿ç•™ï¼Œå¹¶ä»¥æ¤ä¸ºæ–点将ä¸æ–‡åˆ‡åˆ†å¼€ï¼Œè¿™æ ·ä¸Šè¿°çš„查询就切为,ä¸è®ºä¸é—´çš„英文是å¦ä¸€ä¸ªå—典里能查到的å•è¯ä¹Ÿå¥½ï¼Œè¿˜æ˜¯éšæœºçš„å—符也好,都会当作一个整体æ¥å¯¹å¾…ã€‚è‡³äºŽä¸ºä»€ä¹ˆï¼Œä½ ç”¨æŸ¥è¯¢â€œç”µå½±dfdfdf下载â€çœ‹çœ‹ç»“果就知é“了。当然如果查询ä¸åŒ…å«æ•°å—,也是如æ¤åŠžç†ã€‚
到目å‰ä¸ºæ¢ï¼Œä¸€åˆ‡å¾ˆç®€å•ï¼Œä¹Ÿå¾ˆæ¸…楚,百度怎么处ç†ç”¨æˆ·æŸ¥è¯¢çš„å‘¢ï¼Ÿå½’çº³å¦‚ä¸‹ï¼šé¦–å…ˆæ ¹æ®åˆ†å‰²ç¬¦å·å°†æŸ¥è¯¢åˆ†å¼€ï¼Œç„¶åŽçœ‹çœ‹æ˜¯å¦æœ‰é‡å¤çš„å—符串,如果有,就抛弃多余的,åªä¿ç•™ä¸€ä¸ªï¼ŒæŽ¥ç€åˆ¤æ–是å¦æœ‰è‹±æ–‡æˆ–者数å—,如果有的è¯ï¼ŒæŠŠè‹±æ–‡æˆ–者数å—当作一个整体ä¿ç•™å¹¶æŠŠå‰åŽçš„ä¸æ–‡åˆ‡å¼€ã€‚
接ç€è¯¥å¹²ä»€ä¹ˆå‘¢ï¼Ÿè¯¥è€ƒè™‘分è¯çš„问题了。
二ã€ä¸æ–‡åˆ†è¯
首先,讲讲百度的分è¯æ—¶æœºæˆ–者æ¡ä»¶é—®é¢˜ï¼Œæ˜¯å¦æ˜¯ä¸ªä¸æ–‡å—符串百度就拿æ¥åˆ‡ä¸€ä¸‹å‘¢ï¼Ÿéžä¹Ÿï¼Œè¦æƒ³è¢«ç™¾åº¦çš„分è¯ç¨‹åºè£å¹¸çš„切割一下也是è¦è®²æ¡ä»¶çš„,哪能是个å—ç¬¦ä¸²å°±åˆ‡å‰²å•Šï¼Ÿä½ å½“ç™¾åº¦æ˜¯å–锯æ¡çš„么?
é‚£ä¹ˆä»€ä¹ˆæ ·çš„å—符串æ‰æ»¡è¶³è¢«åˆ‡å‰²çš„æ¡ä»¶å‘¢ï¼Ÿç®€å•è¯´æ¥ï¼Œå¦‚æžœå—符串åªåŒ…å«å°äºŽç‰äºŽ3个ä¸æ–‡å—符的è¯ï¼Œé‚£å°±ä¿ç•™ä¸åŠ¨ï¼Œå½“å—符串长度大于4个ä¸æ–‡å—符的时候,百度的分è¯ç¨‹åºæ‰å‡ºé©¬å¤§å¹²å¿«ä¸Šï¼ŒæŠŠè¿™ä¸ªå—符串肢解掉。
怎么è¯æ˜Žå‘¢ï¼Ÿæˆ‘们å‘百度æ交“电影下载â€ï¼Œçœ‹çœ‹è¿”回结果ä¸æ ‡ä¸ºçº¢å—的地方,ä¸éš¾çœ‹å‡ºæ¥ï¼ŒæŸ¥è¯¢å·²ç»è¢«åˆ‡å‰²æˆä¸¤ä¸ªå•è¯äº†ï¼Œè¯´æ˜Žåˆ†è¯ç¨‹åºå·²ç»å¼€å·¥äº†ï¼Œå¦‚果是比4个ä¸æ–‡å—符更长的å—符串,那分è¯ç¨‹åºå°±æ›´ä¸å®¢æ°”了,一定大å¸å…«å—而åŽå¿«ã€‚我们æ¥çœ‹çœ‹ä¸‰ä¸ªå—符的情况,æ交查询“当然择â€ï¼Œçœ‹èµ·æ¥è¿™ä¸ªæŸ¥è¯¢ä¸ä¼¦ä¸ç±»ï¼Œé‚£æ˜¯å› 为我希望看到这个å—符串被切分为,返回结果365篇相关页é¢ï¼Œç¿»åˆ°æœ€åŽä¸€é¡µï¼Œå‘çŽ°æ ‡çº¢çš„å…³é”®å—都是†当然择â€è¿žç»å‡ºçŽ°çš„情况,好åƒæ²¡æœ‰åˆ‡åˆ†ï¼Œä½†æ˜¯è¿˜ä¸ç¡®å®šï¼Œé‚£ä¹ˆå†æ交人工分好的查询“当然择â€çœ‹çœ‹ï¼Œè¿”回结果1,090,000篇,基本上å¯ä»¥ç¡®å®šæ²¡æœ‰è¿›è¡Œåˆ†è¯äº†ï¼Œå½“然å¦å¤–一ç§è§£é‡Šæ˜¯ï¼šå¯¹äºŽä¸‰ä¸ªå—符先切分,然åŽå°†åˆ‡åˆ†åŽçš„结果当作一个çŸè¯æŸ¥è¯¢ï¼Œè¿™æ ·çœ‹åˆ°çš„效果和没有切分是相似的。
但是我倾å‘于判æ–百度对于少于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在ä¸æ–‡è¯å…¸æž„建上比百度差些,还需è¦åŠ 把å力气æ‰è¡Œ,ä¸è¿‡è¿™ä¹Ÿä¸æ˜¯ä»€ä¹ˆå¤šéš¾çš„事.
相关日志
Dedecms编辑器CKeditoræ›´æ¢ä¸ºç™¾åº¦UEditor的方法
从12月百度算法å˜åŒ–预测2011å¹´SEOæ–¹å‘
百度上线图片竞价排å 图片显示推广å—æ ·(图)
桥页SEO:网站自我æ¯ç工具
Google和百度网页æœç´¢çš„查询å‚数解释
百度欲在ä¸å›½å¤åˆ¶â€œeBay+è°·æŒâ€æ¨¡å¼
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹ä¸‰
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹äºŒ
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹ä¸€
Dedecms编辑器CKeditoræ›´æ¢ä¸ºç™¾åº¦UEditor的方法
从12月百度算法å˜åŒ–预测2011å¹´SEOæ–¹å‘
百度上线图片竞价排å 图片显示推广å—æ ·(图)
桥页SEO:网站自我æ¯ç工具
Google和百度网页æœç´¢çš„查询å‚数解释
百度欲在ä¸å›½å¤åˆ¶â€œeBay+è°·æŒâ€æ¨¡å¼
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹ä¸‰
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹äºŒ
百度ä¸æ–‡åˆ†è¯ç®—法分æžä¹‹ä¸€
最后编辑: 郝聪 编辑于2008/02/19 15:56
还是谢谢了 ï¼