劉穎華,許瑞平
Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫中的應(yīng)用
劉穎華,許瑞平
介紹了Lucene檢索技術(shù)中文本解析器的實現(xiàn)和建立索引時的一個關(guān)鍵算法最大匹配分詞算法,對此算法進(jìn)行了改進(jìn)并把它應(yīng)用到對信息文檔庫的分詞操作中。介紹了建立索引和使用索引的方法,論述了Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫系統(tǒng)中的應(yīng)用。
知識庫;Lucene檢索技術(shù);索引;分詞算法
隨著競技體育項目的快速發(fā)展,運動技戰(zhàn)術(shù)分析研究不斷深入,運動技戰(zhàn)術(shù)分析信息也迅速增長,同時,在技戰(zhàn)術(shù)分析中,運用數(shù)據(jù)挖掘、人工神經(jīng)網(wǎng)絡(luò)、系統(tǒng)動力學(xué)、決策支持系統(tǒng)等理論和方法對運動員比賽的技戰(zhàn)術(shù)特征進(jìn)行診斷和分析,進(jìn)而作出評估和預(yù)測的技戰(zhàn)術(shù)發(fā)展趨勢也已開始研究?,F(xiàn)代科學(xué)技術(shù)在運動技戰(zhàn)術(shù)分析中的運用使得運動領(lǐng)域的科學(xué)化分析得到了迅猛的發(fā)展。對競技體育的發(fā)展進(jìn)程起了很大的推進(jìn)作用。為了將這些迅速增長的研究信息應(yīng)用到我們的運動訓(xùn)練實踐中,開發(fā)一個能夠有效管理和檢索的運動技戰(zhàn)術(shù)分析知識庫系統(tǒng),具有重要的現(xiàn)實意義和實用價值[1]。
運動技戰(zhàn)術(shù)分析知識庫主要由許多的文件信息組成,這些文件信息組成了一個巨大的文檔庫,其中有各種類型的文檔數(shù)據(jù)如記錄各種技戰(zhàn)術(shù)分析資料的word文件、大量的分析數(shù)據(jù)excel表格、包含視頻數(shù)據(jù)的ppt文檔、記錄訓(xùn)練分析資料的 pdf文檔、以及大量的比賽訓(xùn)練音視頻數(shù)據(jù)資料。對這些文檔數(shù)據(jù)進(jìn)行歸類處理需要投入大量的人力物力,而且,人工方法對他們進(jìn)行整理難以歸納出所有的文獻(xiàn)內(nèi)容。因此,對這些基于文檔庫的運動技戰(zhàn)術(shù)分析知識庫進(jìn)行全文檢索是本文的關(guān)鍵技術(shù)。本文利用Lucene搜索引擎建立文檔的索引,對全文內(nèi)容直接進(jìn)行檢索,從而實現(xiàn)最大限度的利用這些資源。于數(shù)據(jù)庫中的記錄、字段和表的結(jié)構(gòu),大量通用的應(yīng)用文檔、數(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功能非常強(qiáng)大,但從根本上說,主要包括兩塊:一是文本內(nèi)容經(jīng)切分后索引入庫;二是根據(jù)查詢條件返回結(jié)果,即索引部分和查詢部分[3]。Lucene的系統(tǒng)結(jié)構(gòu)如圖1所示:
1.1 Lucene的組成結(jié)構(gòu)
Lucene是一個用Java寫的全文檢索引擎工具包,可以便捷的嵌入各類應(yīng)用程序中從而實現(xiàn)對全文進(jìn)行檢索或是索引的功能。Lucene的主要功能是索引和檢索,它們兩者具有相互獨立性,便于開發(fā)人員在它們的基礎(chǔ)上進(jìn)行擴(kuò)展開發(fā)。Lucene具有豐富的API接口,能夠?qū)Υ鎯υ谄渌饕械臄?shù)據(jù)進(jìn)行交互,但是,它并不是一個擁有完整特征的全文檢索應(yīng)用程序,而是能夠給應(yīng)用程序提供索引和搜索的功能。Lucene的API接口在應(yīng)用上具有通用性,其輸入輸出類似
圖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的特點建立索引時,我們首先要對它們進(jìn)行預(yù)處理,使得它們在格式上具有統(tǒng)一的文本文件格式,從而方便我們根據(jù)文檔內(nèi)容來進(jìn)一步建立相應(yīng)的索引。將各種不同的文檔格式轉(zhuǎn)化成文本格式的方法各不相同,不能簡單地從文件讀取字符,而是需要根據(jù)它們特殊的格式來提取其中的內(nèi)容[4]。
因此,我們需要建立相關(guān)的解析器將各種文檔解析成文本內(nèi)容,系統(tǒng)根據(jù)文檔名稱來判斷文檔類型,然后,調(diào)用相應(yīng)的解析器進(jìn)行內(nèi)容解析,以下為 PDF類型的文檔解析代碼:
2.2 中文分詞
在信息檢索時建立索引可以大大提高檢索的速度,而在Lucene中,建立索引的一個關(guān)鍵的步驟就是進(jìn)行分詞,如圖2所示:
圖2 :全文索引結(jié)構(gòu)圖
自動分詞目前主要有3類分詞技術(shù):對字符串進(jìn)行匹配的分詞技術(shù)、基于理解的分詞技術(shù)和基于統(tǒng)計的分詞技術(shù)。運動技戰(zhàn)術(shù)分析知識庫檢索平臺采用了字符串匹配分詞。對字符串進(jìn)行匹配的分詞技術(shù),其原理是根據(jù)一定的搜索策略對將要進(jìn)行分析的漢字串和一個被定義為“足夠大的”存儲在詞庫中的詞條做匹配操作。如果能夠在詞庫中搜索到該字符串則該匹配操作為成功,即識別出了一個詞。常用的幾種字符串匹配的分詞方法主要有:正向匹配、逆向匹配、最大切分、最小切分(使每一句中切出的詞數(shù)最小),還可以多種方法相結(jié)合進(jìn)行匹配如雙向匹配法。根據(jù)搜索方向的不同,串匹配分詞算法又可以有正向、逆向操作的匹配;根據(jù)對各種長度進(jìn)行優(yōu)先匹配的原則,又可以有最小、最大匹配算法;根據(jù)進(jìn)行匹配操作時是否能夠和詞性標(biāo)注的進(jìn)程相結(jié)合,又可以有單純分詞法、標(biāo)注和分詞進(jìn)行結(jié)合的算法[5]。
正向最大匹配算法流程圖如圖3所示:
圖3 最大匹配分詞算法流程圖
算法描述:
(1)初始化兩個字符串S1、S2,其中S1是準(zhǔn)備進(jìn)行切分的字符串,S2是進(jìn)行切分操作后的字符串,對匹配最大長度MaxLen進(jìn)行初始化操作。
(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進(jìn)行輸出操作。
盡管最大匹配算法可以對大部分詞語的詞條進(jìn)行切分,可是在大部分情況下,該切分操作會發(fā)生切分錯誤,因而曲解了原始詞條的語義,也即分詞歧義。依據(jù)分詞時引起歧義的不同方式,可以分為以下3種歧義形式:交集型、組合型和混合型。交集型歧義是指假設(shè)BC和CD都屬于詞典中的詞,那么對于“BCD”就有“BC/D”和“B/CD”這樣兩種切分方法。因此,形成的歧義就稱為交集型歧義,比如“乒乓球桌”,有可能引起交集型歧義“乒乓球/桌”和“乒乓/球桌”。利用向前方向的最大匹配算法可以解決部分交集型歧義。組合型歧義是在以下情況下發(fā)生的:假如BC和B、C都是詞典中的詞,那么對字符串“BC”的進(jìn)行切分可能造成兩種情況:字符串“BC”被切分為“BC/”和“B/C/”。這樣造成的歧義可以被稱之為組合型歧義。例如:字符串“個人”在不同的語言環(huán)境下應(yīng)該進(jìn)行不同的切分,“他/個人”和“5/個/人”。
在運動技戰(zhàn)術(shù)分析信息資料中,存儲了海量的專業(yè)詞條和運動員的姓名等詞條信息,這些詞條信息是要進(jìn)行檢索的重要內(nèi)容,這些專業(yè)詞條在分詞庫中一般都是不存在的,因而,在應(yīng)用這些分詞庫來做語義分析以及詞條的切分操作時就會出現(xiàn)錯誤,或是不準(zhǔn)確的切分操作。要對這些專業(yè)詞條信息和運動員的姓名信息進(jìn)行一一準(zhǔn)確地劃分操作,就需要創(chuàng)建一個針對專業(yè)詞條的詞庫和專門的運動員姓名詞庫,根據(jù)這些詞庫再結(jié)合已有的基本詞庫,來對技戰(zhàn)術(shù)分析知識庫中的信息文檔庫做劃分操作,就可以確保對文檔的劃分更準(zhǔn)確和專業(yè)。
改進(jìn)的對文檔庫的分詞操作步驟如下:
(1)對文檔進(jìn)行預(yù)處理,先把文檔轉(zhuǎn)換成文本文件,然后進(jìn)行刪除操作,把空格進(jìn)行刪除,從而統(tǒng)一詞條的格式,如刪除姓名詞條中的空格等。
(2)對文本文件中內(nèi)容進(jìn)行讀取,將它讀入分配的內(nèi)存單元S1中,對S1進(jìn)行提取操作,從中提取出候選詞W。W的長度要小于等于MaxLen。
(3)查找已有的分詞詞典,假如在分詞詞典中能夠查找到候選詞W,則把候選詞W添加到分詞字符串,與此同時將S1的指針向后移,移動到W后面,轉(zhuǎn)到步驟(2)繼續(xù)操作。假如在分詞詞典中找不到候選詞 W,則繼續(xù)在存儲專業(yè)詞條的詞庫和存儲姓名詞條的詞庫中進(jìn)行查找匹配,假如在存儲專業(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)建索引需要將標(biāo)題和內(nèi)容分別提出作為索引,并且把兩者的數(shù)據(jù)類型與索引匹配,在創(chuàng)建完索引類后,建立Document類型的對象,并為其添加一些屬性Field。我們把Document對象看成是虛擬文件,把來此處獲取信息的.Field則看成是描述此虛擬文件的元數(shù)據(jù),構(gòu)建完 Document并詳細(xì)設(shè)計了 Field,然后將每個Document作為一個條目添加到索引中去實現(xiàn)檢索。
在使用索引進(jìn)行搜索運動技戰(zhàn)術(shù)分析知識庫的操作時,我們將檢索關(guān)鍵詞出現(xiàn)的頻率作為計算該文檔資料的權(quán)重值從而來為我們的決策分析提供一個科學(xué)的計算數(shù)值。對檢索條件的文檔進(jìn)行結(jié)構(gòu)化操作是進(jìn)行檢索的關(guān)鍵步驟,同樣我們可以采用在創(chuàng)建索引時所使用的分詞器來對查詢條件進(jìn)行詞條的切分操作,進(jìn)而將之轉(zhuǎn)換成一組由與或非符號組成的邏輯表達(dá)式,對存儲在知識庫中的文檔的創(chuàng)建不同索引庫,對該索引庫的不同域進(jìn)行檢索從而實現(xiàn)檢索功能。
本文在深入學(xué)習(xí) lucene檢索技術(shù)的基礎(chǔ)上,介紹了Lucene全文搜索引擎的組成結(jié)構(gòu)和系統(tǒng)架構(gòu),以及它的具體應(yīng)用方法,提出了文本解析器的實現(xiàn)方法和建立索引時的關(guān)鍵算法:最大匹配分詞算法,對此算法進(jìn)行了改進(jìn)并將它應(yīng)用到信息文檔庫的分詞操作中。介紹了建立索引和使用索引的方法,論述了Lucene檢索技術(shù)在運動技戰(zhàn)術(shù)分析知識庫系統(tǒng)中的具體應(yīng)用。在將Lucene檢索技術(shù)引入到體育信息技術(shù)領(lǐng)域做了一個有益的嘗試。
[1] 黃華勇.奧運競技體育項目技戰(zhàn)術(shù)分析知識庫的研究與實現(xiàn)[D].南京:南京理工大學(xué),2008.
[2] 李永春,丁華福.Lucene的全文檢索的研究與應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2010,20(2):12-15.
[3] 蘇潭英,郭憲勇,金鑫.一種基于 Lucene的中文全文檢索系統(tǒng)[J].計算機(jī)工程.2007,33(23):94-96.
[4] 楊春龍,顧春華.基于概念語義相似度計算模型的信息檢索研究[J].計算機(jī)應(yīng)用與軟件.2013,30(6):88-92.
[5] 索紅光,孫鑫.針對中文檢索的lucene改進(jìn)策略[J].計算機(jī)應(yīng)用與軟件,2009,26(6):175-177.
G819.19文獻(xiàn)標(biāo)志碼:A
2015.01.20)
1007-757X(2015)08-0026-02
上海市科委重點科技攻關(guān)計劃資助項目(072705128)
劉穎華(1973-),女,江西永豐人,上海體育學(xué)院運動技戰(zhàn)術(shù)診斷與分析重點實驗室,講師,碩士,研究方向:運動項目數(shù)據(jù)庫應(yīng)用,上海,200436許瑞平(1973-),女,河南安陽人,上海體育學(xué)院信息技術(shù)中心,工程師,碩士,研究方向:教育信息化,上海,200433