摘 要: 通過對(duì)目前應(yīng)用廣泛的軟構(gòu)件檢索技術(shù)的研究,提出了一種基于軟構(gòu)件描述文本信息抽取的檢索方法。該方法利用中文分詞技術(shù)和向量空間模型中“詞頻與倒文檔頻度”算法抽取關(guān)鍵詞,通過《知網(wǎng)》語義相似度,計(jì)算用戶需求與可重用軟構(gòu)件的匹配度,實(shí)現(xiàn)了對(duì)軟構(gòu)件的語義檢索,能實(shí)現(xiàn)模糊查詢,具有一定的張弛能力。
關(guān)鍵詞: 構(gòu)件檢索;向量空間模型;知網(wǎng);語義相似度;信息抽取
隨著軟件開發(fā)規(guī)模的增大,軟件構(gòu)件技術(shù)被認(rèn)為是解決軟件危機(jī)的有效途徑,基于構(gòu)件的軟件開發(fā)CBSD(Component Based Software Development)[1]成為有效提高軟件生產(chǎn)率、縮短軟件產(chǎn)品交付時(shí)間和提高軟件質(zhì)量的新方法。
傳統(tǒng)的軟構(gòu)件的檢索方法[2]主要有三種:基于外部索引的檢索、基于內(nèi)部靜態(tài)索引的檢索和基于內(nèi)部動(dòng)態(tài)索引的檢索。其中以構(gòu)件的刻面表示以及在此基礎(chǔ)上的構(gòu)件檢索技術(shù)已得到軟件復(fù)用界的重視和應(yīng)用[3]。著名的REBOOT構(gòu)件庫[4]提出了可重用軟件構(gòu)件基于刻面的分類檢索方案。國內(nèi)的青鳥構(gòu)件庫[5]采用以刻面分類為主、多種分類模式相結(jié)合的方法對(duì)構(gòu)件進(jìn)行分類描述。
傳統(tǒng)的基于關(guān)鍵字或刻面描述的軟件構(gòu)件的檢索由于缺少特定領(lǐng)域語義信息,使得用戶在查詢所需要的構(gòu)件時(shí),有時(shí)很難對(duì)構(gòu)件的各個(gè)刻面作出準(zhǔn)確的描述,因此在查準(zhǔn)率和查全率上存在不足。準(zhǔn)確地理解用戶的查詢請(qǐng)求是構(gòu)件檢索的一個(gè)重要問題,本文針對(duì)與軟構(gòu)件如影隨形的自然語言描述,提出一種基于軟構(gòu)件描述文本信息抽取的檢索方法。該方法采用自然語言描述軟構(gòu)件的實(shí)現(xiàn),并由系統(tǒng)利用自然語言處理技術(shù)抽取軟構(gòu)件特征信息和需求的特征信息,然后利用特征匹配和《知網(wǎng)》詞匯語義相似度計(jì)算獲得候選的結(jié)果。
1 軟構(gòu)件檢索系統(tǒng)體系結(jié)構(gòu)
有效的構(gòu)件檢索機(jī)制能夠降低構(gòu)件查找和理解的成本,檢索方式對(duì)構(gòu)件描述和用戶查詢的依賴是本文研究的主體部分。本文設(shè)計(jì)了基于文本描述的軟構(gòu)件檢索系統(tǒng)體系結(jié)構(gòu),如圖1所示。其各部分功能如下:
(1)軟構(gòu)件文本描述主要是將系統(tǒng)數(shù)據(jù)庫中有關(guān)軟構(gòu)件的文本描述信息提取出來進(jìn)行自然語言處理,并將處理返回的結(jié)果存儲(chǔ)起來;主要負(fù)責(zé)與用戶交互,為用戶提供查詢接口,通過用戶輸入生成查詢條件,并將滿足條件的軟構(gòu)件信息返回給用戶。
(2)自然語言處理模塊主要是將數(shù)據(jù)庫的軟構(gòu)件文本描述信息集合在一起,通過ICTCLAS分詞技術(shù)獲得帶標(biāo)注的分詞結(jié)果,并根據(jù)VSM中TFIDF的計(jì)算方法為每個(gè)軟構(gòu)件描述文本提取特征項(xiàng)并存儲(chǔ);
(3)檢索模塊分為兩種方式:一種是將用戶查詢的特征與抽取出的軟構(gòu)件特征項(xiàng)通過《知網(wǎng)》詞匯語義相似度計(jì)算來獲取查詢結(jié)果,此種方法主要實(shí)現(xiàn)了軟構(gòu)件的語義檢索,是本文研究的重點(diǎn);另一種是用戶查詢的特征與軟構(gòu)件特征項(xiàng)之間的匹配檢索。
這種層次結(jié)構(gòu)的體系模式將各模塊的功能相互獨(dú)立,有利于系統(tǒng)的維護(hù)與擴(kuò)展,確保了系統(tǒng)的穩(wěn)定性和可維護(hù)性。
2 軟構(gòu)件檢索實(shí)現(xiàn)分析
檢索實(shí)現(xiàn)是本文研究的重點(diǎn),尤其是實(shí)現(xiàn)軟構(gòu)件的語義檢索。通過上面軟構(gòu)件檢索系統(tǒng)的體系結(jié)構(gòu)圖可以看出,自然語言處理部分是實(shí)現(xiàn)語義檢索的基礎(chǔ),自然語言處理的準(zhǔn)確度直接影響到檢索結(jié)果的查全率和查準(zhǔn)率。
下面簡單介紹ICTCLAS漢語分詞系統(tǒng)和VSM的研究現(xiàn)狀,并詳細(xì)介紹語義檢索的實(shí)現(xiàn)過程。
2.1 ICTCLAS漢語分詞簡介
分詞系統(tǒng)[6]ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)是由中科院計(jì)算所的張華平、劉群所開發(fā)的一套獲得廣泛好評(píng)的分詞系統(tǒng)。它先通過層疊形馬爾可夫模型CHMM(Hierarchical Hidden Markov Model)進(jìn)行分詞,通過分層,既增加了分詞的準(zhǔn)確性,又保證了分詞的效率。ICTCLAS分詞速度單機(jī)500 KB/s,分詞精度98.45%,是世界上最好的漢語詞法分析器,并且在國內(nèi)973專家組組織的評(píng)測中獲得了第一名。
2.2 向量空間模型
向量空間模型VSM(Vector Space Model)由Salton等人于上世紀(jì)60年代末提出,并成功應(yīng)用于著名的SMART系統(tǒng),是目前最為成熟且應(yīng)用最為廣泛的文本表示模型之一[7]。它把對(duì)文本內(nèi)容的處理簡化為向量空間中的向量,用“詞頻與倒文檔頻度”TFIDF(Term-Frequency Inverse-Document-Frequency)[8]進(jìn)行特征項(xiàng)賦權(quán)值,來表征某個(gè)特征項(xiàng)對(duì)該文本內(nèi)容的重要程度。其中TFIDF將一個(gè)特征項(xiàng)在某個(gè)文檔中的重要性和在整個(gè)文檔數(shù)據(jù)全集中的重要性結(jié)合起來,成為一個(gè)統(tǒng)一的度量值。它說明一個(gè)在單個(gè)文檔中頻度很高,而在整個(gè)數(shù)據(jù)全集中頻度很低的詞是更加重要的詞。
本文在自然語言處理過程中對(duì)文本關(guān)鍵詞的抽取正是提取VSM中TFIDF值較高的特征項(xiàng),將通過此方法獲得的所有特征項(xiàng)按權(quán)值大小排序,提取滿足閾值或一定數(shù)目的最優(yōu)特征作為最終表達(dá)該文本特征的特征項(xiàng)集。
2.3 《知網(wǎng)》詞匯語義相似度計(jì)算
《知網(wǎng)》(HowNet)[9]是一部比較詳盡的語義知識(shí)詞典,是一個(gè)以漢語和英語詞義所代表的概念為描述對(duì)象,以揭示概念間及概念所具有的屬性間關(guān)系為基本內(nèi)容的常識(shí)知識(shí)庫。概念與義原是《知網(wǎng)》中的兩個(gè)主要概念。每一個(gè)詞可以表達(dá)為幾個(gè)概念,每個(gè)概念又可由若干個(gè)義原來描述。
以上是《知網(wǎng)》詞匯語義相似度的計(jì)算方法,是本文的一個(gè)重要部分,精確的詞匯匹配度是下一步檢索的基礎(chǔ)工作。
2.4 檢索模塊
通過抽取軟構(gòu)件文本描述特征項(xiàng)來實(shí)現(xiàn)基于語義的檢索是本文研究的重點(diǎn)。通過對(duì)相似度計(jì)算模塊得到的數(shù)據(jù)進(jìn)行處理分析,是實(shí)現(xiàn)檢索的關(guān)鍵步驟,其主要處理流程如圖2所示。
假設(shè)用戶查詢關(guān)鍵詞集合為Q{K1,K2,…,Km},某一軟構(gòu)件的文本描述向量空間模型的特征項(xiàng)表示為集合Di{T1,T2,…,Tn},其中Tj{j=1,2,…,n)為經(jīng)過自然語言處理的描述該構(gòu)件的特征項(xiàng)。
一般將兩個(gè)集合中的特征項(xiàng)兩兩比較得到的相似度的平均值作為它們的相似度,如此一個(gè)集合任意兩個(gè)特征項(xiàng)之間的相似度都為1,集合才能與它本身100%相似。本文采用以下算法為這兩個(gè)集合進(jìn)行相似度計(jì)算:
(1)利用《知網(wǎng)》詞匯語義相似度,將Q中每個(gè)關(guān)鍵字與Di中每個(gè)特征項(xiàng)進(jìn)行相似度計(jì)算,如圖3所示。得到Term_Sim{Sim(K1,T1),Sim(K1,T2),…,Sim(Ki,Tj),…,Sim(Km,Tn)}為相似度值集合,共m×n個(gè)數(shù)據(jù)。
(2)將相似度值中最大的值所對(duì)應(yīng)的Ki和Tj建立對(duì)應(yīng)關(guān)系。
(3)將包含Ki和Tj的相似度值從Term_Sim中刪除。
(4)重復(fù)(2)和(3),直到所有的相似度值都被刪除。
(5)沒有建立起對(duì)應(yīng)關(guān)系的關(guān)鍵字或特征項(xiàng)與空對(duì)應(yīng)。
(6)將包含Ki的相似度值取算術(shù)平均值。
把上面得到的平均值作為用戶查詢與軟構(gòu)件之間的相似度度量值,將滿足閾值的軟構(gòu)件信息按照相似度值的遞減順序輸出。
3 實(shí)驗(yàn)結(jié)果
根據(jù)以上描述,實(shí)現(xiàn)了在ERP領(lǐng)域軟構(gòu)件的檢索,檢索結(jié)果如圖4所示。
實(shí)驗(yàn)從ERP軟構(gòu)件描述數(shù)據(jù)庫中抽取出相似度較高的軟構(gòu)件作為候選結(jié)果輸出。其中,“成本管理”經(jīng)過ICTCLAS分詞、VSM處理得到的關(guān)鍵詞是:“成本”、“產(chǎn)品”、“計(jì)算”等,與用戶檢索關(guān)鍵詞“成本”、“分析”比較,相似度值是72.22%。在查詢結(jié)果中點(diǎn)擊相應(yīng)的項(xiàng)目,會(huì)詳細(xì)顯示對(duì)構(gòu)件的描述,可以幫助用戶更清晰地了解該構(gòu)件的信息,從而從候選結(jié)果中選擇符合要求的軟構(gòu)件。
本文提出了一種基于文本信息抽取的軟構(gòu)件檢索方法,并對(duì)軟構(gòu)件檢索系統(tǒng)的體系結(jié)構(gòu)、功能模塊進(jìn)行了詳細(xì)介紹,優(yōu)化了關(guān)鍵字集合相似度計(jì)算;并且針對(duì)傳統(tǒng)軟構(gòu)件檢索中語義缺失的缺點(diǎn),實(shí)現(xiàn)了對(duì)軟構(gòu)件的語義檢索的目的,有利于進(jìn)行基于軟構(gòu)件的軟件開發(fā)。另外,本系統(tǒng)還有尚待改進(jìn)的地方,例如:擴(kuò)充分詞詞典,保證領(lǐng)域術(shù)語的完整性;增加軟構(gòu)件的圖形描述,實(shí)現(xiàn)多功能檢索等,這些問題也是下一步研究工作的重點(diǎn)。
參考文獻(xiàn)
[1] BROWN A W, WALLNAU K C. The current state of CBSE[J]. IEEE Software,1998,15(5):37-46.
[2] 劉韜,范菁,熊麗榮.構(gòu)件的檢索技術(shù)研究及其在信用領(lǐng)域構(gòu)件庫中的應(yīng)用[D].杭州:浙江工業(yè)大學(xué),2008.
[3] 舒遠(yuǎn)仲,陳志勇,彭曉紅,等.基于刻面分類描述的構(gòu)件檢索方法研究[J]. 計(jì)算機(jī)工程與科學(xué), 2010,32(11):156-160.
[4] MOREL J M, FAGET J. The REBOOT environment[C].In: Prieto-Diaz R,Frakes WB eds.Processdings of the 2nd International Workshop on Software Reusability Advances in Software,Lucca:IEEE Computer Society Press,1993:80-88.
[5] CHANG J C, LI K Q,GUO L F,et al. Representing and retrieving reusable software components in JB(Jadebird)System[J]. Electronica Journal,2000,28(8):20-24.
[6] ICTCLAS分詞系統(tǒng)研究[EB/OL].(2010-08-24).http://wenku.baidu.com/view/2eeb4afff705cc175527093f.html.
[7] 楊小平,丁浩,黃都培.基于向量空間模型的中文信息檢索技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2003(15):109-111.
[8] 王曉龍,關(guān)毅.計(jì)算機(jī)自然語言處理[M].北京:清華大學(xué)出版社,2005.
[9] 劉群,李素建.基于《知網(wǎng)》的詞匯語義相似度計(jì)算[C].臺(tái)北:第三屆漢語詞匯語義學(xué)研討會(huì)論文集,2002:59-76.