一种基于语义层次聚类的软件功能需求分类方法及系统与流程

文档序号:24081227发布日期:2021-02-26 18:04阅读:174来源:国知局
一种基于语义层次聚类的软件功能需求分类方法及系统与流程

[0001]
本发明属于软件需求分类技术领域,尤其涉及一种基于语义层次聚类的软件功能需求分类方法及系统。


背景技术:

[0002]
随着工程机械行业日益增多的智能化、网联化、数字化等功能,并且机型种类多,自然语言描述的需求文本也日益增多,对需求文本处理的好坏,决定了工程机械软件开发的品质。然而当前需求文本的处理方法还停留在人工分类阶段,人工分类存在对人的分类经验要求较高,领域知识不全面,主观影响较大,分类效率不高,难以准确分类等缺点。分类精准化和高效化是解决上述缺点的主要途径,也是提升工程机械开发品质的关键。
[0003]
目前工程机械行业对文本功能需求分类主要采用人工分类,分类效果较差,针对工程机械机型较多、分类要求较为精确的特点,如果没有高效准确的分类方法,只借助人工分类,不仅不直观精度也难以把握。


技术实现要素:

[0004]
本发明的目的在于提供一种基于语义层次聚类的软件功能需求分类方法及系统,能够对软件功能需求进行高效分类。
[0005]
为实现上述目的,本发明提供如下技术方案:
[0006]
第一方面,提供了一种基于语义层次聚类的软件功能需求分类方法,包括:
[0007]
将功能需求文本整理成名词加动词的标准文本;
[0008]
对整理后的标准文本进行切词;
[0009]
对切词后的文本构建词袋模型;
[0010]
将词袋模型中的词袋向量转成权值向量;
[0011]
对转换后的权值向量进行余弦相似度计算;
[0012]
对经过余弦相似度计算后的权值向量进行聚类。
[0013]
结合第一方面,进一步的,所述对切词后的文本构建词袋模型具体为:将切词后的文本去重后构建成词条列表,然后将文本构建成一个向量,向量的维度与词条列表的维度相同,向量的值为词条在该文本中出现的次数。
[0014]
结合第一方面,进一步的,通过tf-idf统计法将词袋向量转换为权值向量。
[0015]
结合第一方面,进一步的,所述对转换后的权值向量进行余弦相似度计算具体为:采用下式对转换后的权值向量进行余弦相似度计算:
[0016][0017]
a
i
、b
i
分别为进行相似度比较的两个权值向量,n为样本总量;然后将相似的向量归为一类。
[0018]
结合第一方面,进一步的,所述对经过余弦相似度计算后的权值向量进行聚类为:
[0019]
将归为一类的向量作为一个初始聚类簇,然后找出两个聚类最近的两个簇进行合并,不断重复,直到达到预设条件。
[0020]
结合第一方面,进一步的,两个簇之间的距离通过下式进行计算:
[0021]
最小距离:
[0022]
最大距离:
[0023]
平均距离:
[0024]
其中,c
i
和c
j
分别表示第i和第j个簇,x和z分别表示簇c
i
和c
j
中的样本。
[0025]
结合第一方面,进一步的,还包括将聚类的结果数据可视化,去除单独成为一类的数据,将两个或两个以上的需求文本聚成一类进行可视化。
[0026]
第二方面,提供了一种基于语义层次聚类的软件功能需求分类系统,包括:
[0027]
词袋模型建模模块:用于将功能需求文本整理成名词加动词的标准文本;对整理后的标准文本进行切词;对切词后的文本构建词袋模型;
[0028]
聚类计算摸摸,用于将词袋模型中的词袋向量转成权值向量;
[0029]
对转换后的权值向量进行余弦相似度计算;
[0030]
对经过余弦相似度计算后的权值向量进行聚类。
[0031]
结合第二方面,进一步的,词袋模型建模模块包括:
[0032]
整理模块:用于将功能需求文本整理成名词加动词的标准文本;
[0033]
切词模块:用于对整理后的标准文本进行切词;
[0034]
建模模块:用于对切词后的文本构建词袋模型。
[0035]
结合第二方面,进一步的,所述聚类计算摸摸包括:
[0036]
向量转换模块:用于将词袋模型中的词袋向量转成权值向量;
[0037]
余弦计算模块:用于对转换后的权值向量进行余弦相似度计算;
[0038]
聚类模块:用于对经过余弦相似度计算后的权值向量进行聚类。
[0039]
有益技术效果:本发明提出一种基于语义层次聚类算法的软件功能需求的分类方法,利用层次聚类算法计算能力强,效率高且分类个数可调的特点,直观准确的显示分类效果,将整个工程机械的代表机型的文本进行分类,并且可以通过编写程序得到运行结果,让开发人员清晰直观的看到分类效果,分类效果更加直观,分类结果也可以得到最大程度保证。而且,编写的程序语言提供专门的中文切词工具,完美的模拟了真实的语义切词环境,使得工程机械的文本需求分类可以更加充分可信。
附图说明
[0040]
图1为本发明的流程图;
[0041]
图2为本中人工整理后的标准需求文本示意图;
[0042]
图3为本发明中经过切词处理的切词文本;
[0043]
图4为本发明中的聚类结果示意图;
[0044]
图5为本发明中经整理后的需求分类可视化示意图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
实施例1
[0047]
如图1-5所示,提供了一种基于语义层次聚类的软件功能需求分类方法,包括:
[0048]
步骤一、将功能需求文本整理成名词加动词的标准文本;
[0049]
收集到的需求由于是自然语言表达的涉众需求,所以文本描述比较自由不规范,所以需要对其进行加工处理,具体是将其转化为动词加名词或名词加动词的标准文本。例如涉众需求为:根据采集的数据诊断故障模式可将其转化成诊断故障模式。
[0050]
步骤二、对整理后的标准文本进行切词;
[0051]
要对中文文本做聚类分析,首先要对文本做分词处理,例如“卷扬加压”,我们希望将其切分为“卷扬加压”。python提供专门的中文切词工具“jieba”,它可以将中文长文本划分为若干个单词。
[0052]
为了提高分类的准确率,还要考虑两个干扰因素:一是英文字母大小写的影响,为此我们将英文字母统一转换为大写;二是“()”、
“-”
、“/”、“&”等符号作为停用词,将其从分词结果中去除掉,最后得到有效的词汇组合。
[0053]
步骤三、对切词后的文本构建词袋模型;
[0054]
文本被切分成单词后,需要进一步转换成向量。先将所有文本中的词汇构建成一个词条列表,其中不含重复的词条。然后对每个文本,构建一个向量,向量的维度与词条列表的维度相同,向量的值是词条列表中每个词条在该文本中出现的次数,这种模型叫做词袋模型。例如,“卷扬加压”和“桅杆调节”两个文本切词后的结果是“卷扬加压”和“桅杆调节”,它们构成的词条列表是[卷扬,加压,桅杆,调节],对应的词袋模型分别是[1,1,0,0],[0,0,1,1]。
[0055]
步骤四、将词袋模型中的词袋向量转成权值向量;
[0056]
tf-idf是一种统计方法,用来评估一个词条对于一个文件集中一份文件的重要程度。tf-idf的主要思想是:如果某个词在一篇文章中出现的频率tf高,并且在其他文件中很少出现,则认为此词条具有很好的类别区分能力,适合用来分类。将词袋向量转换为tf-idf权值向量,更有利于判断两个文本的相似性。
[0057]
步骤五、对转换后的权值向量进行余弦相似度计算;
[0058]
余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体差异的大小。相比欧氏距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上的差异。余弦值的计算公式如下:
[0059][0060]
其中,a
i
、b
i
分别为进行相似度比较的两个权值向量,n为样本总量;然后将相似的向量归为一类。
[0061]
相对于欧氏距离,余弦相似度更适合计算文本的相似度。首先将文本转换为权值向量,通过计算两个向量的夹角余弦值,就可以评估他们的相似度。余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量方向越接近;越趋近于-1,代表他们的方向越相反。为了方便聚类分析,我们将余弦值做归一化处理,将其转换到[0,1]之间,并且值越小距离越近。
[0062]
步骤六、对经过余弦相似度计算后的权值向量进行聚类。
[0063]
层次聚类试图在不同的层次对数据集进行划分,可以采用“自底向上”的聚类策略,也可以采用“自顶向下”的分拆策略。一般采用“自底向上”的策略,它的思路是先将数据集中的每个样本看作一个初始聚类簇,然后找出两个聚类最近的两个簇进行合并,不断重复该步骤,直到达到预设的聚类个数或某种条件。关键是如何计算两个簇之间的距离,每个簇都是一个集合,因此需要计算集合的某种距离即可。例如,给定簇c
i
和c
j
,可通过以下3种方式计算距离:
[0064]
最小距离:
[0065]
最大距离:
[0066]
平均距离:
[0067]
最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,平均距离由两个簇的所有样本决定。
[0068]
其中,c
i
和c
j
分别表示第i和第j个簇,x和z分别表示簇c
i
和c
j
中的样本。
[0069]
接下来要考虑如何确定一个合适的聚类个数或某种结束条件,具体思路是:
[0070]
(1)选定一部分测试样本,对其进行层次聚类分析。
[0071]
(2)记算性能度量指标dbi和di的变化趋势,结合人工校验,得到一个合适的聚类个数和对应的距离阈值。
[0072]
(3)将此距离阈值作为聚类结束的条件,对所有样本做聚类分析。此时无需再计算dbi和di值,计算效率可以大幅提升。
[0073]
最后,将聚类结果数据可视化。
[0074]
程序运行的结果是数字表示的一种形式,最终要以可视化的方式展示,所以需要人工对程序结果进行整理处理,对程序运行的数据对应的文本进行分类,去除单独成为一类的数据,将2个或2个以上的需求文本聚成一类成的数据应用数据可视化技术进行可视化显示。
[0075]
实施例2
[0076]
提供了一种基于语义层次聚类的软件功能需求分类系统,包括:
[0077]
词袋模型建模模块:用于将功能需求文本整理成名词加动词的标准文本;对整理后的标准文本进行切词;对切词后的文本构建词袋模型;
[0078]
聚类计算摸摸,用于将词袋模型中的词袋向量转成权值向量;
[0079]
对转换后的权值向量进行余弦相似度计算;
[0080]
对经过余弦相似度计算后的权值向量进行聚类。
[0081]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1