歡迎光臨創(chuàng)新互聯(lián)!成都網(wǎng)站制作、成都域名注冊(cè)、成都虛擬主機(jī)、網(wǎng)站空間服務(wù)商,我們將竭誠(chéng)為您提供最優(yōu)質(zhì)的服務(wù)!QQ:646608388 TEL:18982081108
域名注冊(cè)
虛擬主機(jī)
網(wǎng)站建設(shè)
企業(yè)郵局
網(wǎng)絡(luò)營(yíng)銷
網(wǎng)站備案
服務(wù)器租用
百度分詞算法詳解
- 作者:王靜 文章來源:網(wǎng)站營(yíng)銷部 點(diǎn)擊數(shù):872 更新時(shí)間:2009-03-25
- "制才",百度提供的提示詞匯為: “制裁質(zhì)材紙材",都是同 音字.所以百度必然維持著一個(gè)同音詞詞典,里面保留著同音詞信息,比如可能包含著下面這條詞條: “ zhi cai à制裁,質(zhì)材,紙材",另外還有一 個(gè)標(biāo)注拼音程序,現(xiàn)在能夠看到的基本流程是: 用戶輸入" 制才",查詞典,發(fā)現(xiàn)沒有這個(gè)詞匯,OK,啟動(dòng)標(biāo)注拼音程序,將" 制才"標(biāo)注為拼音"zhi cai",然后查找同音詞詞典,發(fā)現(xiàn)同音詞" 制裁,質(zhì)材,紙材",那么提示用戶可能的正確拼寫.
整體流程看起來很簡(jiǎn)單,但是還有一些遺留的小問題,比如是否將詞表里面所有同音詞都作為用戶的提示信息呢?比如某個(gè)拼音有10個(gè)同音詞,是否都輸出呢?百度并沒有將所有同音詞都輸出而是選擇一定篩選標(biāo)準(zhǔn),選擇其中幾個(gè)輸出.怎么證明這一點(diǎn)?我們看看拼音"liu li"的同音詞,紫光輸入法提示同音詞匯有" 流麗 流離琉璃流利"4個(gè),我們看看百度返回幾個(gè),輸入"流厲"作為查詢,這里是故意輸入一個(gè)詞典不包含的詞匯,這樣百度的拼寫檢查才開始工作,百度提示: " 琉璃劉麗 劉莉 ",這說明什么?說明不是所有同音詞都輸出,而是選擇輸出,那么選擇的標(biāo)準(zhǔn)是什么?
我能夠猜測(cè)到的方法是對(duì)于用戶查詢LOG進(jìn)行統(tǒng)計(jì),提取用戶查詢次數(shù)多的那些同音詞輸出,如果是這樣的話,上面的例子說明用戶搜索"琉璃"次數(shù)比其它的都要高些,次之是" 劉麗",再次是" 劉莉",看來大家都喜歡查詢自己或者認(rèn)識(shí)的人的名字.
另外一個(gè)小問題:同音詞詞典包含2字詞,3字詞,那么是否包含4字詞以及更長(zhǎng)的詞條?是否包含一字詞? 這里一字詞好回答,不用測(cè)試也能知道肯定不包含,因?yàn)槟爿斎胍粋(gè)字,誰知道是否是錯(cuò)誤的呢?
反正只要是漢字就能在詞表里面找到,所以沒有判斷依據(jù).二字詞是包含的,上面有例子,三字詞也包含,比如查詢 "中城藥"百度錯(cuò)誤提示:"中成藥",修改查詢?yōu)?quot;重城藥",還是提示"中成藥" ,再次修改查詢 "重城要",百度依然提示"中成藥". 那么4字詞匯呢?
百度還是會(huì)給你提示的,下面是個(gè)例子:
輸入:網(wǎng)站建設(shè)提示 成都網(wǎng)站建設(shè)
輸入:網(wǎng)站設(shè)計(jì) 提示 成都網(wǎng)站設(shè)計(jì)
輸入:網(wǎng)站優(yōu)化 提示 網(wǎng)站優(yōu)化知識(shí)
那么更長(zhǎng)的詞匯是否提 示呢?也提示,比如我輸入: "落花世界有風(fēng)軍",這個(gè)查詢是什么意思,估計(jì)讀過古詩的都知道,看看百度的提示"落花時(shí)節(jié)又逢君",這說明什么?說明同音詞詞典包含不同長(zhǎng)度的同音詞信息,另外也說明了百度的核心中文處理技術(shù),也就是那個(gè)詞典,還真挺大的.
但是,如果用戶輸入的 查詢由兩個(gè)或者兩個(gè)以上子字符串構(gòu)成,那么百度的錯(cuò)誤提示功能就罷工了,比如輸入查詢"哀體",百度提示"艾提 挨踢",但是.輸入為 "我 哀體 ",則沒有任何錯(cuò)誤提示.
還有一個(gè)比較重要的問題:如果漢字是多音字那么怎么處理?百度呢比較偷懶,它根本就沒有對(duì)多音字做處理.我們來看看百度的一個(gè)標(biāo)注拼音的錯(cuò)誤,在看這個(gè)錯(cuò)誤前先看看對(duì)于多音字百度是怎么提示錯(cuò)誤的,我們輸入查詢"俱長(zhǎng)",百度提示"劇場(chǎng) 局長(zhǎng)", “俱長(zhǎng)"的拼音有兩個(gè):"ju zhang /ju chang" ,可見如果是多音字則幾種情況都提示..現(xiàn)在我們來看看錯(cuò)誤的情況, 我們輸入查詢"劇常",百度提示":劇場(chǎng)局長(zhǎng)",提示為"劇場(chǎng)"當(dāng)然好解釋,因?yàn)槭峭糇?但是為什么 "局長(zhǎng)"也會(huì)被提示呢?這說明百度的同音字詞典有錯(cuò)誤,說明在"ju chang"這個(gè)詞條里面包含"局長(zhǎng)"這個(gè)錯(cuò)誤的同音詞.讓我們順藤摸瓜,這個(gè)錯(cuò)誤又說明什么問題呢?
說明百度的同音詞典是自動(dòng)生成的,而且沒有人工校對(duì).還說明在自動(dòng)生成同音詞典的過程中,百度不是根據(jù)對(duì)一篇文章標(biāo)注拼音然后在抽取詞匯和對(duì)應(yīng)的拼音信息獲得的,而是完全按照某個(gè)詞典的詞條來標(biāo)注音節(jié)的,
所以對(duì)于多音字造成的錯(cuò)誤無法識(shí)別出來,如果是對(duì)篇章進(jìn)行拼音標(biāo)注,可能就不會(huì)出現(xiàn)這種很容易發(fā)現(xiàn)的錯(cuò)誤標(biāo)注. 當(dāng)然還有另外一種解釋,就是"局長(zhǎng)"是故意被百度提示出來可能的正確提示詞匯,因?yàn)榭紤]到南方人"zh"和 "ch"等前后鼻音分不清么,那么是這樣的么?我們繼續(xù)測(cè)試到底是何種情況.是百度有錯(cuò)誤還是這是百度的先進(jìn)的算法?
我們考慮詞匯"長(zhǎng)大 ",故意錯(cuò)誤輸入為"贓大",如果百度考慮到了前后鼻音的問題,那么應(yīng)該會(huì)提示"長(zhǎng)大",但是百度提示是"藏大".這說明什么?說明百度并沒有考慮前后鼻音問題,根本就是系統(tǒng)錯(cuò) 誤. 我們輸入查詢"懸賞",故意將之錯(cuò)誤輸入為"懸桑",沒有錯(cuò)誤提示,說明確實(shí)沒有考慮這種情況.前鼻音沒有考慮,那么后鼻音考慮了么,我們輸入":經(jīng)常 ",故意改為后鼻音 "經(jīng)纏",百度提示為"經(jīng)產(chǎn) 經(jīng)懺",還是沒有考慮后鼻音.這基本可以確定是百度系統(tǒng)的錯(cuò)誤導(dǎo)致.
根據(jù)以上推導(dǎo), 我們可以得出如下結(jié)論:百度是將分詞詞典里面每個(gè)詞條利用拼音標(biāo)注程序標(biāo)注成拼音,然后形成同音詞詞典,所以兩個(gè)詞典是同樣大的 ,而且這個(gè)詞典也隨著分詞詞典的增長(zhǎng)而在不斷增長(zhǎng). 至于標(biāo)注過程中多音字百度沒有考慮,如果是多音字就標(biāo)注成多個(gè)發(fā)音組合,通過這種方式形成同音詞詞典.這樣的同音詞詞典顯然包含著很多錯(cuò)誤.
最后一個(gè)問題:百度對(duì)于英文進(jìn)行拼寫檢查么?讓我們?cè)囋嚳?輸入查詢"china",不錯(cuò),搜到不少結(jié)果,專注中文搜索的百度還能搜索到英文,真是意外的驚喜.變換一下查詢"chine",會(huì)更加意外驚喜的給我們提示"china"嗎?
百度提示的是: 吃呢持呢,原來是不小心觸發(fā)了百度的拼音搜索功能了.那么拼音搜索和中文檢查錯(cuò)誤是否采用同一套同音詞詞典呢,讓我們來實(shí)驗(yàn)一下,搜索"rongji", 百度提示" 榕基 溶劑 容積",OK,換個(gè)中文查詢"容機(jī)",百度提示" 榕基溶劑容積",看來使用的是同一套同音詞詞典.也就是說百度的中文糾錯(cuò)和拼音檢索使用的機(jī)制相同,中文糾錯(cuò)多了一道拼音注音的過程而已.難道這就是傳說中那個(gè)百度的"事實(shí)上是一個(gè)無比強(qiáng)大的拼音輸入法"的拼音提示功能么?
最后讓我們總結(jié)歸納一下百度的拼寫檢查系統(tǒng):
后臺(tái)作業(yè):
(1) 前面的文章我們說過,百度分詞使用的詞典至少包含兩個(gè)詞典一個(gè)是普通詞典,另外一個(gè)是專用詞典(專名等),百度利用拼音標(biāo)注程序依次掃描所有詞典中的每個(gè)詞條,然后標(biāo)注拼音,如果是多音字則把多個(gè)音都標(biāo)上,比如"長(zhǎng)大",會(huì)被標(biāo)注為"zhang da/chang da"兩個(gè)詞條.
(2)通過標(biāo)注完的 詞條,建立同音詞詞典,比如上面的"長(zhǎng)大",會(huì)有兩個(gè)詞條: zhang daà長(zhǎng)大" , chang daà長(zhǎng)大.
(3)利用用戶查詢LOG頻率信息給予每個(gè) 中文詞條一個(gè)權(quán)重;
(4)OK,同音詞詞典建立完成了,當(dāng)然隨著分詞詞典的逐步擴(kuò)大,同音詞詞典也跟著同步擴(kuò)大;
拼寫 檢查:
(1)用戶輸入查詢,如果是多個(gè)子字符串,不作拼寫檢查;
(2)對(duì)于用戶查詢,先查分詞詞典,如果發(fā)現(xiàn)有這個(gè)單詞詞條,OK, 不作拼寫檢查;
(3)如果發(fā)現(xiàn)詞典里面不包含用戶查詢,啟動(dòng)拼寫檢查系統(tǒng);首先利用拼音標(biāo)注程序?qū)τ脩糨斎脒M(jìn)行拼音標(biāo)注;
(4)對(duì)于標(biāo)注好的拼音在同音詞詞典里面掃描,如果沒有發(fā)現(xiàn)則不作任何提示;
(5)如果發(fā)現(xiàn)有詞條,則按照順序輸出權(quán)重比較大的幾個(gè)提 示結(jié)果;
拼音提示:
(1)對(duì)于用戶輸入的拼音在同音詞詞典里面掃描,如果沒有發(fā)現(xiàn)則不作任何提示;
(2)如果 發(fā)現(xiàn)有詞條,則按照順序輸出權(quán)重比較大的幾個(gè)提示結(jié)果;
上面說過,經(jīng)過分析得出百度的分詞系統(tǒng)采用雙向最大匹配分詞,但是后來發(fā)現(xiàn)推理過程中存在一個(gè)漏洞,而且推導(dǎo)出來的百度分詞算法步驟還是過于繁瑣,所以進(jìn)一步進(jìn)行分析,看看是否前面的推導(dǎo)有錯(cuò)誤.
那么以前的分析有什么漏洞呢?
我們推導(dǎo)百度分詞有反向最大匹配的依據(jù)是百度將"北京華煙云"分詞為,從這里看好像采用了反向最大匹配,因?yàn)檎蜃畲笃ヅ涞慕Y(jié)果應(yīng)該是,但是由此就推論說百度采用了雙向最大匹配還是太倉促了,前面文章我們也講過,百度有兩個(gè)詞典,一個(gè)普通詞典,一個(gè)專有詞典,而且是專有詞典的詞匯先切分,然后將剩余片斷交給普通詞典去切分.所以上面的"北京華煙云"之所以被切分成,另外一個(gè)可能是:京華煙云這個(gè)詞匯是在專有詞典里面存儲(chǔ)的,所以先分析,這樣得出"京華煙云 ",剩下"北",沒什么好切分的,所以輸出。
這里只是假設(shè),那么是否確實(shí)"京華煙云"在專有詞典呢?我們?cè)倏匆粋(gè)例子"山東北京華煙云",百度切分的結(jié)果是,如果"京華煙云"在普通詞典,如果是反向切分,那么結(jié)果應(yīng)該是,如果是正向切分應(yīng)該是,無論如何都分不出.這說明什么?
說明"京華煙云"是在那個(gè)專有詞典,所以先切分出"京華煙云",然后剩下的"山東北"交由普通詞典切分,明顯是正向最大匹配的結(jié)果輸出.當(dāng)然按照我們?cè)诘谝黄恼碌乃惴ㄍ茖?dǎo)"山東北"的切分也會(huì)得出的結(jié)論,但是明顯比正向最大匹配多幾個(gè)判斷步驟,既然效果一樣,另外一個(gè)更加簡(jiǎn)潔的方法也能說得通,那當(dāng)然選擇簡(jiǎn)便的方法了.所以初步判斷百度采取的是正向最大匹配.
我們繼續(xù)測(cè)試采用何種分詞算法,為了減少專有詞典首先分詞造成的影響,那么查詢里面不能出現(xiàn)相對(duì)特殊的詞匯,構(gòu)筑查詢"天才能量級(jí)",這里應(yīng)該沒有專有詞典出現(xiàn)過的詞匯,百度切分為,看來是正向最大匹配的結(jié)果.另外,如果所有查詢?cè)~匯都出現(xiàn)在專有詞典,那么采取的是何種方法?這樣首先就得保證詞匯都出現(xiàn)在專有詞典,這么保證這一點(diǎn)呢?
我們構(gòu)造查詢"鋪陳曉東方",百度切分為,可以看出 "陳曉東"是在專有詞典的所以先切分出來.另外一個(gè)例子 "山東京城",百度切分為,說明"東京"是在普通詞典的.OK,構(gòu)造查詢"陳曉東京華煙云",通過前面分析可以看出兩個(gè)詞匯都在專有詞典里面,百度切分為,說明對(duì)于專有詞典詞匯也是采取正向最大匹配或者雙向最大匹配.那么使用反向最大匹配了嗎? 構(gòu)造查詢例子"陳曉東方不敗",首先我們肯定"陳曉東"和"東方不敗"都是在專有詞典出現(xiàn)的,如果是正向切分,那么應(yīng)該是或者如果是反向切分則是,可以看出百度的切分是或者,說明采用的是正向最大匹配.通過分析,百度的詞典不包含"不敗"這個(gè)單詞,所以實(shí)際上百度的切分結(jié)果是 ,很明顯這和我們以前推導(dǎo)的算法是有矛盾的,所以以前的分析算法確實(shí)有問題,所以結(jié)論是百度采取的是正向最大匹配算法.
重新歸納一下百度的分詞算法系統(tǒng):首先用專有詞典采用最大正向匹配分詞,切分出部分結(jié)果,剩余沒有切分交給普通詞典,同樣采取正向最大匹配分詞,最后輸出結(jié)果.
另外,GOOGLE也是采用正向最大匹配分詞算法,不過好像沒有那個(gè)專用詞典,所以很多專名都被切碎了.
從這點(diǎn)講,GOOGLE在中文詞典構(gòu)建上比百度差些,還需要加把子力氣才行,不過這也不是什么多難的事.
- 上一篇文章:百度分詞算法詳解
下一篇文章:百度被K網(wǎng)站 N天之后重新收錄了
服務(wù)電話:028-86922220 13518219792 公司地址:成都市太升南路288號(hào)錦天國(guó)際A幢1002號(hào)
支持信箱:service@cdxwcx.com 版權(quán)所有:創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)網(wǎng)絡(luò)公司 蜀ICP備13010860號(hào)
創(chuàng)新互聯(lián)成都網(wǎng)絡(luò)公司專業(yè)從事:成都網(wǎng)站設(shè)計(jì),成都網(wǎng)站制作,成都網(wǎng)站建設(shè),成都網(wǎng)頁制作,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)站開發(fā)以精湛技術(shù)為核心
国产免费观看一区二区|
欧美午夜一级特黄大片|
日韩欧美中文字幕人妻|
国产三级视频不卡在线观看|
欧美国产在线观看精品|
久久精品少妇内射毛片|
日本婷婷色大香蕉视频在线观看|
国产成人亚洲欧美二区综|
亚洲熟女一区二区三四区|
日韩av欧美中文字幕|
扒开腿狂躁女人爽出白浆av
|
邻居人妻人公侵犯人妻视频|
熟女少妇久久一区二区三区|
欧美激情一区二区亚洲专区|
国产三级欧美三级日韩三级|
欧美欧美日韩综合一区|
邻居人妻人公侵犯人妻视频|
午夜传媒视频免费在线观看|
欧美精品亚洲精品日韩专区|
国产又色又爽又黄又大|
国产成人精品一区二区三区|
国产真人无遮挡免费视频一区|
免费啪视频免费欧美亚洲|
国产成人亚洲精品青草天美|
熟女少妇久久一区二区三区|
国产日本欧美韩国在线|
99免费人成看国产片|
亚洲中文字幕综合网在线|
欧美一级不卡视频在线观看|
伊人国产精选免费观看在线视频
|
夫妻性生活一级黄色录像|
91香蕉国产观看免费人人|
亚洲一区二区三区熟女少妇|
狠狠干狠狠操亚洲综合|
色综合久久超碰色婷婷|
国产一区二区久久综合|
欧美日韩亚洲精品内裤|
人妻偷人精品一区二区三区不卡|
91偷拍与自偷拍精品|
神马午夜福利一区二区|
国产亚州欧美一区二区|