韦丽红
(呼伦贝尔学院 计算机科学与技术学院,内蒙古 海拉尔 021008)
基于本体的软构件聚类算法研究
韦丽红
(呼伦贝尔学院 计算机科学与技术学院,内蒙古 海拉尔 021008)
计算机之所以能够在不同的领域中应用,就是由于人们根据实际应用的需要,针对性的开发了应用软件,因此软件的开发情况,能够直接影响到其应用的效果,在这种背景下,如何提高软件开发的效率,成为很多专家和学者研究的问题,论文在本体构件聚类概念和特点的基础上,结合目前本体构建的情况,对基于本体的构件聚类算法,进行了深入的研究。
本体;构件;聚类;算法
随着计算机的普及应用,软件的重要性越来越得到体现,人们根据不同领域的实际需要,针对性的开发了相应的应用软件,以此来实现不同的功能,在这种背景下,如何提高软件的开发效率,成为很多专家和学者研究的问题,近些年软件技术得到了快速的发展,出现了软件复用等技术,可以在一定程度上提高开发的效率。在软件复用技术中,构件技术具有非常重要的位置,目前已经形成了一个学科,很多学者对构件的分类等问题进行了研究,从不同的角度出发,构件的分类也有一定的差异,现在广泛使用的构件聚类算法中,主要可以分成人工智能、超文本和信息科学,信息科学是目前使用最多的一种方法。
在计算机出现的早期,受到其性能和体积上的限制,软件的概念还没有形成,在使用计算机的过程中,首先要编写一个简单的程序,由于实现的功能比较简单,因此程序的语句比较少,缺少了必要的存储程序,使得人们每次使用计算机时,都要进行程序的编写,随着存储设备的出现,人们可以将写好的程序放到软盘等设备中,在需要实现某个功能时,只要将软盘插入到计算机中即可。随着计算机软件技术的发展,软件自身变得越来越复杂,如现在的很多软件,占用空间都达到了百兆,如此庞大软件的编写,需要一个编写团队共同完成,在这种背景下,逐渐地形成了软件工程这门学科,软件公司为了提高自身产品的竞争力,必须提高软件的质量,同时缩短相应的开发周期,而要想达到这个目的,可以采用软件复用技术,通过构件的方式,对程序开发中的一些模块和语句,进行重复的使用。对于本体的构件聚类,首先要进行本体的构建,在这个基础上,利用文本信息等,对构件的特征进行表示,最后完成构件的聚类,无论是本体的构件还是其他的构件,都要进行相应的数据收集,以此得到一个构件库,只有足够数量的构件,才能够保证聚类的顺利进行,以及程序编写效率的提高。
与其他的构件聚类相比,本体具有鲜明的特点,首先就是在概念模型上,从构件聚类的概念可以知道,构件聚类的目的,主要就是收集到一定数量的构件,建立一个构件库,在软件编写过程中,可以利用这个库中的构件,直接形成一些模块和语句,这样就可以缩短编写的周期,同时提高软件自身的质量,而本体是对模型的一种规范说明。在计算机软件领域中,本体主要是用来表述通用知识的一种方式,对于构件库中的各种构件,能够用标准化的语言,进行规范性的表示,由此可以看出,在构件聚类中,本体的重要性,在提高软件编写效率的过程中,主要依靠构件的重复使用,显然不是所有的构件都能够重复使用,必须在功能上或者语法上,与要编写的软件存在某种共同点。而本体就是表述这种共同点的语言,对于构件聚类来说,其最大的特点就是能够缩短软件编写的周期,同时提高软件的质量,由于重复使用的构件,都是曾经应用在其他软件中的语句,因此其准确性比较高,而且经过了长时间的使用,一般都不会存在问题,尤其是对于软件编写来说,随着程序自身越来越复杂,容易出现的问题越来越多,如现在的大型软件,都会定期的发布一些补丁,修复软件中存在的漏洞。
要想使用软件的构件来进行程序的编写,必须按照一定的步骤来执行,如先要进行构件的收集,并用相应的文本信息来表示,在收集的过程中,应该考虑到程序自身的情况,根据实际的需要,如程序模块和功能上的需求,针对性地进行构件的收集,随着软件技术的发展,现在市面上有很多相同功能的软件,因此存在着很多一样的构件,在收集的过程中,应该注意筛选。收集到了一定的构件后,就要建立相应的模型,目前使用比较多的是VSM模型,通过这个模型可以进行聚类,然后还要对聚类优化,这个优化是对构件筛选等,通过对要编写的程序进行分析,找到那些有用的构件,同时还要考虑到哪类构件对程序的影响最大,找到那些能够提高程序质量的构件。在这些工作完成之后,就实现了构件的聚类,但是要想使用这些构件,还要进行可视化的处理,把构件变成人们理解的方式,这样在需要使用时,可以直接引用这些构件,随着人工智能技术的发展,现在构件聚类实现了一定的智能化,在这种背景下,构件的收集、分析等,都可以交给软件来自行完成,甚至在需要哪类功能的构件时,智能程序可以直接进行引用。
随着自然科学的发展,计算机在很多领域得到了应用,为了实现不同的功能,人们根据实际应用的需要,针对性的开发了相应的应用软件,对于不同的领域来说,都会有一些自身的术语,在程序编写时,难免会用到这些术语,由于每个领域的术语无法通用,但是程序中的语言是通用的,因此要想在所有的领域中,共同使用这些构件,必须建立一个转化机制。本体的概念就是在这种背景下产生的,其是对不同领域术语概念之间的关系,现在计算机的使用,都涉及到软件的应用,尤其是随着互联网的普及,在很大程度上促进了软件的应用,市面上出现了大量相同功能的软件,软件公司为了提高产品的市场占有率,都在努力地提高软件开发效率,尤其是一些定制软件,在需求分析阶段中,就要体现出公司的实力,这样才能够争取到生意。本体的构建中,构件主要可以分成功能和非功能两种,其中功能类包括了娱乐、商务、电子等学科的术语,而非功能类主要是软件的运行环境和编写过程中,此外随着软件技术的发展,现在的程序编写中,主要采用高级语言,包括C++、java等,对于同样的软件,可以采用不同的语言进行编写,而每种语言都有自身的构件,这些构件无法通用,如果采用本体来进行描述,就可以实现构件的通用,人们将这种关系成为kind-of。
在本体构建完成之后,如何在实际的程序编写中,使用这些构件,就需要进行本体的匹配,在传统的软件编写中,由于没有构件的概念,但是一些经验丰富的编写人员,如果遇到相同功能的模块,会借鉴以往的一些语句,从某种意义上来说,这是最初的软件复用技术,随着这种方法使用的越来越多,逐渐地形成了现在的构件体系。在构件的使用过程中,如何判定构件与编写的程序共同点,是构件使用中的主要问题,而要想实现这个目的,主要采用匹配来进行,通过C语言等高级语言,可以很简单地实现匹配函数,如果加入人工智能模块,还可以在专家体系的基础上,实现构件的自行匹配,在需要哪个功能的语句时,可以直接进行采用。对于本体这样的构件,匹配与收集同样重要,在实际的软件编写中,很多时候收集工作做地比较好,但是无法匹配到最佳的构件,导致程序编写的效率较低,由此可以看出,本体的匹配对于构件应用来说,具有非常重要的作用,只有一个科学、合理的匹配体系,才能够保证采用的构件最适合程序,从而缩短程序编写的周期,同时提高程序的质量。
对于本体构件聚类的算法,已经研究了很长一段时间,很多学者对构件的收集、分析等进行了研究,在这种背景下,出现了很多构件聚类的算法,目前使用最多的是 K-Means算法,该算法需要先设置一个参数,通常情况,这些参数会对聚类结果产生较大的影响,但是通过研究发现,可以采用一些特殊的算法,跳过参数对结果的影响,现在有很多种算法,可以达到这个目的。无论采用哪种算法来实现构件的聚类,首先都要进行初始化,这个步骤主要是将收集到的构件放到相应的组中,然后通过相应的规则,对构件进行筛选,同时把不同的构件分类,在这个工作完成后,还需要进一步的进行处理,利用本体语义扩展,把所有的术语进行分类,然后就要进行聚类的工作,通过某种相似度规则,将具有同样性质的构件分成相应的类别,通常情况,如果一个聚类中的构件数量小于 10,还需要进行单独的处理。对于这种算法,其优势就是很好的躲过了参数的影响,但是在聚类完成之后,会产生一些小型的构建组,甚至一个构件是单独的类别,因此在所有的工作完成之后,需要对这些小的组别进行优化,将他们合并到一些大型的组别中,这样才能够得到一个最佳的聚类结果。
在实际的构件聚类算法选择时,由于每个程序都具有一定的特殊性,需要使用的构件等,都会有一定的差异,在这种背景下,要想选择到最佳的构件,必须保证聚类算法的合理性,目前市面上有很多算法可以选择,虽然通过这些算法都能够进行构件的筛选等,但是不同算法的效率存在一定的差异。因此在选择了一个算法后,需要进行简单的实验,以此来保证算法的科学、合理,在具体的实验时,通常会对几种算法同时进行分析,从而找到一个最佳的算法,进过这样的对比分析后,可以明确地了解到每种算法的特点,如哪种算法的过程比较简单,哪种算法的结果比较准确等,在这个基础上,可以很容易地找到一个最佳的算法,如常用的K-Means算法,通过实验,可以明显地看到其聚类效率很高。随着计算机软件技术的发展,现在的软件自身越来越复杂,尤其是 C语言等高级语言出现后,程序的编写都开始变得模块化,每个模块实现不同的功能,这种就可以组成一个完整的程序,可以很好的满足实际的需要,现在构件聚类算法的实验,可以通过相应的测试软件来进行。
经过了多年的发展,计算机软件技术得到了快速的发展,为了提高软件编写的效率,人们开发了软件复用技术,通过重复使用一些语句,来缩短软件开发的周期,因此基于本体的构件聚类等复用技术,对于软件工程来说,具有非常重要的意义,很多专家和学者对构件聚类的算法等,进行了深入的研究。通过全文的分析可以知道,近些年随着软件的发展,其自身变得越来越复杂,程序的编写通常需要一个团队来配合完成,软件公司为了提高产品的市场占有率,必须提高软件开发的效率,而构件的使用,刚好能够满足这种需要,通过构件的收集、分析、聚类等处理,能够最大程度上提高程序编写的效率。
[1]谢红薇,颜小林,余雪丽.基于本体的Web页面聚类研究[J].计算机科学,20,8(9):153-155.
[2]尉建兴,崔冬华,宁晓青.蛙跳算法在 Web文本聚类技术中的应用[J].电脑开发与应用,2011,(5):35-37.
[3]胡良明.改进最近邻法在基于 CBR的自动武器设计系统中的应用[J].制造业自动化,2008,(11):93-95.
[4]李桂华.基于 Jena的语义信息检索应用研究[J].计算机与信息技术,2010,(Z1):8-10,13.
[5]陈义如,孙广中,许胤龙.基于网格和最近邻居的聚类算法[J].计算机辅助工程,2008,(1):81-86.
O242
A
1673-2219(2014)05-0137-03
2014-03-07
韦丽红(1982-),女,黑龙江克山人,硕士,呼伦贝尔学院讲师,研究方向为语义Web、文本挖掘、信息处理。
(责任编校:京华;俊华)