劉穎華,許瑞平
Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫中的應用
劉穎華,許瑞平
介紹了Lucene檢索技術(shù)中文本解析器的實現(xiàn)和建立索引時的一個關(guān)鍵算法最大匹配分詞算法,對此算法進行了改進并把它應用到對信息文檔庫的分詞操作中。介紹了建立索引和使用索引的方法,論述了Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫系統(tǒng)中的應用。
知識庫;Lucene檢索技術(shù);索引;分詞算法
隨著競技體育項目的快速發(fā)展,運動技戰(zhàn)術(shù)分析研究不斷深入,運動技戰(zhàn)術(shù)分析信息也迅速增長,同時,在技戰(zhàn)術(shù)分析中,運用數(shù)據(jù)挖掘、人工神經(jīng)網(wǎng)絡(luò)、系統(tǒng)動力學、決策支持系統(tǒng)等理論和方法對運動員比賽的技戰(zhàn)術(shù)特征進行診斷和分析,進而作出評估和預測的技戰(zhàn)術(shù)發(fā)展趨勢也已開始研究。現(xiàn)代科學技術(shù)在運動技戰(zhàn)術(shù)分析中的運用使得運動領(lǐng)域的科學化分析得到了迅猛的發(fā)展。對競技體育的發(fā)展進程起了很大的推進作用。為了將這些迅速增長的研究信息應用到我們的運動訓練實踐中,開發(fā)一個能夠有效管理和檢索的運動技戰(zhàn)術(shù)分析知識庫系統(tǒng),具有重要的現(xiàn)實意義和實用價值[1]。
運動技戰(zhàn)術(shù)分析知識庫主要由許多的文件信息組成,這些文件信息組成了一個巨大的文檔庫,其中有各種類型的文檔數(shù)據(jù)如記錄各種技戰(zhàn)術(shù)分析資料的word文件、大量的分析數(shù)據(jù)excel表格、包含視頻數(shù)據(jù)的ppt文檔、記錄訓練分析資料的 pdf文檔、以及大量的比賽訓練音視頻數(shù)據(jù)資料。對這些文檔數(shù)據(jù)進行歸類處理需要投入大量的人力物力,而且,人工方法對他們進行整理難以歸納出所有的文獻內(nèi)容。因此,對這些基于文檔庫的運動技戰(zhàn)術(shù)分析知識庫進行全文檢索是本文的關(guān)鍵技術(shù)。本文利用Lucene搜索引擎建立文檔的索引,對全文內(nèi)容直接進行檢索,從而實現(xiàn)最大限度的利用這些資源。于數(shù)據(jù)庫中的記錄、字段和表的結(jié)構(gòu),大量通用的應用文檔、數(shù)據(jù)庫資料都可以便捷的映射到Lucene的存儲單元或是其接口中,因此,我們能夠?qū)⑺闯墒且粋€支持全文索引的數(shù)據(jù)庫系統(tǒng)[2]。
Lucene源碼中共包含 7個子包,每個包完成特定的功能,具體如表1所示:

表1 :Lucene的組成結(jié)構(gòu)
1.2 Lucene 的系統(tǒng)架構(gòu)
Lucene功能非常強大,但從根本上說,主要包括兩塊:一是文本內(nèi)容經(jīng)切分后索引入庫;二是根據(jù)查詢條件返回結(jié)果,即索引部分和查詢部分[3]。Lucene的系統(tǒng)結(jié)構(gòu)如圖1所示:
1.1 Lucene的組成結(jié)構(gòu)
Lucene是一個用Java寫的全文檢索引擎工具包,可以便捷的嵌入各類應用程序中從而實現(xiàn)對全文進行檢索或是索引的功能。Lucene的主要功能是索引和檢索,它們兩者具有相互獨立性,便于開發(fā)人員在它們的基礎(chǔ)上進行擴展開發(fā)。Lucene具有豐富的API接口,能夠?qū)Υ鎯υ谄渌饕械臄?shù)據(jù)進行交互,但是,它并不是一個擁有完整特征的全文檢索應用程序,而是能夠給應用程序提供索引和搜索的功能。Lucene的API接口在應用上具有通用性,其輸入輸出類似

圖1 :Lucene的系統(tǒng)結(jié)構(gòu)圖
2.1技戰(zhàn)術(shù)信息文本庫的建立
在運動技戰(zhàn)術(shù)分析知識庫中,信息的格式多樣化,有word、pdf、excel、ppt等格式的文字、數(shù)據(jù)統(tǒng)計表,技戰(zhàn)術(shù)分析視頻剪輯、多媒體技戰(zhàn)術(shù)分析課件等等。根據(jù) Lucene的特點建立索引時,我們首先要對它們進行預處理,使得它們在格式上具有統(tǒng)一的文本文件格式,從而方便我們根據(jù)文檔內(nèi)容來進一步建立相應的索引。將各種不同的文檔格式轉(zhuǎn)化成文本格式的方法各不相同,不能簡單地從文件讀取字符,而是需要根據(jù)它們特殊的格式來提取其中的內(nèi)容[4]。
因此,我們需要建立相關(guān)的解析器將各種文檔解析成文本內(nèi)容,系統(tǒng)根據(jù)文檔名稱來判斷文檔類型,然后,調(diào)用相應的解析器進行內(nèi)容解析,以下為 PDF類型的文檔解析代碼:

