软件构件集合描述词自动提取方法

文档序号:6471872阅读:211来源:国知局
专利名称:软件构件集合描述词自动提取方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件构件集合描述词自动提 取方法。
背景技术
软件构件(soft component)是指在软件应用系统中可以明确辨别的构 成部分,可复用软件构件是指具有相对独立的功能和可复用价值的软件构件。 软件构件由概念信息和实体信息组成。软件构件集合描述词是指描述一个软 件构件集合中所有软件构件所共有的特征或该集合中的软件构件区別于其他 软件构件集合中软件构件的描述词。软件构件集合描述词是用户在大量软件 构件中寻找目标软件构件时必须的依据,如果一个软件构件集合没有描述词, 用户对于该软件构件集合中的具体内容则无法有个大致的了解,从而为寻找 目标软件构件带来不^^。
在现有技术中,通常会通过人工的方式从不同的角度寻找将多个软件构 件分为多个软件构件集合,然后确定一个关键词作为一个软件构件集合的名 称,软件构件集合的名称可以看作一种软件构件集合描述词。这种确定软件 构件集合描述词的方法存在如下的问题
软件构件软件构件软件构件对于一个软件构件集合,有多个关键词可以 作为该软件构件集合的名称,通过人工方式从为数众多的关键词中选定一个 作为软件构件集合的名称,需要耗费很多人力,效率不高。

发明内容
本发明的目的在于针对现有技术存在的问题,提供一种软件构件集合描 述词自动提取方法,能够自动将软件构件分到不同的软件构件集合中,并能自动提取出 一组能够描述该软件构件集合的描述词,克服人工确定软件构件 集合描述词效率不高的缺陷。
为了实现上述目的,本发明提供了一种软件构件集合描述词自动提取方 法,包括
步骤1、将输入的至少一个软件构件转换成用向量形式表示的向量软
件构件;
步骤2、将至少一个所述向量软件构件分成K个软件构件集合;
步骤3、对于第i个软件构件集合,计算每个向量软件构件的软件构 件描述词与所述第i个软件构件集合的中心的距离,选取与所述第i个软 件构件集合的中心的距离最近的至少五个软件构件描述词作为所述第i个 软件构件集合的软件构件集合描述词;1《i《K。
本发明提供的软件构件集合描述词自动提取方法,数据处理装置对于输 入的多个软件构件,先将各软件构件转换成用向量形式表示的向量软件构件, 然后将各向量软件构件分成多个软件构件集合,对于每个软件构件集合,计 算集合中每个向量软件构件的软件构件描述词与该软件构件集合的中心的距 离,选取与该软件构件集合的中心的距离最近的至少五个软件构件描述词作 为该软件构件集合的软件构件集合描述词,这样就能够自动将软件构件分到 不同的软件构件集合中,并能提取出一组能够描述软件构件集合的描述词。 通过在数据处理装置中进行上述步骤,实现了软件构件集合描述词提取的自 动化,提高了确定软件构件集合描述词的效率,克服了人工方式确定软件构 件集合描述词效率不高的缺陷。
下面通过附图和实施例,对本发明的^t术方案啦支进一步的详细描述。


