一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于软件测试的知识图谱构建方法和系统

2022-12-02 19:40:33 来源:中国专利 TAG:


1.本发明涉及知识图谱技术领域,尤其涉及一种基于软件测试的知识图谱构建方法和系统。


背景技术:

2.软件测评不仅是保证软件质量的主要手段,也是软件试验鉴定工作的重要组成部分之一。提升软件产品测试智能化和标准化水平,是提高软件测试效率和质量进而增强软件试验鉴定能力的重要途径。在测试过程中积累的数据和经验也应该有一定的继承性。随着测试数据的逐年增多,但积累的数据往往得不到利用,一致处于沉睡状态,如何将历史测试用例转换为测试知识是目前亟需解决的问题。
3.知识图谱广泛应用于各个领域之中,各领域中的企业和单位开始结合知识图谱相关技术,抽取各自领域信息资源的知识实体和关系数据,构建各自领域的知识图谱,用于信息资源的检索和推荐,能够方便快速地获取相关知识,改进了信息资源的使用方法,提高了使用效率。
4.但现有知识图谱语料库来源单一,无法区分词的权重,检索智能化程度低,相关度不大的节点被检出,影响检索率;关键词提取不准确且缺少合理的更新机制。


技术实现要素:

5.鉴于上述的分析,本发明实施例旨在提供一种基于软件测试的知识图谱构建方法和系统,用以解决现有软件测试文档复用度低且无法智能化存储的问题。
6.一方面,本发明实施例提供了一种基于软件测试的知识图谱构建方法,包括以下步骤:
7.对接收到的软件测试文档进行预处理和分词处理,根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件;解析预处理后的文档得到基础数据;
8.基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系;
9.根据多级词库和各类研究方向的idf模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
10.基于上述方法的进一步改进,对接收到的软件测试文档进行预处理包括:
11.解析软件测试文档,获取文档要素信息,包括:文档类型、文档所属研究方向、表格总行数、表格总列数和表格各单元格数据;根据文档对应的软件测试模板,依次校验表格总行数与总列数是否与软件测试模板一致,表格中各单元格数据是否满足软件测试模板中字段的约束条件,如果全部校验通过,则预处理成功,按文档所属研究方向进行分类存储;否则记录并反馈错误日志,预处理失败。
12.基于上述方法的进一步改进,分词处理是利用隐马尔科夫模型,以字在词语中的
位置作为状态,基于多级词库生成初始概率矩阵、状态转移矩阵和发射概率矩阵;将输入文本作为观测序列,并利用维特比算法得到的最优状态序列,根据最优状态序列输出分词结果;
13.以字在词语中的位置作为状态,包括:字在字数大于1的词语的起始位置b,字在字数大于1的词语的结束位置e,字在字数大于1的词语的中间位置m,字为单字词s。
14.基于上述方法的进一步改进,对接收到的软件测试文档进行分词处理,根据分词结果更新多级词库中的新词库,包括:
15.将所有预处理成功的文档转换为文本后,作为输入文本进行分词处理,得到分词结果,将其中连续单字词ss对应的字组成新词,如果新词不存在于多级词库中的新词库中,则加入新词库。
16.基于上述方法的进一步改进,多级词库包括:一级标准词库、二级热词库、三级新词库、四级同义词库和五级停用词库;其中一级标准词库是通过分析领域标准和软件测试标准而预置;二级热词库是根据用户检索条件,以及预置的次数阈值和时间阈值而动态更新;三级新词库根据所有预处理成功的文档的分词结果而更新;四级同义词库和五级停用词库是根据用户维护而更新。
17.基于上述方法的进一步改进,根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件,包括:
18.基于停用词库,对每类研究方向下每个文档的分词结果去除停用词;
19.使用如下公式计算出每类研究方向中去除停用词后的分词结果中,每个词的逆文档频率,并将各个词和对应的逆文档频率组成各类研究方向的idf模型文件:
[0020][0021]
其中,idf
i,j
为第i个词在第j类研究方向中的逆文档频率;tc
i,j
为第i个词在第j类研究方向的文档中的词频;mci为第i个词在内置语料库中出现的次数。
[0022]
基于上述方法的进一步改进,根据多级词库和各研究方向的idf模型文件,从知识实体的属性中提取关键词,包括:
[0023]
将知识实体的属性组成当前文本,进行分词处理,将得到的分词结果去停用词后得到待提取词语;
[0024]
基于多级词库,识别出各个待提取词语所属词库,将属于一级标准词库或二级热词库的待提取词语,直接作为关键词,对剩余的每个待提取词语,执行如下步骤:
[0025]
根据剩余的每个待提取词语在当前文本中出现的次数和在所有预处理成功的文档中出现的次数,得到剩余的每个待提取词语的tf词频;
[0026]
根据知识实体所属的研究方向的idf模型文件,获取剩余的每个待提取词语的idf逆文档频率;
[0027]
识别剩余的每个待提取词语来源的属性及属性对应的权重,并根据剩余的每个待提取词语所属词库,得到剩余的每个待提取词语的位置权重和词库权重;
[0028]
根据tf词频、idf逆文档频率、位置权重和词库权重的乘积,得到剩余的每个待提取词语的得分;
[0029]
从高到低排序得分,根据预置个数,从剩余的待提取词语中提取得分靠前的预置个数的词语作为关键词。
[0030]
基于上述方法的进一步改进,从知识实体的属性中提取关键词还包括:基于同义词库,获取提取的关键词的同义词,建立同义词实体,以及关键词实体与同义词实体之间多对多的关系。
[0031]
基于上述方法的进一步改进,二级热词库是根据用户检索条件,以及预置的次数阈值和时间阈值而动态更新,包括:
[0032]
对用户检索条件进行分词处理,将得到的分词结果去除停用词,并移除已在任一词库中的词语;
[0033]
依次判断剩余词是否已存在于该用户的习惯词组缓存区中,如果已存在,则将该词的词频加1,若词频达到预置的次数阈值,则将该词加入二级热词库,并从该用户的习惯词组缓存区中移除该词;如果不存在,则将该词加入该用户的习惯词组缓存区中,更新时间;
[0034]
根据该用户的习惯词组缓存区中各词的更新时间,与当前时间比较,将超过预置的时间阈值的词从该用户的习惯词组缓存区中移除。
[0035]
另一方面,本发明实施例提供了一种基于软件测试的知识图谱构建系统,包括:
[0036]
分词处理模块,用于对输入文本进行分词处理,得到分词结果;
[0037]
文档预处理模块,用于对接收到的软件测试文档进行预处理,调用分词处理模块得到分词结果;根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件;解析预处理后的文档得到基础数据;
[0038]
知识图谱构建模块,用于基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系;根据多级词库和各类研究方向的idf模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
[0039]
与现有技术相比,本发明至少可实现如下有益效果之一:
[0040]
1、采用模板自适应技术,在每次软件测试文档变更后仅需将新模板上传至服务器,即可根据测试文档统一建模语言自动将模板解析成对应的html,同时支持数据库字段动态绑定,整个过程无需对代码进行二次编写。
[0041]
2、建立多级词库和各自的更新维护方法,提高分词准确率和检索命中率。
[0042]
3、改进idf计算方法,在对所有软件测试文档进行idf模型训练时,针对不同研究方向生成idf模型,在关键词提取的过程中,会提取文本对应的研究方向,使用对应方向的idf模型进行关键词提取,以提高关键词提取的精确性。
[0043]
4、基于关键词和同义词,综合考虑路径数量和路径权重,提出环绕中心度算法对知识进行检索和推荐,提高检索结果的关联度,以最大化利用沉睡的测试知识。
[0044]
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
[0045]
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0046]
图1为本发明实施例1中一种基于软件测试的知识图谱构建方法流程图;
[0047]
图2为本发明实施例1中根据检索条件得到的知识子图的示意图。
具体实施方式
[0048]
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0049]
实施例1
[0050]
本发明的一个具体实施例,公开了一种基于软件测试的知识图谱构建方法,主要针对电子对抗装备软件测试数据资产不能有效利用的问题,对电子对抗装备软件测试知识进行统一入库管理,采用统一建模语言进行预处理后,在此基础上进行知识抽取、知识表示、知识融合,构建电子对抗装备软件测试的知识图谱。如图1所示,包括以下步骤:
[0051]
s11:对接收到的软件测试文档进行预处理和分词处理,根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件;解析预处理后的文档得到基础数据。
[0052]
需要说明的是,根据电子对抗装备软件测试在需求分析阶段、测试策划阶段、测试执行阶段产生的测试类相关数据的分析,以项目为维度,确定每个项目的软件测试知识包括:测试项、测试用例和测试缺陷。
[0053]
本步骤在获取到软件测试知识的同时,进行分词处理,根据分词结果更新多级词库中的新词库,更新各类研究方向的idf模型文件,最后将软件测试知识信息保存在数据库中,便于后续知识图谱的构建。下面分别细化为步骤s111-s114进行说明。
[0054]
s111:对接收到的软件测试文档进行预处理。
[0055]
软件测试知识包括结构化和非结构化的数据,其中结构化的数据比较常规,通过系统接口、数据库同步或导入、导出等方式即可获取;而非结构化的软件测试知识一般存储在word文档中。在电子对抗领域,由于各军兵种、各测试单位对体系的理解不同,甚至同一个测评中心不同年份的测试体系文档模板也不尽相同,传统是建立不同的文档模板或者将模板转换为json或xml进行知识提取和保存,一旦调整模板,就需要重写涉及模板变更的函数,包括文档抽取、文档校验、文档内容检索,甚至调整数据库的表字段,导致在每次变更后进行大量的编码工作。
[0056]
本实施例采用了一种高度灵活的模板自适应技术,在每次测试类文档变更后,仅需将新模板上传至服务器,无需对代码进行二次编写,整个过程如下:
[0057]

