主頁 > 知識庫 > 高手總結分析如果利用baidu分詞算法分析之二(轉)

高手總結分析如果利用baidu分詞算法分析之二(轉)

熱門標簽:威海人工智能電銷機器人系統(tǒng) 福州外呼系統(tǒng)中間件 好看的地圖標注圖標下載 百度地圖標注備注 機器人電銷有什么用 德州外呼系統(tǒng)排名 地圖標注員怎么去做 貴州全自動外呼系統(tǒng)廠家 上海電銷卡外呼系統(tǒng)廠家
Checker拼寫檢查錯誤提示(以及拼音提示功能)

拼寫檢查錯誤提示是搜索引擎都具備的一個功能,也就是說用戶提交查詢給搜索引擎,搜索引擎檢查看是否用戶輸入的拼寫有錯誤,對于中文用戶來說一般造成的錯誤是輸入法造成的錯誤.那么我們就來分析看看百度是怎么實現(xiàn)這一功能的.

  我們分析拼寫檢查系統(tǒng)關注以下幾個問題:

  (1)系統(tǒng)如何判斷用戶的輸入是有可能發(fā)生錯誤的查詢呢?

  (2)如果判斷是可能錯誤的查詢輸入,如何提示正確的詞匯呢?

  那么百度是如何做的呢?百度判斷用戶輸入是否錯誤的標準,我覺得應該是查字典,如果發(fā)現(xiàn)字典里面不包含這個詞匯,那么很有可能是個錯誤的輸入,此時啟動錯誤提示功能,這個很好判斷,因為如果是一個正常詞匯的話,百度一般不會有錯誤提示,而你故意輸入一個詞典不可能包含的所謂詞匯,此時百度一般會提示你正確的檢索詞匯.

  那么百度是怎么提示正確詞匯的呢?很明顯是通過拼音的方式,比如我輸入查詢" 制才",百度提供的提示詞匯為: “:制裁 質材 紙材",都是同音字.所以百度必然維持著一個同音詞詞典,里面保留著同音詞信息,比如可能包含著下面這條詞條: “ zhi cai à制裁,質材,紙材",另外還有一個標注拼音程序,現(xiàn)在能夠看到的基本流程是: 用戶輸入" 制才",查詞典,發(fā)現(xiàn)沒有這個詞匯,OK,啟動標注拼音程序,將" 制才"標注為拼音"zhi cai",然后查找同音詞詞典,發(fā)現(xiàn)同音詞" 制裁,質材,紙材",那么提示用戶可能的正確拼寫.

  整體流程看起來很簡單,但是還有一些遺留的小問題,比如是否將詞表里面所有同音詞都作為用戶的提示信息呢?比如某個拼音有10個同音詞,是否都輸出呢?百度并沒有將所有同音詞都輸出而是選擇一定篩選標準,選擇其中幾個輸出.怎么證明這一點?我們看看拼音"liu li"的同音詞,紫光輸入法提示同音詞匯有" 流麗流離 琉璃流利"4個,我們看看百度返回幾個,輸入"流厲"作為查詢,這里是故意輸入一個詞典不包含的詞匯,這樣百度的拼寫檢查才開始工作,百度提示: " 琉璃劉麗 劉莉 ",這說明什么?說明不是所有同音詞都輸出,而是選擇輸出,那么選擇的標準是什么?我能夠猜測到的方法是對于用戶查詢LOG進行統(tǒng)計,提取用戶查詢次數(shù)多的那些同音詞輸出,如果是這樣的話,上面的例子說明用戶搜索"琉璃"次數(shù)比其它的都要高些,次之是" 劉麗",再次是" 劉莉",看來大家都喜歡查詢自己或者認識的人的名字.

  另外一個小問題:同音詞詞典包含2字詞,3字詞,那么是否包含4字詞以及更長的詞條?是否包含一字詞? 這里一字詞好回答,不用測試也能知道肯定不包含,因為你輸入一個字,誰知道是否是錯誤的呢?反正只要是漢字就能在詞表里面找到,所以沒有判斷依據.二字詞是包含的,上面有例子,三字詞也包含,比如查詢 "中城藥"百度錯誤提示:"中成藥",修改查詢?yōu)?重城藥",還是提示"中成藥" ,再次修改查詢 "重城要",百度依然提示"中成藥". 那么4字詞匯呢?

百度還是會給你提示的,下面是個例子:

  輸入:靜華煙云 提示 京華煙云

  輸入:靜話煙云 提示 京華煙云

  輸入:靜話閻暈 提示 京華煙云

  那么更長的詞匯是否提示呢?也提示,比如我輸入: "落花世界有風軍",這個查詢是什么意思,估計讀過古詩的都知道,看看百度的提示"落花時節(jié)又逢君",這說明什么?說明同音詞詞典包含不同長度的同音詞信息,另外也說明了百度的核心中文處理技術,也就是那個詞典,還真挺大的.

  但是,如果用戶輸入的查詢由兩個或者兩個以上子字符串構成,那么百度的錯誤提示功能就罷工了,比如輸入查詢"哀體",百度提示"艾提挨踢",但是.輸入為 "我 哀體 ",則沒有任何錯誤提示.

  還有一個比較重要的問題:如果漢字是多音字那么怎么處理?百度呢比較偷懶,它根本就沒有對多音字做處理.我們來看看百度的一個標注拼音的錯誤,在看這個錯誤前先看看對于多音字百度是怎么提示錯誤的,我們輸入查詢"俱長",百度提示"劇場局長", “俱長"的拼音有兩個:"ju zhang /ju chang" ,可見如果是多音字則幾種情況都提示..現(xiàn)在我們來看看錯誤的情況, 我們輸入查詢"劇常",百度提示":劇場局長",提示為"劇場"當然好解釋,因為是同音字,但是為什么 "局長"也會被提示呢?這說明百度的同音字詞典有錯誤,說明在"ju chang"這個詞條里面包含"局長"這個錯誤的同音詞.讓我們順藤摸瓜,這個錯誤又說明什么問題呢?說明百度的同音詞典是自動生成的,而且沒有人工校對.還說明在自動生成同音詞典的過程中,百度不是根據對一篇文章標注拼音然后在抽取詞匯和對應的拼音信息獲得的,而是完全按照某個詞典的詞條來標注音節(jié)的,所以對于多音字造成的錯誤無法識別出來,如果是對篇章進行拼音標注,可能就不會出現(xiàn)這種很容易發(fā)現(xiàn)的錯誤標注. 當然還有另外一種解釋,就是"局長"是故意被百度提示出來可能的正確提示詞匯,因為考慮到南方人"zh"和 "ch"等前后鼻音分不清么,那么是這樣的么?我們繼續(xù)測試到底是何種情況.是百度有錯誤還是這是百度的先進的算法?

