日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搜索引擎设计实用教程(3)-以百度为例 之三:对百度分词算法的进一步分析

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搜索引擎设计实用教程(3)-以百度为例 之三:对百度分词算法的进一步分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

中科院軟件所
2005年11月

上面說過,經過分析得出百度的分詞系統采用雙向最大匹配分詞,但是后來發現推理過程中存在一個漏洞,而且推導出來的百度分詞算法步驟還是過于繁瑣,所以進一步進行分析,看看是否前面的推導有錯誤.

那么以前的分析有什么漏洞呢?我們推導百度分詞有反向最大匹配的依據是百度將"北京華煙云"分詞為<北,京華煙云>,從這里看好像采用了反向最大匹配,因為正向最大匹配的結果應該是<北京,華,煙云>,但是由此就推論說百度采用了雙向最大匹配還是太倉促了,前面文章我們也講過,百度有兩個詞典,一個普通詞典,一個專有詞典,而且是專有詞典的詞匯先切分,然后將剩余片斷交給普通詞典去切分.所以上面的"北京華煙云"之所以被切分成<北,京華煙云>,另外一個可能是:京華煙云這個詞匯是在專有詞典里面存儲的,所以先分析,這樣得出"京華煙云",剩下"北",沒什么好切分的,所以輸出<北,京華煙云>.

這里只是假設,那么是否確實"京華煙云"在專有詞典呢?我們再看一個例子"山東北京華煙云",百度切分的結果是<山東,北,京華煙云>,如果"京華煙云"在普通詞典,如果是反向切分,那么結果應該是<山,東北,京華煙云>,如果是正向切分應該是<山東,北京,華,煙云>,無論如何都分不出<山東,北,京華煙云>.這說明什么?說明"京華煙云"是在那個專有詞典,所以先切分出"京華煙云",然后剩下的"山東北"交由普通詞典切分,明顯是正向最大匹配的結果輸出<山東,北>.當然按照我們在第一篇文章的算法推導"山東北"的切分也會得出<山東,北>的結論,但是明顯比正向最大匹配多幾個判斷步驟,既然效果一樣,另外一個更加簡潔的方法也能說得通,那當然選擇簡便的方法了.所以初步判斷百度采取的是正向最大匹配.

我們繼續測試采用何種分詞算法,為了減少專有詞典首先分詞造成的影響,那么查詢里面不能出現相對特殊的詞匯,構筑查詢"天才能量級",這里應該沒有專有詞典出現過的詞匯,百度切分為<天才,能量,級>,看來是正向最大匹配的結果.另外,如果所有查詢詞匯都出現在專有詞典,那么采取的是何種方法?這樣首先就得保證詞匯都出現在專有詞典,這么保證這一點呢?我們構造查詢"鋪陳曉東方",百度切分為<鋪,陳曉東,方>,可以看出"陳曉東"是在專有詞典的所以先切分出來.另外一個例子 "山東京城",百度切分為<山東,京城>,說明"東京"是在普通詞典的.OK,構造查詢"陳曉東京華煙云",通過前面分析可以看出兩個詞匯都在專有詞典里面,百度切分為<陳曉東,京華煙云>,說明對于專有詞典詞匯也是采取正向最大匹配或者雙向最大匹配.那么使用反向最大匹配了嗎?構造查詢例子"陳曉東方不敗",首先我們肯定"陳曉東"和"東方不敗"都是在專有詞典出現的,如果是正向切分,那么應該是<陳曉東,方,不敗>或者<陳曉東,方,不,敗>如果是反向切分則是<陳,曉,東方不敗>,可以看出百度的切分是<陳曉東,方,不敗>或者<陳曉東,方,不,敗>,說明采用的是正向最大匹配.通過分析,百度的詞典不包含"不敗"這個單詞,所以實際上百度的切分結果是<陳曉東,方,不,敗>,很明顯這和我們以前推導的算法是有矛盾的,所以以前的分析算法確實有問題,所以結論是百度采取的是正向最大匹配算法.

重新歸納一下百度的分詞系統:首先用專有詞典采用最大正向匹配分詞,切分出部分結果,剩余沒有切分交給普通詞典,同樣采取正向最大匹配分詞,最后輸出結果.

另外,GOOGLE也是采用正向最大匹配分詞算法,不過好像沒有那個專用詞典,所以很多專名都被切碎了.

從這點講,GOOGLE在中文詞典構建上比百度差些,還需要加把子力氣才行,不過這也不是什么多難的事.

總結

以上是生活随笔為你收集整理的搜索引擎设计实用教程(3)-以百度为例 之三:对百度分词算法的进一步分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。