上传并解析软件测试模板,将模板转化为html表格。
[0058]
需要说明的是,软件测试模板中包括测评中心名称、文档类型、版本号、以及1个或多个表格;将上传的软件测试模板保存在文件库中,同时通过openxml技术对用户上传的软件测试模板解析,获取行列信息,创建html文件,根据软件测试模板判断是否需要合并单元格,如果需要,则通过css样式合并单元格,根据openxml获取单元格属性解析列宽,设置对应的css样式;根据行列信息和列宽生成html;同时根据模板类型获取对应的基础数据的字
段列表,在html文件中,为表格中的每个单元格生成字段列表下拉框。
[0059]

建立软件测试模板与字段的映射关系,以及字段的约束条件。
[0060]
通过人工绑定的方式,选择软件测试模板中每个单元格中的字段列表下拉框,绑定对应字段信息。需要说明的是,基础数据的字段信息中包括扩展字段,用于关联模板中新增加的信息。
[0061]
考虑到电子对抗装备软件测试相关文档是由测试人员手工编辑完成,不可避免的会引入大量的错误,包括表格格式错误、缺陷标识不符合规范、唯一标识重复等,若文档抽取前不对文档进行校验,抽取后的数据将存在大量的脏数据,对后续缺陷关联关系的建立造成影响。因此必须为文档中的特殊字段建立约束条件,以便在抽取前对文档进行预处理,提高数据质量。
[0062]
具体来说,对绑定的字段通过字段属性编辑界面设置约束条件,包括唯一约束和正则表达式条件;其中,唯一约束是对测试知识的标识、标题等非重复字段创建的约束,主要用于在抽取关系时,避免因文档错误导致的错误关系被建立。正则表达式是对所有字段的规则校验,必须满足正则表达式的字段才会被抽取,否则给出错误提示。
[0063]

