韓忠愿,謝 丹
(南京財(cái)經(jīng)大學(xué) 信息工程學(xué)院,江蘇 南京210046)
隨著軟件開發(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)確地理解用戶的查詢請求是構(gòu)件檢索的一個(gè)重要問題,本文針對(duì)與軟構(gòu)件如影隨形的自然語言描述,提出一種基于軟構(gòu)件描述文本信息抽取的檢索方法。該方法采用自然語言描述軟構(gòu)件的實(shí)現(xiàn),并由系統(tǒng)利用自然語言處理技術(shù)抽取軟構(gòu)件特征信息和需求的特征信息,然后利用特征匹配和《知網(wǎng)》詞匯語義相似度計(jì)算獲得候選的結(jié)果。
有效的構(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ù)性。
檢索實(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)過程。
分詞系統(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)測中獲得了第一名。
向量空間模型 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ù)全集中頻度很低的詞是更加重要的詞。
砂堤堆好后,在秋冬季節(jié),選擇抗旱、耐瘠薄、根系發(fā)達(dá)的鄉(xiāng)土樹種刺槐、柳樁進(jìn)行栽植,栽植密度0.5m×0.5m,定植后要及時(shí)灌水,確保成活。次年開春,即使上部干枯,下部仍能發(fā)芽抽梢。
本文在自然語言處理過程中對(duì)文本關(guān)鍵詞的抽取正是提取VSM中TFIDF值較高的特征項(xiàng),將通過此方法獲得的所有特征項(xiàng)按權(quán)值大小排序,提取滿足閾值或一定數(shù)目的最優(yōu)特征作為最終表達(dá)該文本特征的特征項(xiàng)集。
《知網(wǎng)》(HowNet)[9]是一部比較詳盡的語義知識(shí)詞典,是一個(gè)以漢語和英語詞義所代表的概念為描述對(duì)象,以揭示概念間及概念所具有的屬性間關(guān)系為基本內(nèi)容的常識(shí)知識(shí)庫。概念與義原是《知網(wǎng)》中的兩個(gè)主要概念。每一個(gè)詞可以表達(dá)為幾個(gè)概念,每個(gè)概念又可由若干個(gè)義原來描述。
對(duì)于兩個(gè)漢語詞語W1和W2,如果W1有n個(gè)概念,S11,S12,…,S1n;W2有 m 個(gè)概念,S21,S22,…,S2m,則《知網(wǎng)》規(guī)定,W1和W2的相似度是各個(gè)概念的相似度之最大值,即:
如此,就將兩個(gè)詞語之間的相似度問題歸結(jié)到了兩個(gè)概念之間的相似度問題。由于義原是描述一個(gè)概念的最小意義單位,所以義原的相似度計(jì)算是概念相似度計(jì)算的基礎(chǔ),概念相似度是由提取到的義原的相似度加權(quán)平均得到的。
假設(shè)兩個(gè)義原在同一個(gè)層次體系中的路徑距離為d,可以得到這兩個(gè)義原之間的語義距離:
其中,p1和 p2表示兩個(gè)義原;d是 p1和 p2在義原層次體系中的路徑長度,是一個(gè)正整數(shù);α是一個(gè)可調(diào)節(jié)參數(shù),一般取值1.6。
以上是《知網(wǎng)》詞匯語義相似度的計(jì)算方法,是本文的一個(gè)重要部分,精確的詞匯匹配度是下一步檢索的基礎(chǔ)工作。
通過抽取軟構(gòu)件文本描述特征項(xiàng)來實(shí)現(xiàn)基于語義的檢索是本文研究的重點(diǎn)。通過對(duì)相似度計(jì)算模塊得到的數(shù)據(jù)進(jìn)行處理分析,是實(shí)現(xiàn)檢索的關(guān)鍵步驟,其主要處理流程如圖2所示。
一般將兩個(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ù)。
圖3 詞匯相似度對(duì)比
(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)件信息按照相似度值的遞減順序輸出。
根據(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)。
[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.