图1所示为本发明软件构件集合描述词自动提取方法流程图。如图1所示为本发明软件构件集合描述词自动提取方法流程图,包括 步骤1、将输入的多个软件构件转换成用向量形式表示的向量软件构
件,向量软件构件是软件构件的向量形式的表示;
步骤2、将多个向量软件构件分成K个软件构件集合;
步骤3、对于某一个软件构件集合,计算该软件构件集合中每个向量
软件构件的软件构件描述词与该软件构件集合的中心的距离,选取与该软
件构件集合的中心的距离最近的至少五个软件构件描述词作为该软件构
件集合的软件构件集合描述词。
下面具体解释本发明软件构件集合描述词自动提取方法的实现过程。
本发明提供的软件构件描述词提取方法是自动的,软件构件描述词提取 的过程可以在一个能够进行数据处理的装置中进行,例如可以将各软件构件 输入到计算机中,然后由计算机对多个软件构件进行处理。
CS={c,, c2, ......, cj表示输入到数据处理装置中的一个软件构件集合,其
中软件构件c「(Entityi, Descriptiorii} (1《i《n), Enti ty;表示第i个软件构 件的软件构件实体信息,Descriptioni表示第i个软件构件的概念信息。
1、通过预处理,将每个软件构件用向量形式表示。
具体步骤包括
(1)对软件构件集合中每个软件构件的描述信息进行分割,即将原来对 软件构件的描述句子分割成多个用于描述软件构件的词(本发明中将用于描 述软件构件的词称为软件构件描述词);例如,对软件构件的描述句子为"This is a Java project.",通过分割之后,该句子转换成多个软件构件描述词 "This" 、 "is" 、 "a"、 "Java"和"project"。
(2 )去除不符合软件构件描述标准的词,即去除出现频率较高且没有实 质含义的部分软件构件描述词。关于去除方法,具体可以是,事先进行统计, 将出现频率较高且没有实质含义的词存储,形成一个数据库,对于经过分割处理后转换成的多个软件构件描述词,可以将其在该数据库中进行查询,如 果可以查找到,则确定该软件构件描述词出现频率较高且没有实质含义,可
以去除掉;否则,不能去除。
(3)在经过去除处理之后,计算剩余软件构件描述词的权重。具体计算 方法io下
Weight ( word, Ci) =tf (word, cj *idf (word) (1) 公式(1)中,Weight (word,Ci)表示软件构件描述词word的斥又重; tf (word, Ci)表示词word在软件构件Ci的描述词中出现的次数,例如如果在软 件构件Ci的描述词中有出现了四个word,则tf (word,Ci)-4,其中软件构件Ci 的描述词是经过去除处理之后剩余的软件构件描述词;idf (word)=l+log (n/n—),其中n表示总的软件构件数,即软件构件集合CS中的个数n,也是 向量软件构件的总数,n—表示软件构件描述词中包括词word的软件构件个 数,例如,如果在三个软件构件的描述词中均包括一个词word,则n^a-3
(4 )将每个软件构件用向量形式表示,向量的维度为每个软件构件描述 词,在某个维度上的值是这个软件构件描述词的权重。 2、将所有软件构件分成多个集合。
(1)计算待分成的软件构件集合的数目。计算方法如下 K-round(O. 05*N ) (2) 公式(2)中,K为待分成的软件构件集合的数目,N为总的软件构件数, round表示对一个数进4亍四舍五入之后的整数,例如round(2. 3) =2, round (3. 6) =4。
(2 )将所有软件构件分成K个集合。下面是具体步骤 首先定义集合的中心,集合的中心也是一个向量,这个向量的维度包括 该集合中每个软件构件的向量的维度,在某个维度上的值为这个集合中所有 软件构件在这个维度上值的平均值。例如一个软件构件集合中存在三个软件 构件A、 B、 C, A软件构件的向量表示为(vai, va2,…,va ), B软件构件的向量表示为(vb,,vb2,…,vbn),(:软件构件的向量表示为"(:1^(:2,...^"),那么,该
软件构件集合的中心为<formula>formula see original document page 8</formula>棘后随机
从所有软件构件中选出两个软件构件,包括第一软件构件和第二软件构件;
让这两个软件构件各自构成一个集合,例如第一软件构件构成第一集合,第
二软件构件构成第二集合。对于剩余软件构件,分别计算每个剩余软件构件
与这两个软件构件的中心的距离,将每个剩余软件构件与第 一软件构件的中
心的距离称作每个剩余软件构件的第一软件构件距离,将每个剩余软件构件
与第二软件构件的中心的距离称作每个剩余软件构件的第二软件构件距离,
对于某一个剩余软件构件,将其放入较小的软件构件距离对应的集合中。例 如,剩余软件构件A的第一软件构件距离大于第二软件构件距离,则将剩余软 件构件A放入第二集合中。通过这样的方式,将所有剩余的软件构件放入相应 的集合中。软件构件距离的计算可以采用cos ine距离计算方法。
Cosine距离计算方法如下对于两个向量A ( va,, va2, …,van)和B(vbi,
Zva,承
vb2,…,¥^),这两个向量的(;08111^巨离为~7=^=~j-
(3)分别计算第一集合和第二集合的中心。
(4 )对于所有软件构件,分别计算该软件构件与这两个集合的中心的距 离,将所有软件构件重新分配到与某个集合中心最近的集合中。
(5)重复(3)和(4)的步骤,直到这两个集合不再改变,这样就将所 有软件构件分成了两个集合。
(6 )取出分成的这两个软件构件集合中包含软件构件个数较多的一个集 合,重复(2)到(5)的步骤,将被选择的包含软件构件数较多的集合继续 分成两个集合。
然后重复(2)到(6)的步骤,直到集合数达到K。以上提供的将数量众多的软件构件分成K个软件构件集合的方法,相对于 人工将大量软件构件分成多个软件构件集合的方式,效率可以大幅提升。
3、获取各软件构件集合的软件构件集合描述词。具体为对于每一个软 件构件集合,分别计算该集合中所有软件构件的描述词与该集合中心的 cosine距离,选取与该集合中心距离最近的五个词作为该软件构件集合的名 称,将该软件构件集合的名称作为该软件构件集合的描述词。本发明提供的 软件构件集合描述词自动提取方法,对于输入的软件构件,数据处理装置先 将各软件构件转换成用向量形式表示的向量软件构件,然后将各向量软件构 件分成多个软件构件集合,对于每个软件构件集合,计算集合中每个向量软 件构件的软件构件描述词与该软件构件集合的中心的距离,选取与该软件构 件集合的中心的距离最近的至少五个软件构件描述词作为该软件构件集合的 软件构件集合描述词,这样就能够自动将软件构件分到不同的软件构件集合 中,并能自动提取出一组能够描述软件构件集合的描述词。通过在数据处理 装置中进行上述步骤,实现了软件构件集合描述词提取的自动化,提高了确 定软件构件集合描述词的效率,克服了人工方式确定软件构件集合描述词效 率不高的缺陷。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或
者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技 术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1、一种软件构件集合描述词自动提取方法,其特征在于,包括步骤1、将输入的至少一个软件构件转换成用向量形式表示的向量软件构件;步骤2、将至少一个所述向量软件构件分成K个软件构件集合;步骤3、对于第i个软件构件集合,计算每个向量软件构件的软件构件描述词与所述第i个软件构件集合的中心的距离,选取与所述第i个软件构件集合的中心的距离最近的至少五个软件构件描述词作为所述第i个软件构件集合的软件构件集合描述词;1≤i≤K;所述步骤1到步骤3在数据处理装置中进行。
2、 根据权利要求1所述的软件构件集合描述词自动提取方法,其特 征在于,所述步骤l具体包括步骤11 、将输入的至少一个软件构件的描述句分割成单个软件构件描 述词;步骤12、对于分割成的单个软件构件描述词,去除其中不符合软件构 件描述词标准的词;步骤13、计算剩余的软件构件描述词的权重;步骤14、将软件构件转换成所述向量软件构件,所述向量软件构件的 维度为所述剩余的软件构件描述词,所述维度上的值为所述剩余的软件构 件描述词的权重。
3、 根据权利要求2所述的软件构件集合描述词自动提取方法,其特 征在于,所述步骤13中计算剩余的软件构件描述词的权重的公式为Weight (word, Ci) =tf (word, c;) * idf (word);Weight (word,表示第i个软件构件的权重,Ci表示第i个软件构 件,word表示第i个软件构件的软件构件描述词,tf (word,cj表示第i 个软件构件的软件构件描述词在第i个软件构件中出现的次数,idf (word)-l + log (n/nw。rd) , n表示向量软件构件的总数,n_d表示软件 构件描述词中包括第i个软件构件的软件构件描述词的软件构件个数。
4、根据权利要求3所述的软件构件集合描述词自动提取方法,其特 征在于,步骤2包括步骤21、 从各向量软件构件中选取第一软件构件組成第一集合,从 经过步骤12之后的剩余向量软件构件选取第二软件构件组成第二集合;步骤22、分别计算除所述第一软件构件和第二软件构件之外的其余各 向量软件构件与所述第 一 集合的中心之间的第 一 软件构件距离和与所述 第二集合的中心之间的第二软件构件距离,将所述其余各向量软件构件放 入所述第一软件构件距离和第二软件构件距离中较小的一个所对应的集 合中;步骤23、重新计算所述第一集合和第二集合对应的中心; 步骤24、计算所述第一集合和第二集合中的各向量软件构件与经过所 述步骤23之后重新确定的第一集合的中心的第三软件构件距离和与第二 集合的中心的第四软件构件距离,并将第 一集合和第二集合中的各向量软 件构件重新放入第三软件构件距离和第四软件构件距离中较小的一个所 对应的集合中;步骤25、重复步骤23和步骤24,直到所述第一集合和第二集合不再 变化;步骤26、从经过步骤25之后的第一集合和第二集合中选择包含软件 构件数目较多的一个集合,重复步骤21到步骤25,直到将至少一个所述 向量软件构件分成K
全文摘要
本发明涉及一种软件构件集合描述词自动提取方法,包括步骤1.将输入的至少一个软件构件转换成用向量形式表示的向量软件构件;步骤2、将至少一个所述向量软件构件分成K个软件构件集合;步骤3、对于第i个软件构件集合,计算每个向量软件构件的软件构件描述词与所述第i个软件构件集合的中心的距离,选取与所述第i个软件构件集合的中心的距离最近的至少五个软件构件描述词作为所述第i个软件构件集合的软件构件集合描述词。采用本发明提供的方法,可以自动将输入的软件构件分到不同的软件构件集合中,并能给出一组能够描述软件构件集合的描述词。
文档编号G06F9/44GK101436132SQ20081024045
公开日2009年5月20日 申请日期2008年12月19日 优先权日2008年12月19日
发明者飞 刘, 张良杰, 戈 李, 冰 谢, 黄艺燕 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1