上传待处理文档,根据软件测试模板对接收到的软件测试文档进行预处理。
[0064]
根据模板类型上传1个或多个待处理文档,解析上传的软件测试文档,获取文档要素信息,包括:文档类型、文档所属研究方向、表格总行数、表格总列数和表格各单元格数据;根据文档对应的软件测试模板,依次校验表格总行数与总列数是否与软件测试模板一致;表格中各单元格数据是否满足软件测试模板中字段的约束条件(唯一约束或正则表达式条件),如果全部校验通过,则预处理成功,按文档所属研究方向进行分类存储;否则记录并反馈错误日志,预处理失败。
[0065]
对于预处理识别的文件,根据onlyoffice插件,用户对文档直接进行在线编辑后再次进行预处理操作。
[0066]
s112:对接收到的软件测试文档进行分词处理,根据分词结果更新多级词库中的新词库。
[0067]
需要说明的是,分词处理是利用隐马尔科夫模型,以字在词语中的位置作为状态,基于多级词库生成初始概率矩阵、状态转移矩阵和发射概率矩阵;将输入文本作为观测序列,并利用维特比算法得到的最优状态序列,根据最优状态序列输出分词结果。
[0068]
需要说明的是,为了兼顾检索命中率和电子对抗领域名词分词准确率,本实施例建立了多级词库。多级词库包括:一级标准词库、二级热词库、三级新词库、四级同义词库和五级停用词库;其中:
[0069]
一级标准词库是通过分析领域标准和软件测试标准而预置,具体来说,由电子对抗装备软件测试领域的专家对电子对抗领域军用标准、工程标准、测评领域军用标准、测试文档体系模板进行分析,形成了2000词的电子对抗装备软件测试标准库,权重最高;
[0070]
二级热词库是根据用户检索条件,以及预置的次数阈值和时间阈值而动态更新,提高对网络热词的分词成功率;
[0071]
三级新词库根据所有预处理成功的文档的分词结果而更新,即通过上述隐马尔科夫和维特比算法对软件测试文档进行无监督学习,其词库容量超过5000词,属于电子对抗装备软件测试领域词库,能显著提高分词准确率和对专业词语的分词成功率;
[0072]
四级同义词库和五级停用词库是根据用户维护而更新,即由用户对一级标准词库、二级热词库和三级新词库中的词,自定义配置对应的多个同义词及相似度,提高检索命中率;自定义配置停用词,包括:无意义的助词、语气词和干扰词组,比如测试、环境等,提高分词效率。
[0073]
分词处理时的语料库可以选择多级词库中的一级标准词库和二级热词库作为语料库,也可以将多级词库与网上通用语料库结合。以字在词语中的位置作为状态,包括:字在字数大于1的词语的起始位置b,字在字数大于1的词语的结束位置e,字在字数大于1的词语的中间位置m,字为单字词s。示例性地,“精忠报国”表示为bmme,“我”表示为s,“中国”表示为be。由此可知,词语不可能以m和b开头,得到初始概率矩阵pi,示例性地,设置分别以bmes开头的初始概率矩阵pi=[0.7,0,0,0.3]。
[0074]
根据马尔科夫假设,t 1时的状态仅仅取决于t时的状态,基于b后面只可能接m或者e,m后面只可能接m或者e,s后面只可能接s或者b,e后面只可能接s或者b,得到4
×
4的状态转移矩阵a,表示当前状态转移到下一个状态的概率矩阵。根据当前观测仅仅取决于当前状态,建立发射概率矩阵b为每个字在每个状态的概率。
[0075]
初始状态概率矩阵pi,转移概率矩阵a,发射概率矩阵b都已经通过训练为已知,将输入文本作为观测序列,并利用维特比算法得到的最优状态序列(即概率最大),根据最优状态序列输出分词结果。
[0076]
该分词处理方法使用时,只需传入不同的输入文本,就可得到不同场景下的分词结果。比如对软件测试文档的分词、对知识实体属性的分词、以及对用户输入的检索条件的分词场景中。
[0077]
对接收到的软件测试文档进行分词处理,根据分词结果更新多级词库中的新词库,包括:
[0078]
将所有预处理成功的文档转换为文本后,作为输入文本进行分词处理,得到分词结果,将其中连续单字词ss对应的字组成新词,如果新词不存在于多级词库中的新词库中,则加入新词库。
[0079]
示例性地,当得到的最优状态序列为bessbe,则将ss对应的字组成新词。
[0080]
s113:根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件。
[0081]
具体来说,基于停用词库,对每类研究方向下每个文档的分词结果去除停用词;
[0082]
使用如下公式计算出每类研究方向中去除停用词后的分词结果中,每个词的逆文档频率,并将各个词和对应的逆文档频率组成各类研究方向的idf模型文件:
[0083][0084]
其中,idf
i,j
为第i个词在第j类研究方向中的逆文档频率;tc
i,j
为第i个词在第j类研究方向的文档中的词频;mci为第i个词在内置语料库中出现的次数。
[0085]
需要说明的是,内置语料库用于关键词提取,可以选择新时代人民日报分词语料库(nepd)。
[0086]
与现有技术相比,传统tf-idf算法中idf的计算方式采用:语料库中的文件总数/包含当前词的文件数,仅仅从文件粒度计算当前词语的逆向频率,未考虑到词频对逆向频率的影响。本实施例中认为词语在某特定类型的文本(某研究方向的文档)的词频较高,而
在普通文本中的词频低,则认为词语对该特定类型的文本有很高的区分能力。因此在计算idf时,加入了研究方向的类型概念,在应用于关键词提取时,使提取粒度更加精细,精确性更高。
[0087]
需要说明的是,当在步骤s111中接收到用户上传的软件测试文档,预处理成功后,就会对所有已预处理成功的文档通过步骤s112进行分词,根据分词结果更新新词库,通过步骤s113更新各类研究方向的idf模型文件。当有多个用户同时上传,或者用户上传时,正在更新词库或idf模型文件时,通过设置操作状态判断是否可进行更新操作,通过记录用户上传数量和上传时间,当词库和idf模型文件更新完成后,根据最新的上传时间对之前已上传且预处理成功的所有文档再进行词库和模型文件的更新。
[0088]
s114:解析预处理后的文档得到基础数据。
[0089]
需要说明的是,软件测试文档预处理成功后,将文档中的信息保存在数据库中,得到基础数据。该步骤与步骤s112和s113无执行顺序限制,可以同步执行,也可以完成更新后执行。
[0090]
考虑到软件测试文档中通常会有测试过程的图片,因此,对预处理后的文档进行图文分离,分别入库,包括:
[0091]
获取预处理成功的文档的文档要素信息,判断其中是否存在图片信息,如果存在,提取图片信息,并为该图片分配唯一标识,在图片位置处插入标识符,将图片保存至文件库中,将文档要素信息,以及文档与图片的关联关系保存至基础数据库,生成基础数据,包括:项目、测试项、测试用例和测试缺陷。
[0092]
示例性地,文件库为miniio。
[0093]
通过以上步骤的处理,将非结构化的文档信息转换为结构化的数据提取至基础数据库中,将文档模板和文档中的图片信息保存至文件库中。
[0094]
s12:基于基础数据,定时抽取知识实体及其属性,并建立知识实体及其属性以及知识实体间的关系。
[0095]
需要说明的是,将测试数据进行结构化处理后,虽然能够通过全文检索、精确查找等技术进行数据的检索利用,由于智能化程度低,需要查询条件与数据内容完全匹配、无法查询同义词、无法直接对长句进行检索分析,导致数据的检出率低、检索速度慢。将结构化的测试知识转化为半结构化的图数据,以图的形式实现测试知识的智能化存储和检索,提高数据的综合利用率。
[0096]
本实施例中电子对抗装备软件测试知识图谱库g=(e,r)表示为三元组的形式s={(h,r,t)}。每个三元组由一对实体h,t∈e和它们之间的直接关系r∈r组成。用(h,r,t)来表示实体对和它们之间的某条多步关系路径,其中p=(h,r1,r2,
…rm
,t)。(h,t)是起始/终点实体,r1,r2,
…rm
是路径上的关系,同时每个实体通过多个属性描述具体的特征。因此,根据基础数据库,需抽取出知识实体和属性,建立知识实体间的关系。
[0097]
由于在步骤s11中已将数据按照各类基础数据保存,而各类基础数据直接对应知识图谱中的各类知识实体,基础数据中相关字段信息直接映射为知识实体的属性,因此,知识实体和属性的抽取过程包括:
[0098]
知识图谱库定时监控基础数据库的更新情况,从基础数据库中获取新保存的结构化数据,根据对应的知识实体类型,在图数据库中建立对应的知识实体节点,将结构化数据
中的相关字段信息填充到知识实体节点的各属性中,知识实体节点包括:项目、测试项、测试用例和测试缺陷。
[0099]
示例性地,知识图谱库监控到基础数据库中新增了一个测试缺陷,则在图数据库中建立一个测试缺陷的知识实体节点,以基础数据库中该测试缺陷的“测试缺陷标题”作为知识实体节点名称,其他字段信息,比如测试缺陷描述、测试人员、监测人员和问题原因作为知识实体节点的属性。
[0100]
每个项目中测试项标识、缺陷标识、用例标识均唯一,在建立知识实体和属性时,根据属性中的关联标识,建立知识实体间的关系,包括:
[0101]
根据测试项与项目间1对多的关系,在建立测试项知识实体时,获取测试项的项目标识,根据项目标识查询出对应的项目知识实体,建立测试项知识实体与项目知识实体的关系;
[0102]
根据测试项与测试用例间1对多的关系,在建立测试用例知识实体时,获取测试用例关联的测试项标识,根据测试项标识查询对应的测试项知识实体,如果存在测试项知识实体,则建立测试用例知识实体与测试项知识实体的关系,否则,删除测试用例知识实体,取消关系建立;
[0103]
根据测试用例与测试缺陷间多对多的关系,在建立测试缺陷知识实体时,获取测试缺陷关联的测试用例标识,根据测试用例标识查询对应的测试用例知识实体,如果存在测试用例实体,建立测试缺陷知识实体与测试用例知识实体的关系,否则,删除测试缺陷知识实体,取消关系建立。
[0104]
s13:根据多级词库和各类研究方向的idf模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
[0105]
需要说明的是,为了实现对测试知识的精确检索,从知识实体的属性中提取关键词,并以此关键词建立关键词实体。每一个测试知识可以抽取多个关键词;关键词与知识实体间建立多对多的关系。
[0106]
进一步地,知识实体的属性分为三类:标题、描述和内容,每一类权重不同,从不同类别中提取的关键词的位置权重就是关键词来源的属性类别权重,其中,标题包括:测试项标题、测试用例标题和测试缺陷标题;描述包括:测试项描述、测试项追踪、测试用例描述和测试缺陷描述;内容包括:测试项充分性、测试方法、测试用例输入/输出/预期结果、测试缺陷详细描述、问题原因和修改方式。
[0107]
具体来说,根据多级词库和各研究方向的idf模型文件,从知识实体的属性中提取关键词,包括:
[0108]
1)将知识实体的属性组成当前文本,进行分词处理,将得到的分词结果去停用词后得到待提取词语;
[0109]
2)基于多级词库,识别出各个待提取词语所属词库,将属于一级标准词库或二级热词库的待提取词语,直接作为关键词,对剩余的每个待提取词语,执行如下步骤:
[0110]

