花旗隊分詞技術

鴨脖發表於2012-05-07
花旗隊分詞技術
徐亞渤
1、 什麼是分詞技術?
分詞技術就是 SE 針對使用者提交查詢的關鍵串進行的查詢處理後根據使用者的關鍵詞串用
各種匹配方法進行的一種技術。
2、 介紹分詞技術之前,有必要對搜尋引擎技術做一下簡單的介紹:
搜尋引擎,搜,就是大量資訊的抓取,抓取回來後的資訊進行智慧提取,排重,質量分
析等處理。索,就是大量處理後資訊的儲存,資訊排序,快速查詢等。引擎,就是指系
統不但能夠儲存億級資料,而且還能夠有巨大的併發處理能力。這樣的系統才有資格叫
做引擎。搜的工作主要是爬蟲程式的設計,這項工作是王正迪和周軒輊做的,索的工作
我們藉助的是開源的中文檢索引擎,
coreseek,
其中包含了排序演算法,
中文分詞等技術。
我所做的工作就是將使用者輸入的需要查詢的資訊進行分詞, coreseek 的基礎之上做進

一步的優化。
搜尋引擎所涉及的關鍵技術有:
1、 網路爬蟲
2、 中英文分詞語言處理
3、 排序演算法
4、 查詢/儲存技術
網路爬蟲是一個自動提取網頁的程式,它為搜尋引擎從因特網上下載網頁。網路爬蟲能
抓取靜態網頁,動態網頁,特殊內容,檔案物件等,採用多執行緒的方式。分詞顧名思義
就是將使用者的輸入分為一個個詞,通過詞來建立索引進行查詢,所以分詞是查詢儲存技
術的前提。
對於英文來講,
我們可以簡單的通過空格和標點符號,
便可成功地進行分詞,
但是對於以漢語為代表的東亞語系,分詞便沒有那麼簡單了。或許我們會想到將一段漢
語的每一個字都分為一個詞,但是顯然這種分詞方法的搜尋結果不會令人滿意。因此找
到一種合適的中分分詞方法是我們此次花旗杯我的主要任務。而且對於搜尋引擎而言,
分詞速度比分詞準確率要更重要。分詞的話我們就需要詞庫,詞庫的建立還需要依賴於
經管院的專業人士,艾迪。排序演算法決定了各個網頁、圖片、mp3 等資料的重要性排列
順序。這項工作交給王正迪,其實 coreseek 就能完成的,這是他負責的。最後一項查詢
儲存,這當然還是 coreseek 的工作。主要包括系統如何去儲存上百億的網頁資料,如何
科學高效的提供搜尋結果。資料儲存部分則主要包括兩部分,一個是網頁資料。另一個
是詞庫索引資料,它包括中文詞庫,英文單詞,每個字詞對應網頁編號佇列。
這樣的話,呈現在我面前的搜尋引擎技術就相當簡單了吧,其實我只需要看的是上圖中
的右半部分,
在我跟前有一個資料庫 Index,
這個資料庫是一個詞——網頁 索引資料庫,
而使用者輸入的不是詞,可能是一個句子,因而如果我們想索引到特定的網頁,就必須先
分詞,我當然也可以利用左半部分中的中文詞庫,英文詞庫等資料庫來為我的分詞演算法
提供支援。至於 Index 資料庫是如何構建的,這雖然是搜尋引擎中最重要的部分,但是
與我無關,我研究的是分詞(其實這個資料庫的構建前面也講了,主要是爬蟲爬網頁等
物件,然後通過內容提取等技術,來構建該資料庫)
,另外我還要注意排序演算法和詞庫
的更新,只是注意,因為這兩塊主要由王正迪和艾迪負責。
下面是搜尋“屈波搜尋引擎”的簡要圖解:先分詞,然後
在 Index 資料庫中找到各個詞的索引佇列之後,再做邏輯運算:
最後得出的網頁序列便是搜尋結果。
3、 分詞演算法
中文分詞的基本操作:
1、 把使用者提交的字串沒有超過 3 個的中文字,就會直接到資料庫索引詞彙。超過 4
箇中文字的,
首先用分隔符比如空格,
標點符號,
將查詢串分割成若干子查詢串。
2、
然後再看使用者提供的這個詞有沒有重複詞彙。如果有的話,會丟棄掉,預設為一個
詞彙。接下來檢查使用者提交的字串,有沒有字母和數字。如果有的話,就把字母
和數字認為一個詞。
一般通過三種方式進行中文分詞:
1、 字串匹配法
2、 詞義分析法
3、 統計分詞法
由於字串匹配法比較成熟,所以我們會採取該種方法來進行中文分詞。可能會結合統
計分詞法。由於詞義分析法目前還不成熟,因而我們可能不會用到此種方法。
其中,字串匹配法又可分為:
1、 正向最大匹配法
2、 反向最大匹配法
3、 最短路徑法
在這裡我還會系統學習一個 MMSeg 分詞法,它是 coreseek 採用的中文分詞方法。我問
了一下浣熊,他說他們當時採取的是在 MMSeg 分詞法的基礎上做了一點點改變。目前
我正在聯絡做分詞那塊的人,由於他總是不上 gtalk,所以目前還沒聯絡的上。= = 。不
過現在需要學習的很多,那方面還不太急。
MMSeg 分詞演算法很好實現,網上也有很多的實現。而且我現在的能力很難做到創造一
種新演算法,比 MMSeg 演算法的分詞速度,準確度更高,畢竟它是多名學者不斷努力的結
果,儘管它是開源的。因而我準備接下來以 MMSeg 分詞演算法為根基,基本目標是用
python 實現,滿足我們的基本需求。當然,我一定會盡力看更多的文章,看能不能找到
更好的基於 MMSeg 分詞演算法的分詞思想,對 MMSeg 分詞演算法做進一步的改進。
先寫到這吧。該期中考試了。。 T
。。T
Reference:
漫話中文分詞 http://www.matrix67.com/blog/archives/4212
MMSeg 分詞演算法探究 http://www.0ssifrage.com/blog/archives/78
漫話語義分析 http://www.matrix67.com/blog/archives/4870


相關文章