張麗春, 周新志
(四川大學 電子信息學院,四川 成都 610064)
DGP就是《氣田地面工程設計規(guī)定》體系(DGP,Code for Design of Gasfield Group Project),DGP 要實現(xiàn)的功能是將各類繁多數(shù)量龐大的相關文件數(shù)據(jù)進行統(tǒng)一的管理,以方便用戶查找和下載打印,便于實現(xiàn)知識共享,實現(xiàn)對氣田地面工程的設計技術標準和工作標準進行系統(tǒng)地管理。因為像圖書館查閱的方式已經(jīng)達不到方便快捷的查詢與使用,必須要建立一個像 DGP一樣的能夠提供便捷的服務來滿足用戶的需要。DGP需要完成搜索與管理功能,具體表現(xiàn)在需要實現(xiàn)用戶登陸系統(tǒng),文件搜索、瀏覽、下載、打印,文件上傳、刪除、更新,文件的管理,系統(tǒng)的管理等功能[1]。要實現(xiàn)這些功能需要用到很多的技術,其中非常關鍵的一項技術,也是影響 DGP系統(tǒng)性能至關重要的一項技術就是分詞技術。
分詞技術是搜索引擎針對用戶提交查詢的關鍵串進行的查詢處理,后根據(jù)用戶的關鍵串用各種匹配方法進行的一種技術,是一個搜索引擎好壞的關鍵[2]。中文分詞技術,指的是將一個漢字序列切分成一個一個單獨的詞,也就是將連續(xù)的字序列按照一定的規(guī)則重新組合成詞序列的過程。因為中文的詞沒有一個形式上的分界符,而英文有空格作為單詞之間的分界符,所以中文比英文的要更復雜、更困難[3]。
現(xiàn)有的分詞技術有三大類:基于詞頻度統(tǒng)計的分詞方法、基于字典詞庫匹配分詞方法、基于知識理解的分詞方法。三種分詞技術分別有各自的特點:統(tǒng)計分詞方法的優(yōu)點在于可以發(fā)現(xiàn)所有的切分歧義并且容易將新詞提取出來,但是分詞速度太慢了;基于字典詞庫匹配分詞方法速度比較快,但對詞典的依賴性較大,且不能根據(jù)文檔上下文的語義特征來切分詞語,在實際使用時,難免會造成一些分詞錯誤,為了提高系統(tǒng)分詞的準確度,可以采用正向最大匹配法和逆向最大匹配法相結合的分詞方案,即雙向匹配法;基于知識理解的分詞方法的分詞效率應該是最好的,但是目前還處于完善階段[4]。
在此,綜合現(xiàn)有的分詞技術的優(yōu)缺點,確定將最大匹配法進行改進之后運用于DGP系統(tǒng)之中,并討論最大匹配法在DGP系統(tǒng)里的實現(xiàn)問題。
最大匹配法是需要建立一個“充分大”的機器詞典,也就是建立一個關鍵詞庫[5],其中包含所有可能出現(xiàn)的詞,將需要分詞的字符串按照一定的方法與詞典中的詞條進行逐條匹配,直到找出匹配的詞則匹配成功[6]。這類方法簡單、分詞效率高。
最大匹配法的特點就是從最長的詞開始匹配,可以提高查詢的速度,提高工作效率。最大匹配法又分為正向最大匹配法和逆向最大匹配法。正向最大匹配法的基本思路如下:
2)從詞典中查找最大長度匹配詞的值M=MAX_Length,“窗口”的起始位置為待匹配句子的第一個字,記為j=0。
3)當n j- 大于等于M且M大于等于1時,則從j的位置開始向后截取長度為M的子串進行匹配,若匹配不成功則進入步驟 4,若匹配成功則進入步驟5;當n j- 小于M且M大于等于1時,進入步驟6;當M小于1時,進入步驟7。
4) 1j j= + ,進入步驟3。
5)將匹配成功的分詞取出,j jM= + ,進入步驟3。
6)M值減1, j=0,進入步驟3。
7)匹配結束[7]。
用流程圖來描述如圖1所示。
逆向最大匹配法與正向最大匹配法相差無幾,只是逆向最大匹配法是從詞串的最后一個字開始取i個字與詞典作匹配而已。
在正向和逆向最大匹配法中,都是運用了“窗口”的思想。首先選取了最大長度M,確定窗口的大小,從最前端的第一個字開始依次往向挪動“窗口”截詞與詞典中的詞進行匹配。如果匹配成功,那么將詞典中匹配的關鍵詞取出,繼續(xù)向后匹配,如果整個句子都沒匹配成功,那么將M的值減一,即是將窗口的大小減小一個字,依照之前的方法進行挨個匹配,直到將待匹配的句子全部與詞典中的詞匹配并截取出來,整個匹配任務便完成了[8]。
圖1 正向最大匹配法流程
舉例看一下最大匹配法的分詞效果:
假使有句子 A:“有意見分歧”,B:“天然氣管理部門”,使用正向和逆向最大匹配法對其進行切分,分別得到“有意、見、分歧”,“天然氣、管理部門”和“有、意見、分歧”,“天然氣、管理部門”。從語義上來看,可以看到句子 A使用逆向最大匹配法分詞是正確的,句子B兩種方法得到的結果是一樣的,都是正確的。因此,為了提高分詞的準確性,應該考慮將正向、逆向最大匹配法結合的方式進行分詞。在具體分詞的時候,如果兩種分詞方法得到的匹配結果相同,則認為分詞正確,否則,按最小集處理。使用雙向最大匹配法可以大大提高分詞的準確率。
但是雙向最大匹配法也給分詞帶來了一些難題,因為從時間效率上來講,雙向最大匹配法肯定要比單向的匹配法效率要低些,但是為了準確率,必須犧牲一點時間效率。在這樣的情況下,考慮到可以從另外的地方進行改進,為DGP系統(tǒng)搜索節(jié)約出一部分的時間。因為最大匹配法有一個特點是“長詞優(yōu)先”[9],而在分詞的時候,是將切分的句子與詞典中的詞一一匹配的,那么可以考慮將詞典里的詞按相同長度的詞分成一個詞塊,在分詞匹配的時候,根據(jù)待匹配的詞的長度,也就是M值,確定目前應與哪個長度的詞塊里的詞進行匹配。這樣就避免與不同詞長度的詞塊匹配浪費很多時間,達到了提高搜索效率的目的。
DGP系統(tǒng)中的文件主要是一些標準規(guī)范、技術規(guī)格書、參考資料等等,內(nèi)容十分豐富。在這里可以看一下雙向匹配法在DGP系統(tǒng)中的運用效果。
如圖2、圖3所示,在DGP系統(tǒng)中只要輸入關鍵字就能查出所有的相關的標準文獻,并沒有其它無關的信息出現(xiàn),說明雙向匹配法讓DGP系統(tǒng)搜索的準確率大大高,而且在實際操作的時候,反應速度是很快的,完全能夠滿足用戶的實際需要。這說明,在DGP系統(tǒng)中,運用雙向匹配法能夠很好地達到高效查找資料的目的,并提高搜索準確率,使得DGP系統(tǒng)得到優(yōu)化。
圖2 雙向匹配法在DGP系統(tǒng)中的運用圖例(1)
圖3 雙向匹配法在DGP系統(tǒng)中的運用圖例(2)
通過對分詞技術的分析,并且根據(jù)DGP系統(tǒng)的分詞需要,分析出使用雙向最大匹配法是最適合DGP系統(tǒng)的分詞方法。并了解到雙向最大匹配法在分詞的時候的難點是:在進行分詞時會在一定程度上會使 DGP的分詞效率稍微有點降低,使搜索變慢,在這樣的情況下,提出對詞典進行適當?shù)卣?,將詞典內(nèi)的詞按詞長分塊,以提高DGP系統(tǒng)分詞效率,為搜索節(jié)約了時間,并且提高了搜索的準確率,達到了優(yōu)化DGP系統(tǒng)的目的。
[1] 趙詩陽.DGP系統(tǒng)中基于庫的垂直檢索技術的優(yōu)化[D].四川:四川大學,2011.
[2] 黃春毅.一種自適應搜索引擎的構建研究[J].情報檢索,2006(02):163-164.
[3] 羅小虎.基于蟻群算法的漢語自動分詞的研究與實現(xiàn)[D].江蘇:蘇州大學,2004.
[4] 向暉,郭一平,王亮.基于Lucene的中文字典分詞模塊的設計與實現(xiàn)[J].現(xiàn)代圖書情報技術,2006(08):46-50.
[5] 吳瑞,周雪廣.網(wǎng)上不良信息過濾系統(tǒng)研究[J].信息安全與通信保密,2005(08):104-106.
[6] 王科,高常波,翟雪峰,等.漢語分詞的主要技術及其應用展望[J].通信技術,2003(06):12-15.
[7] 鄒松.垂直搜索引擎中文分詞技術的算法研究[J].計算機技術與發(fā)展,2012,22(02):131-133,137.
[8] 郭輝,蘇中義,王文,等.一種改進的 MM分詞算法[J].微型電腦應用,2002,18(01):13-15.
[9] 田占霄,韓憲忠,王克儉.一種改進的長詞優(yōu)先逆向最大匹配分詞沒消歧策略[J].河北農(nóng)業(yè)大學學報,2009,32(04):100-102,107.
[10] 李航宇.有限域上的圓錐曲線的數(shù)乘運算(英文)[J].信息安全與通信保密,2007(08):64-65,69.
[11] 杜虎強,梁衛(wèi)星,周杰.AKF與EFRLS在動態(tài)目標跟蹤性能上的比較[J].通信技術,2009,42(11):208-210.