根据剩余的每个待提取词语在当前文本中出现的次数和在所有预处理成功的文档中出现的次数,得到剩余的待提取词语的tf词频;
[0111]
需要说明的是,使用如下公式计算出tf词频(term frequency):
[0112][0113]
其中,n
k,m
为剩余的待提取词语tk在文本dm中出现的次数,∑
lnk,l
为剩余的待提取词语tk在所有预处理成功的文档中出现的次数之和。
[0114]

根据知识实体所属的研究方向的idf模型文件,获取剩余的每个待提取词语的idf逆文档频率;
[0115]
需要说明的是,如果idf模型文件正在更新中,则根据更新前的idf模型文件获取对应词语的idf逆文档频率。
[0116]

识别剩余的每个待提取词语来源的属性及属性对应的权重,并根据剩余的每个待提取词语所属词库,得到剩余的每个待提取词语的位置权重和词库权重;
[0117]
需要说明的是,分词处理后得到的词,其所属词库和位置来源作为决定其重要程度的部分因素,本实施例中不同级别的词库和不同属性来源设置了默认值,并可实时调整。
[0118]
示例性地,词库和属性位置的权重信息如表1所示。
[0119]
表1权限分配示例表
[0120]
词库词库权重标题权重描述权重内容权重一级标准词库0.51.00.50.1二级热词库0.30.50.250.05三级新词库0.10.10.050.01四级同义词库0.10.10.050.01
[0121]