2.2 中文分詞
在信息檢索時建立索引可以大大提高檢索的速度,而在Lucene中,建立索引的一個關(guān)鍵的步驟就是進行分詞,如圖2所示:

圖2 :全文索引結(jié)構(gòu)圖
自動分詞目前主要有3類分詞技術(shù):對字符串進行匹配的分詞技術(shù)、基于理解的分詞技術(shù)和基于統(tǒng)計的分詞技術(shù)。運動技戰(zhàn)術(shù)分析知識庫檢索平臺采用了字符串匹配分詞。對字符串進行匹配的分詞技術(shù),其原理是根據(jù)一定的搜索策略對將要進行分析的漢字串和一個被定義為“足夠大的”存儲在詞庫中的詞條做匹配操作。如果能夠在詞庫中搜索到該字符串則該匹配操作為成功,即識別出了一個詞。常用的幾種字符串匹配的分詞方法主要有:正向匹配、逆向匹配、最大切分、最小切分(使每一句中切出的詞數(shù)最小),還可以多種方法相結(jié)合進行匹配如雙向匹配法。根據(jù)搜索方向的不同,串匹配分詞算法又可以有正向、逆向操作的匹配;根據(jù)對各種長度進行優(yōu)先匹配的原則,又可以有最小、最大匹配算法;根據(jù)進行匹配操作時是否能夠和詞性標注的進程相結(jié)合,又可以有單純分詞法、標注和分詞進行結(jié)合的算法[5]。
正向最大匹配算法流程圖如圖3所示:

圖3 最大匹配分詞算法流程圖
算法描述:
(1)初始化兩個字符串S1、S2,其中S1是準備進行切分的字符串,S2是進行切分操作后的字符串,對匹配最大長度MaxLen進行初始化操作。
(2)假設(shè)S1不為空,則從S1的左邊開始,提取待選字符串W,W的長度要小于等于MaxLen。假設(shè)S1為空,就轉(zhuǎn)到步驟(4)繼續(xù)操作。
(3)在已知的分詞詞典中對字符串W做查找操作,如果能夠在詞典中查找到,則把W加入到S2字符串中,S1字符串的指針隨之往后移到W字符串的后面,然后轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行操作。如果在詞典庫查找不到W字符串,則把字符串W最右端的那個字符刪除掉,重新執(zhí)行步驟(3)。
(4)循環(huán)操作,直到S1字符串是空串為止,對分詞結(jié)果字符串S2進行輸出操作。
盡管最大匹配算法可以對大部分詞語的詞條進行切分,可是在大部分情況下,該切分操作會發(fā)生切分錯誤,因而曲解了原始詞條的語義,也即分詞歧義。依據(jù)分詞時引起歧義的不同方式,可以分為以下3種歧義形式:交集型、組合型和混合型。交集型歧義是指假設(shè)BC和CD都屬于詞典中的詞,那么對于“BCD”就有“BC/D”和“B/CD”這樣兩種切分方法。因此,形成的歧義就稱為交集型歧義,比如“乒乓球桌”,有可能引起交集型歧義“乒乓球/桌”和“乒乓/球桌”。利用向前方向的最大匹配算法可以解決部分交集型歧義。組合型歧義是在以下情況下發(fā)生的:假如BC和B、C都是詞典中的詞,那么對字符串“BC”的進行切分可能造成兩種情況:字符串“BC”被切分為“BC/”和“B/C/”。這樣造成的歧義可以被稱之為組合型歧義。例如:字符串“個人”在不同的語言環(huán)境下應該進行不同的切分,“他/個人”和“5/個/人”。
在運動技戰(zhàn)術(shù)分析信息資料中,存儲了海量的專業(yè)詞條和運動員的姓名等詞條信息,這些詞條信息是要進行檢索的重要內(nèi)容,這些專業(yè)詞條在分詞庫中一般都是不存在的,因而,在應用這些分詞庫來做語義分析以及詞條的切分操作時就會出現(xiàn)錯誤,或是不準確的切分操作。要對這些專業(yè)詞條信息和運動員的姓名信息進行一一準確地劃分操作,就需要創(chuàng)建一個針對專業(yè)詞條的詞庫和專門的運動員姓名詞庫,根據(jù)這些詞庫再結(jié)合已有的基本詞庫,來對技戰(zhàn)術(shù)分析知識庫中的信息文檔庫做劃分操作,就可以確保對文檔的劃分更準確和專業(yè)。
改進的對文檔庫的分詞操作步驟如下:
(1)對文檔進行預處理,先把文檔轉(zhuǎn)換成文本文件,然后進行刪除操作,把空格進行刪除,從而統(tǒng)一詞條的格式,如刪除姓名詞條中的空格等。
(2)對文本文件中內(nèi)容進行讀取,將它讀入分配的內(nèi)存單元S1中,對S1進行提取操作,從中提取出候選詞W。W的長度要小于等于MaxLen。
(3)查找已有的分詞詞典,假如在分詞詞典中能夠查找到候選詞W,則把候選詞W添加到分詞字符串,與此同時將S1的指針向后移,移動到W后面,轉(zhuǎn)到步驟(2)繼續(xù)操作。假如在分詞詞典中找不到候選詞 W,則繼續(xù)在存儲專業(yè)詞條的詞庫和存儲姓名詞條的詞庫中進行查找匹配,假如在存儲專業(yè)詞條的詞庫和存儲姓名詞條的詞庫中查找到了候選詞W,做將候選詞W添到分詞字符串中的操作,與此同時將S1的指針往后移,移動到候選詞W的后面,跳轉(zhuǎn)到步驟(2)繼續(xù)執(zhí)行。假如在存儲專業(yè)詞條的詞庫和存儲姓名詞條的詞庫中都無法查找到候選詞W,則刪除掉W最右邊的一個字符,重新回到步驟(3)繼續(xù)執(zhí)行。
(4)循環(huán)操作直至字符串S1被全部劃分完。
2.3 創(chuàng)建索引和使用索引
在運動技戰(zhàn)術(shù)分析知識庫中創(chuàng)建索引需要將標題和內(nèi)容分別提出作為索引,并且把兩者的數(shù)據(jù)類型與索引匹配,在創(chuàng)建完索引類后,建立Document類型的對象,并為其添加一些屬性Field。我們把Document對象看成是虛擬文件,把來此處獲取信息的.Field則看成是描述此虛擬文件的元數(shù)據(jù),構(gòu)建完 Document并詳細設(shè)計了 Field,然后將每個Document作為一個條目添加到索引中去實現(xiàn)檢索。
在使用索引進行搜索運動技戰(zhàn)術(shù)分析知識庫的操作時,我們將檢索關(guān)鍵詞出現(xiàn)的頻率作為計算該文檔資料的權(quán)重值從而來為我們的決策分析提供一個科學的計算數(shù)值。對檢索條件的文檔進行結(jié)構(gòu)化操作是進行檢索的關(guān)鍵步驟,同樣我們可以采用在創(chuàng)建索引時所使用的分詞器來對查詢條件進行詞條的切分操作,進而將之轉(zhuǎn)換成一組由與或非符號組成的邏輯表達式,對存儲在知識庫中的文檔的創(chuàng)建不同索引庫,對該索引庫的不同域進行檢索從而實現(xiàn)檢索功能。
本文在深入學習 lucene檢索技術(shù)的基礎(chǔ)上,介紹了Lucene全文搜索引擎的組成結(jié)構(gòu)和系統(tǒng)架構(gòu),以及它的具體應用方法,提出了文本解析器的實現(xiàn)方法和建立索引時的關(guān)鍵算法:最大匹配分詞算法,對此算法進行了改進并將它應用到信息文檔庫的分詞操作中。介紹了建立索引和使用索引的方法,論述了Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫系統(tǒng)中的具體應用。在將Lucene檢索技術(shù)引入到體育信息技術(shù)領(lǐng)域做了一個有益的嘗試。
[1] 黃華勇.奧運競技體育項目技戰(zhàn)術(shù)分析知識庫的研究與實現(xiàn)[D].南京:南京理工大學,2008.
[2] 李永春,丁華福.Lucene的全文檢索的研究與應用[J].計算機技術(shù)與發(fā)展,2010,20(2):12-15.
[3] 蘇潭英,郭憲勇,金鑫.一種基于 Lucene的中文全文檢索系統(tǒng)[J].計算機工程.2007,33(23):94-96.
[4] 楊春龍,顧春華.基于概念語義相似度計算模型的信息檢索研究[J].計算機應用與軟件.2013,30(6):88-92.
[5] 索紅光,孫鑫.針對中文檢索的lucene改進策略[J].計算機應用與軟件,2009,26(6):175-177.
G819.19文獻標志碼:A
2015.01.20)
1007-757X(2015)08-0026-02
上海市科委重點科技攻關(guān)計劃資助項目(072705128)
劉穎華(1973-),女,江西永豐人,上海體育學院運動技戰(zhàn)術(shù)診斷與分析重點實驗室,講師,碩士,研究方向:運動項目數(shù)據(jù)庫應用,上海,200436許瑞平(1973-),女,河南安陽人,上海體育學院信息技術(shù)中心,工程師,碩士,研究方向:教育信息化,上海,200433