我們考慮詞匯"長大 ",故意錯誤輸入為"贓大",如果百度考慮到了前后鼻音的問題,那么應該會提示"長大",但是百度提示是"藏大".這說明什么?說明百度并沒有考慮前后鼻音問題,根本就是系統(tǒng)錯誤. 我們輸入查詢"懸賞",故意將之錯誤輸入為"懸桑",沒有錯誤提示,說明確實沒有考慮這種情況.前鼻音沒有考慮,那么后鼻音考慮了么,我們輸入":經常",故意改為后鼻音 "經纏",百度提示為"經產經懺",還是沒有考慮后鼻音.這基本可以確定是百度系統(tǒng)的錯誤導致.

  根據以 上推導, 我們可以得出如下結論:百度是將分詞詞典里面每個詞條利用拼音標注程序標注成拼音,然后形成同音詞詞典,所以兩個詞典是同樣大的 ,而且這個詞典也隨著分詞詞典的增長而在不斷增長. 至于標注過程中多音字百度沒有考慮,如果是多音字就標注成多個發(fā)音組合,通過這種方式形成同音詞詞典.這樣的同音詞詞典顯然包含著很多錯誤.

  最后一個問題:百度對于英文進行拼寫檢查么?讓我們試試看,輸入查詢"china",不錯,搜到不少結果,專注中文搜索的百度還能搜索到英文,真是意外的驚喜.變換一下查詢"chine",會更加意外驚喜的給我們提示"china"嗎?百度提示的是: 吃呢持呢,原來是不小心觸發(fā)了百度的拼音搜索功能了.那么拼音搜索和中文檢查錯誤是否采用同一套同音詞詞典呢,讓我們來實驗一下,搜索"rongji",百度提示" 榕基 溶劑容積",OK,換個中文查詢"容機",百度提示" 榕基溶劑容積",看來使用的是同一套同音詞詞典.也就是說百度的中文糾錯和拼音檢索使用的機制相同,中文糾錯多了一道拼音注音的過程而已.難道這就是傳說中那個百度的"事實上是一個無比強大的拼音輸入法"的拼音提示功能么?

最后讓我們總結歸納一下百度的拼寫檢查系統(tǒng):

  后臺作業(yè): (1)前面的文章我們說過,百度分詞使用的詞典至少包含兩個詞典一個是普通詞典,另外一個是專用詞典(專名等),百度利用拼音標注程序依次掃描所有詞典中的每個詞條,然后標注拼音,如果是多音字則把多個音都標上,比如"長大",會被標注為"zhang da/chang da"兩個詞條.

  (2)通過標注完的詞條,建立同音詞詞典,比如上面的"長大",會有兩個詞條: zhang daà長大" , chang daà長大.

  (3)利用用戶查詢LOG頻率信息給予每個中文詞條一個權重;

  (4)OK,同音詞詞典建立完成了,當然隨著分詞詞典的逐步擴大,同音詞詞典也跟著同步擴大;

  拼寫 檢查:

  (1)用戶輸入查詢,如果是多個子字符串,不作拼寫檢查;

  (2)對于用戶查詢,先查分詞詞典,如果發(fā)現(xiàn)有這個單詞詞條,OK, 不作拼寫檢查;

  (3)如果發(fā)現(xiàn)詞典里面不包含用戶查詢,啟動拼寫檢查系統(tǒng);首先利用拼音標注程序對用戶輸入進行拼音標注;

   (4)對于標注好的拼音在同音詞詞典里面掃描,如果沒有發(fā)現(xiàn)則不作任何提示;

  (5)如果發(fā)現(xiàn)有詞條,則按照順序輸出權重比較大的幾個提示結果;

  

  拼音提示:

  (1)對于用戶輸入的拼音在同音詞詞典里面掃描,如果沒有發(fā)現(xiàn)則不作任何提示;

  (2)如果發(fā)現(xiàn)有詞條,則按照順序輸出權重比較大的幾個提示結果。

標簽:葫蘆島 邵陽 岳陽 南陽 南陽 泉州 撫州 白城

巨人網絡通訊聲明:本文標題《高手總結分析如果利用baidu分詞算法分析之二(轉)》,本文關鍵詞  高手,總結,分析,如果,利用,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《高手總結分析如果利用baidu分詞算法分析之二(轉)》相關的同類信息!
  • 本頁收集關于高手總結分析如果利用baidu分詞算法分析之二(轉)的相關信息資訊供網民參考!
  • 推薦文章