根据tf词频、idf逆文档频率、位置权重和词库权重的乘积,得到剩余的每个待提取词语的得分;
[0122]
需要说明的是,通过tf词频、idf逆文档频率、词库权重和位置权重这四个维度计算出的得分,即反映了关键词的重要程度,也反映了电子对抗领域特色,同时还考虑了关键词位置带来的影响。
[0123]

从高到低排序得分,根据预置个数,从剩余的待提取词语中提取得分靠前的预置个数的词语作为关键词。
[0124]
将提取的关键词作为实体名称进行检索,如果不存在,则创建新的关键词实体节点,建立关键词实体节点与知识实体之间多对多的关系,如果已存在,进一步判断是否已存在该关键词实体节点与知识实体的关系,如果不存在关系,则建立两者之间多对多的关系。
[0125]
基于上述步骤构建出知识图谱,包括:知识实体及其属性、知识实体间的关系、关键词实体,以及关键词与知识实体的关系。
[0126]
优选地,基于同义词库,获取提取的关键词的同义词;将同义词作为实体名称进行检索,当同义词实体不存在时,建立同义词实体,以及关键词实体与同义词实体之间多对多的关系。
[0127]
建立好知识图谱后,根据接收的用户输入的检索条件,计算知识图谱中各节点的关联度,返回检索结果。
[0128]
具体来说,检索过程包括:
[0129]

