韋麗紅
(呼倫貝爾學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 海拉爾 021008)
基于本體的軟構(gòu)件聚類算法研究
韋麗紅
(呼倫貝爾學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 海拉爾 021008)
計(jì)算機(jī)之所以能夠在不同的領(lǐng)域中應(yīng)用,就是由于人們根據(jù)實(shí)際應(yīng)用的需要,針對性的開發(fā)了應(yīng)用軟件,因此軟件的開發(fā)情況,能夠直接影響到其應(yīng)用的效果,在這種背景下,如何提高軟件開發(fā)的效率,成為很多專家和學(xué)者研究的問題,論文在本體構(gòu)件聚類概念和特點(diǎn)的基礎(chǔ)上,結(jié)合目前本體構(gòu)建的情況,對基于本體的構(gòu)件聚類算法,進(jìn)行了深入的研究。
本體;構(gòu)件;聚類;算法
隨著計(jì)算機(jī)的普及應(yīng)用,軟件的重要性越來越得到體現(xiàn),人們根據(jù)不同領(lǐng)域的實(shí)際需要,針對性的開發(fā)了相應(yīng)的應(yīng)用軟件,以此來實(shí)現(xiàn)不同的功能,在這種背景下,如何提高軟件的開發(fā)效率,成為很多專家和學(xué)者研究的問題,近些年軟件技術(shù)得到了快速的發(fā)展,出現(xiàn)了軟件復(fù)用等技術(shù),可以在一定程度上提高開發(fā)的效率。在軟件復(fù)用技術(shù)中,構(gòu)件技術(shù)具有非常重要的位置,目前已經(jīng)形成了一個(gè)學(xué)科,很多學(xué)者對構(gòu)件的分類等問題進(jìn)行了研究,從不同的角度出發(fā),構(gòu)件的分類也有一定的差異,現(xiàn)在廣泛使用的構(gòu)件聚類算法中,主要可以分成人工智能、超文本和信息科學(xué),信息科學(xué)是目前使用最多的一種方法。
在計(jì)算機(jī)出現(xiàn)的早期,受到其性能和體積上的限制,軟件的概念還沒有形成,在使用計(jì)算機(jī)的過程中,首先要編寫一個(gè)簡單的程序,由于實(shí)現(xiàn)的功能比較簡單,因此程序的語句比較少,缺少了必要的存儲程序,使得人們每次使用計(jì)算機(jī)時(shí),都要進(jìn)行程序的編寫,隨著存儲設(shè)備的出現(xiàn),人們可以將寫好的程序放到軟盤等設(shè)備中,在需要實(shí)現(xiàn)某個(gè)功能時(shí),只要將軟盤插入到計(jì)算機(jī)中即可。隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,軟件自身變得越來越復(fù)雜,如現(xiàn)在的很多軟件,占用空間都達(dá)到了百兆,如此龐大軟件的編寫,需要一個(gè)編寫團(tuán)隊(duì)共同完成,在這種背景下,逐漸地形成了軟件工程這門學(xué)科,軟件公司為了提高自身產(chǎn)品的競爭力,必須提高軟件的質(zhì)量,同時(shí)縮短相應(yīng)的開發(fā)周期,而要想達(dá)到這個(gè)目的,可以采用軟件復(fù)用技術(shù),通過構(gòu)件的方式,對程序開發(fā)中的一些模塊和語句,進(jìn)行重復(fù)的使用。對于本體的構(gòu)件聚類,首先要進(jìn)行本體的構(gòu)建,在這個(gè)基礎(chǔ)上,利用文本信息等,對構(gòu)件的特征進(jìn)行表示,最后完成構(gòu)件的聚類,無論是本體的構(gòu)件還是其他的構(gòu)件,都要進(jìn)行相應(yīng)的數(shù)據(jù)收集,以此得到一個(gè)構(gòu)件庫,只有足夠數(shù)量的構(gòu)件,才能夠保證聚類的順利進(jìn)行,以及程序編寫效率的提高。
與其他的構(gòu)件聚類相比,本體具有鮮明的特點(diǎn),首先就是在概念模型上,從構(gòu)件聚類的概念可以知道,構(gòu)件聚類的目的,主要就是收集到一定數(shù)量的構(gòu)件,建立一個(gè)構(gòu)件庫,在軟件編寫過程中,可以利用這個(gè)庫中的構(gòu)件,直接形成一些模塊和語句,這樣就可以縮短編寫的周期,同時(shí)提高軟件自身的質(zhì)量,而本體是對模型的一種規(guī)范說明。在計(jì)算機(jī)軟件領(lǐng)域中,本體主要是用來表述通用知識的一種方式,對于構(gòu)件庫中的各種構(gòu)件,能夠用標(biāo)準(zhǔn)化的語言,進(jìn)行規(guī)范性的表示,由此可以看出,在構(gòu)件聚類中,本體的重要性,在提高軟件編寫效率的過程中,主要依靠構(gòu)件的重復(fù)使用,顯然不是所有的構(gòu)件都能夠重復(fù)使用,必須在功能上或者語法上,與要編寫的軟件存在某種共同點(diǎn)。而本體就是表述這種共同點(diǎn)的語言,對于構(gòu)件聚類來說,其最大的特點(diǎn)就是能夠縮短軟件編寫的周期,同時(shí)提高軟件的質(zhì)量,由于重復(fù)使用的構(gòu)件,都是曾經(jīng)應(yīng)用在其他軟件中的語句,因此其準(zhǔn)確性比較高,而且經(jīng)過了長時(shí)間的使用,一般都不會存在問題,尤其是對于軟件編寫來說,隨著程序自身越來越復(fù)雜,容易出現(xiàn)的問題越來越多,如現(xiàn)在的大型軟件,都會定期的發(fā)布一些補(bǔ)丁,修復(fù)軟件中存在的漏洞。
要想使用軟件的構(gòu)件來進(jìn)行程序的編寫,必須按照一定的步驟來執(zhí)行,如先要進(jìn)行構(gòu)件的收集,并用相應(yīng)的文本信息來表示,在收集的過程中,應(yīng)該考慮到程序自身的情況,根據(jù)實(shí)際的需要,如程序模塊和功能上的需求,針對性地進(jìn)行構(gòu)件的收集,隨著軟件技術(shù)的發(fā)展,現(xiàn)在市面上有很多相同功能的軟件,因此存在著很多一樣的構(gòu)件,在收集的過程中,應(yīng)該注意篩選。收集到了一定的構(gòu)件后,就要建立相應(yīng)的模型,目前使用比較多的是VSM模型,通過這個(gè)模型可以進(jìn)行聚類,然后還要對聚類優(yōu)化,這個(gè)優(yōu)化是對構(gòu)件篩選等,通過對要編寫的程序進(jìn)行分析,找到那些有用的構(gòu)件,同時(shí)還要考慮到哪類構(gòu)件對程序的影響最大,找到那些能夠提高程序質(zhì)量的構(gòu)件。在這些工作完成之后,就實(shí)現(xiàn)了構(gòu)件的聚類,但是要想使用這些構(gòu)件,還要進(jìn)行可視化的處理,把構(gòu)件變成人們理解的方式,這樣在需要使用時(shí),可以直接引用這些構(gòu)件,隨著人工智能技術(shù)的發(fā)展,現(xiàn)在構(gòu)件聚類實(shí)現(xiàn)了一定的智能化,在這種背景下,構(gòu)件的收集、分析等,都可以交給軟件來自行完成,甚至在需要哪類功能的構(gòu)件時(shí),智能程序可以直接進(jìn)行引用。
隨著自然科學(xué)的發(fā)展,計(jì)算機(jī)在很多領(lǐng)域得到了應(yīng)用,為了實(shí)現(xiàn)不同的功能,人們根據(jù)實(shí)際應(yīng)用的需要,針對性的開發(fā)了相應(yīng)的應(yīng)用軟件,對于不同的領(lǐng)域來說,都會有一些自身的術(shù)語,在程序編寫時(shí),難免會用到這些術(shù)語,由于每個(gè)領(lǐng)域的術(shù)語無法通用,但是程序中的語言是通用的,因此要想在所有的領(lǐng)域中,共同使用這些構(gòu)件,必須建立一個(gè)轉(zhuǎn)化機(jī)制。本體的概念就是在這種背景下產(chǎn)生的,其是對不同領(lǐng)域術(shù)語概念之間的關(guān)系,現(xiàn)在計(jì)算機(jī)的使用,都涉及到軟件的應(yīng)用,尤其是隨著互聯(lián)網(wǎng)的普及,在很大程度上促進(jìn)了軟件的應(yīng)用,市面上出現(xiàn)了大量相同功能的軟件,軟件公司為了提高產(chǎn)品的市場占有率,都在努力地提高軟件開發(fā)效率,尤其是一些定制軟件,在需求分析階段中,就要體現(xiàn)出公司的實(shí)力,這樣才能夠爭取到生意。本體的構(gòu)建中,構(gòu)件主要可以分成功能和非功能兩種,其中功能類包括了娛樂、商務(wù)、電子等學(xué)科的術(shù)語,而非功能類主要是軟件的運(yùn)行環(huán)境和編寫過程中,此外隨著軟件技術(shù)的發(fā)展,現(xiàn)在的程序編寫中,主要采用高級語言,包括C++、java等,對于同樣的軟件,可以采用不同的語言進(jìn)行編寫,而每種語言都有自身的構(gòu)件,這些構(gòu)件無法通用,如果采用本體來進(jìn)行描述,就可以實(shí)現(xiàn)構(gòu)件的通用,人們將這種關(guān)系成為kind-of。
在本體構(gòu)建完成之后,如何在實(shí)際的程序編寫中,使用這些構(gòu)件,就需要進(jìn)行本體的匹配,在傳統(tǒng)的軟件編寫中,由于沒有構(gòu)件的概念,但是一些經(jīng)驗(yàn)豐富的編寫人員,如果遇到相同功能的模塊,會借鑒以往的一些語句,從某種意義上來說,這是最初的軟件復(fù)用技術(shù),隨著這種方法使用的越來越多,逐漸地形成了現(xiàn)在的構(gòu)件體系。在構(gòu)件的使用過程中,如何判定構(gòu)件與編寫的程序共同點(diǎn),是構(gòu)件使用中的主要問題,而要想實(shí)現(xiàn)這個(gè)目的,主要采用匹配來進(jìn)行,通過C語言等高級語言,可以很簡單地實(shí)現(xiàn)匹配函數(shù),如果加入人工智能模塊,還可以在專家體系的基礎(chǔ)上,實(shí)現(xiàn)構(gòu)件的自行匹配,在需要哪個(gè)功能的語句時(shí),可以直接進(jìn)行采用。對于本體這樣的構(gòu)件,匹配與收集同樣重要,在實(shí)際的軟件編寫中,很多時(shí)候收集工作做地比較好,但是無法匹配到最佳的構(gòu)件,導(dǎo)致程序編寫的效率較低,由此可以看出,本體的匹配對于構(gòu)件應(yīng)用來說,具有非常重要的作用,只有一個(gè)科學(xué)、合理的匹配體系,才能夠保證采用的構(gòu)件最適合程序,從而縮短程序編寫的周期,同時(shí)提高程序的質(zhì)量。
對于本體構(gòu)件聚類的算法,已經(jīng)研究了很長一段時(shí)間,很多學(xué)者對構(gòu)件的收集、分析等進(jìn)行了研究,在這種背景下,出現(xiàn)了很多構(gòu)件聚類的算法,目前使用最多的是 K-Means算法,該算法需要先設(shè)置一個(gè)參數(shù),通常情況,這些參數(shù)會對聚類結(jié)果產(chǎn)生較大的影響,但是通過研究發(fā)現(xiàn),可以采用一些特殊的算法,跳過參數(shù)對結(jié)果的影響,現(xiàn)在有很多種算法,可以達(dá)到這個(gè)目的。無論采用哪種算法來實(shí)現(xiàn)構(gòu)件的聚類,首先都要進(jìn)行初始化,這個(gè)步驟主要是將收集到的構(gòu)件放到相應(yīng)的組中,然后通過相應(yīng)的規(guī)則,對構(gòu)件進(jìn)行篩選,同時(shí)把不同的構(gòu)件分類,在這個(gè)工作完成后,還需要進(jìn)一步的進(jìn)行處理,利用本體語義擴(kuò)展,把所有的術(shù)語進(jìn)行分類,然后就要進(jìn)行聚類的工作,通過某種相似度規(guī)則,將具有同樣性質(zhì)的構(gòu)件分成相應(yīng)的類別,通常情況,如果一個(gè)聚類中的構(gòu)件數(shù)量小于 10,還需要進(jìn)行單獨(dú)的處理。對于這種算法,其優(yōu)勢就是很好的躲過了參數(shù)的影響,但是在聚類完成之后,會產(chǎn)生一些小型的構(gòu)建組,甚至一個(gè)構(gòu)件是單獨(dú)的類別,因此在所有的工作完成之后,需要對這些小的組別進(jìn)行優(yōu)化,將他們合并到一些大型的組別中,這樣才能夠得到一個(gè)最佳的聚類結(jié)果。
在實(shí)際的構(gòu)件聚類算法選擇時(shí),由于每個(gè)程序都具有一定的特殊性,需要使用的構(gòu)件等,都會有一定的差異,在這種背景下,要想選擇到最佳的構(gòu)件,必須保證聚類算法的合理性,目前市面上有很多算法可以選擇,雖然通過這些算法都能夠進(jìn)行構(gòu)件的篩選等,但是不同算法的效率存在一定的差異。因此在選擇了一個(gè)算法后,需要進(jìn)行簡單的實(shí)驗(yàn),以此來保證算法的科學(xué)、合理,在具體的實(shí)驗(yàn)時(shí),通常會對幾種算法同時(shí)進(jìn)行分析,從而找到一個(gè)最佳的算法,進(jìn)過這樣的對比分析后,可以明確地了解到每種算法的特點(diǎn),如哪種算法的過程比較簡單,哪種算法的結(jié)果比較準(zhǔn)確等,在這個(gè)基礎(chǔ)上,可以很容易地找到一個(gè)最佳的算法,如常用的K-Means算法,通過實(shí)驗(yàn),可以明顯地看到其聚類效率很高。隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,現(xiàn)在的軟件自身越來越復(fù)雜,尤其是 C語言等高級語言出現(xiàn)后,程序的編寫都開始變得模塊化,每個(gè)模塊實(shí)現(xiàn)不同的功能,這種就可以組成一個(gè)完整的程序,可以很好的滿足實(shí)際的需要,現(xiàn)在構(gòu)件聚類算法的實(shí)驗(yàn),可以通過相應(yīng)的測試軟件來進(jìn)行。
經(jīng)過了多年的發(fā)展,計(jì)算機(jī)軟件技術(shù)得到了快速的發(fā)展,為了提高軟件編寫的效率,人們開發(fā)了軟件復(fù)用技術(shù),通過重復(fù)使用一些語句,來縮短軟件開發(fā)的周期,因此基于本體的構(gòu)件聚類等復(fù)用技術(shù),對于軟件工程來說,具有非常重要的意義,很多專家和學(xué)者對構(gòu)件聚類的算法等,進(jìn)行了深入的研究。通過全文的分析可以知道,近些年隨著軟件的發(fā)展,其自身變得越來越復(fù)雜,程序的編寫通常需要一個(gè)團(tuán)隊(duì)來配合完成,軟件公司為了提高產(chǎn)品的市場占有率,必須提高軟件開發(fā)的效率,而構(gòu)件的使用,剛好能夠滿足這種需要,通過構(gòu)件的收集、分析、聚類等處理,能夠最大程度上提高程序編寫的效率。
[1]謝紅薇,顏小林,余雪麗.基于本體的Web頁面聚類研究[J].計(jì)算機(jī)科學(xué),20,8(9):153-155.
[2]尉建興,崔冬華,寧曉青.蛙跳算法在 Web文本聚類技術(shù)中的應(yīng)用[J].電腦開發(fā)與應(yīng)用,2011,(5):35-37.
[3]胡良明.改進(jìn)最近鄰法在基于 CBR的自動武器設(shè)計(jì)系統(tǒng)中的應(yīng)用[J].制造業(yè)自動化,2008,(11):93-95.
[4]李桂華.基于 Jena的語義信息檢索應(yīng)用研究[J].計(jì)算機(jī)與信息技術(shù),2010,(Z1):8-10,13.
[5]陳義如,孫廣中,許胤龍.基于網(wǎng)格和最近鄰居的聚類算法[J].計(jì)算機(jī)輔助工程,2008,(1):81-86.
O242
A
1673-2219(2014)05-0137-03
2014-03-07
韋麗紅(1982-),女,黑龍江克山人,碩士,呼倫貝爾學(xué)院講師,研究方向?yàn)檎Z義Web、文本挖掘、信息處理。
(責(zé)任編校:京華;俊華)
湖南科技學(xué)院學(xué)報(bào)2014年5期