获取用户输入的检索条件,对检索条件进行分词处理,得到检索词;
[0130]

基于停用词库,去掉检索词中的停用词,基于同义词库,获得检索词中的同义
词,加入检索词;
[0131]

依次在知识图谱中对检索词进行关键词匹配,获取关键词及与关键词关联的知识实体和同义词,其中与关键词关联的知识实体作为检索结果;
[0132]

根据关键词所属词库权重和位置权重,以及同义词的相似度,汇总每个检索结果的得分;
[0133]
需要说明的是,本实施例以关键词关联的知识实体为中心节点,以关键词和同义词作为中心节点的环绕节点,且以2级路径为边界,根据关键词和同义词的权重,以及同义词的相似度,计算出中心节点的环绕中心度,作为检索结果的得分,计算公式如下:
[0134][0135]cc
(n
p
)=dict
p
×
pos
p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(4)
[0136]c′c(nq)=dictq×
posq×
simqꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(5)
[0137]
其中,g是与中心节点c存在直接关系的关键词数量,r是与c存在直接关系的关键词的同义词数量;dict
p
是关键词n
p
所属词库的权重,pos
p
是关键词n
p
的位置权重,dictq是同义词库的权重,posq是同义词nq的位置权重,simq为同义词的相似度。同义词的位置权重可以与所关联的关键词的位置权重相同,也可以自定义配置。
[0138]
示例性地,当用户输入的检索条件是“信号截获处理”,匹配的关键词实体是信号、截获和处理,根据关键词实体得到与其关联的知识实体,如图2所示。在图2中实体节点之间的连线上标注了关键词所属的词库等级,以及位置来源。
[0139]
根据环绕中心度算法,基于表1的权重,得到图2中三个测试项的环绕中心度分别为:
[0140]
信号处理:
[0141][0142]
信号截获:
[0143][0144]
全脉冲采集:
[0145][0146]
由此可知,与检索条件相关度最大的测试项“信号截获”得分最高。
[0147]

当检索结果数量小于第一数量阈值,或者得分超过分值阈值的检索结果数量小于第二数量阈值时,进行全文检索,得到补充结果及其得分,加入检索结果中;基于软件测试模板,按照得分从高到低显示出检索结果对应的软件测试知识。
[0148]
示例性地,采用elasticsearch用于全文检索。
[0149]
进一步地,获得检索结果后,根据检索结果对应的软件测试模板模板,对软件测试知识进行恢复,以直观的方式将结果反馈给最终用户。
[0150]
具体过程包括:
[0151]
根据检索结果,获取对应的软件测试模板;
[0152]
根据软件测试模板中绑定的字段,从检索结果对应的记录中获取字段内容,填充至软件测试模板中;如果所述字段内容中存在图片标识符,则从文件库中获取图片信息,插入到软件测试模板中,得到软件测试知识;
[0153]
以可视化化方式展示软件测试知识。
[0154]
优选地,从知识图谱库中,获取该检索结果关联的知识实体和关系,对检索结果进行全生命周期追溯。
[0155]
在根据用户检索条件进行检索的同时,进行二级热词库的更新,过程包括:
[0156]
在对用户输入的检索条件进行分词处理及去除停用词后,移除其中已在任一词库中的词语;
[0157]
依次判断剩余词是否已存在于该用户的习惯词组缓存区中,如果已存在,则将该词的词频加1,若词频达到预置的次数阈值,则将该词加入二级热词库,并从该用户的习惯词组缓存区中移除该词;如果不存在,则将该词加入该用户的习惯词组缓存区中,更新时间;
[0158]
根据该用户的习惯词组缓存区中各词的更新时间,与当前时间比较,将超过预置的时间阈值的词从该用户的习惯词组缓存区中移除。示例性地,将超过3个月未更新的词从该用户的习惯词组缓存区中删除。
[0159]
与现有技术相比,本实施例提供的一种基于软件测试的知识图谱构建方法,采用模板自适应技术,在每次软件测试文档变更后仅需将新模板上传至服务器,即可根据测试文档统一建模语言自动将模板解析成对应的html,同时支持数据库字段动态绑定,整个过程无需对代码进行二次编写;建立多级词库和各自的更新维护方法,提高分词准确率和检索命中率;改进idf计算方法,在对所有软件测试文档进行idf模型训练时,针对不同研究方向生成idf模型,在关键词提取的过程中,会提取文本对应的研究方向,使用对应方向的idf模型进行关键词提取,以提高关键词提取的精确性;基于关键词和同义词,综合考虑路径数量和路径权重,提出环绕中心度算法对知识进行检索和推荐,提高检索结果的关联度,以最大化利用沉睡的测试知识。
[0160]
实施例2
[0161]
本发明的另一个实施例,公开了一种基于软件测试的知识图谱构建系统,从而实现实施例1中的知识图谱构建方法。各模块的具体实现方式参照实施例1中的相应描述。该系统包括:
[0162]
分词处理模块,用于对输入文本进行分词处理,得到分词结果;
[0163]
文档预处理模块,用于对接收到的软件测试文档进行预处理,调用分词处理模块得到分词结果;根据分词结果更新多级词库中的新词库,以及根据分词结果和文档所属研究方向,更新各类研究方向的idf模型文件;解析预处理后的文档得到基础数据;
[0164]
知识图谱构建模块,用于基于基础数据,定时抽取和建立知识实体及其属性,以及知识实体间的关系;根据多级词库和各类研究方向的idf模型文件,从知识实体的属性中提取关键词,建立关键词实体以及关键词实体与知识实体的关系,得到知识图谱。
[0165]
由于本实施例公开的一种基于软件测试的知识图谱构建系统与前述一种软件测试的知识图谱构建方法相关之处可相互借鉴,此处为重复描述,故这里不再赘述。由于本系统实施例与上述方法实施例原理相同,所以本系统实施例也具有上述方法实施例相应的技
术效果。
[0166]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0167]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献