基于半监督学习的软件工程知识库的自动化构建实现方法技术

技术编号:15691607 阅读:42 留言:0更新日期:2017-06-24 04:57
一种基于半监督学习的软件工程知识库的自动化构建实现方法,解决软件工程领域知识库现阶段较为匮乏、概念数目难以达到大规模程度、概念间的关系较为稀疏、同时需要投入大量人工精力的问题,本发明专利技术通过:一、根据标签传播,采用维基百科和StackOverflow数据源扩充软件工程领域的概念集合;二、构建对软件工程领域概念进行上下位关系抽取的机器学习特征;三、分别采用模版匹配和规则匹配的方法自动化标注关系抽取的正例和反例训练数据;四、根据迭代的半监督的学习方法进行概念间关系的抽取工作,并结合评估规则优化每次迭代的抽取结果;五、采用RDF语言对知识库进行标准化构建得以实现。

Automatic construction and implementation method of software engineering knowledge base based on semi supervised learning

A semi supervised learning automation software engineering knowledge base construction method based on knowledge base, to solve the field of software engineering at the present stage, the scarce number of concepts to achieve large-scale, relationship between concepts is sparse, requires a lot of energy and artificial problems, according to the present invention: first, according to the concept of label propagation, using Wikipedia the StackOverflow data source and expand the field of software engineering, construction of two sets; the concept of software engineering to learn characteristics of hyponymy extraction machine; three, using the automatic template matching and rule matching label relation extraction of positive and negative examples are extracted from the training data; the relationship between the four, the concept of work according to the learning method semi supervised iteration, and combined with the evaluation results of extraction rules for each iteration of the optimization, five; The standardization of knowledge base is realized by using RDF language.

【技术实现步骤摘要】
基于半监督学习的软件工程知识库的自动化构建实现方法
本专利技术涉及的是一种软件工程领域的技术,具体是一种基于半监督学习的软件工程知识库的自动化构建实现方法。
技术介绍
当今社会是以语义万维网(SemanticWeb)作为未来发展主要方向的时代,构造能让计算机理解和处理的Web信息成为现阶段非常重要的工作。而知识库(KnowledgeBase)作为具有概念、实体、关系所组成的知识集合,使其在信息检索,知识问答等蓬勃发展的环境下,具有越来越重要的应用价值和工业价值。而软件工程领域知识库作为知识库中的一个重要分支,同样凸显着难以替代的作用。尤其是在:缺陷预测、语义关联性计算、文本正确性分析、软件文档相关性监测、软件质量度量等领域的研究,大都基于软件工程领域知识库展开。因此,软件工程领域知识库的质量,很大程度上决定并影响研究的质量与效果。因此,构建高质量、大规模的软件工程领域知识库具有非常重要的意义。由于现阶段大规模的软件工程知识库尚无完备的构建方法和构建成果,获取软件工程知识库主要通过以下两种方法:通过一般领域的开源知识库获得软件工程领域知识。该方法主要通过开源的且为一般领域的知识库,例如:WordNet、YAGO、DBpedia、WikiTaxonomy等知识库,或者通过著名知识搜索计算平台如Google知识图谱、WolframAlpha、Data.gov等平台获取。首先,获得其中一个一般领域的知识库或知识平台,然后通过人工验证、类别验证(根据知识库中标注的类别,选取相关类别抽取知识集)的方式,将其中关于软件工程领域的知识分离出来构造集合,并进行结构化的构建,以此来作为软件领域的知识库。但由于一般领域知识库中关于软件工程领域知识不够全面,同时人工验证和类别验证的准确度不高,得到的软件工程领域知识库存在关系稀疏、构建质量低的问题,同时会投入极大的人工成本。通过现阶段已有的软件工程领域知识库获得。该方法是直接使用现阶段已构建的软件工程领域知识库。其相关可供使用的知识库有:KaviMahesh等人发布的LOaD-IT,这个知识库致力于帮助软件工程师更快阅读文档而构建,其中的概念的语义关系非常稀疏,难以运用到软件工程的其它领域。Mr.IzzeddinA.O.Abuhassan等人构造的关于软件工程编程语言方面的知识库,该知识库没有涉及到全部的软件工程领域范围。LexicalViews,该知识库通过运用自然语言处理技术从软件工程领域抽取出部分的概念,其概念大多为软件工程中术语,并将其组织成类似于WordNet的树状结构,构建成知识库。上海交通大学的Software.Zhishi.Schema,该知识库主要抽取StackOverflow中的标签作为知识库的概念集合,并抽取标签之间的关系构建知识库,其构建结果局限于StackOverflow的标签范围之内。上述研究成果都具有各自的局限性,其主要特点是缺乏包含较为全面的、大规模的软件工程领域概念,并且其中语义关系的丰富性(如上下位关系的数目与深度),都有待进一步的提高。
技术实现思路
本专利技术针对现有技术在关系抽取上难以达到较高的准确度和较大的规模、概念数目难以达到大规模程度、概念间的关系较为稀疏、需要通过人工标注的方法完成样本构建需要投入大量人工精力的问题,提出一种基于半监督学习的软件工程知识库的自动化构建实现方法,通过半监督的自动化构建方式,减小构建软件工程知识库的人工精力和时间成本;使得构建的软件工程领域知识库具有更大的规模和更好的质量,解决现阶段软件领域知识库的匮乏和不足。本专利技术是通过以下技术方案实现的:本专利技术包括以下步骤:步骤一、以StackOverflow上提供的软件工程领域标签作为种子词汇,并获得维基百科提供的概念数据集,通过种子词汇标签迭代传播,扩充维基百科上全部软件工程领域概念并得到包含维基结构的软件工程领域知识集合。步骤二、结合语义及概念在维基百科中的结构特征,对软件工程领域概念构建上下位关系的机器学习特征,即将步骤一得到的软件工程领域知识集合中每一个概念与当前概念在维基百科页面中所有锚链接的软件工程领域概念进行上下位关系的判别。所述的上下位关系的机器学习特征包括:词干共现度、非对称的公共字串相似度、基于维基结构的锚链接共现度、基于维基结构的结构体信息相似度和基于KL散度的主题分布相似度,其中:所述的词干共现度是指:对于概念的词义进行相关性计算,通过采用StandfordParser工具提取概念的词干,即中心词,并计算词干的共现度其中:HA,HB为概念A、B的词干,LCA(HA,HB)计算词干HA和HB的最小公共祖先,depth(HA)计算词干HA在WordNet中的深度。所述的非对称的公共字串相似度是指:由于上下位是一种非对称的关系(当概念A是概念B的上位词,则概念B一定不是概念A的上位词),因此该特征可以有效避免概念间存在关系密切但不为上下位关系的干扰,即计算概念间公共字串的相似值其中:LCS(A,B)计算概念A,B的最长公共子串长度,Len(A)计算概念A的名称长度。所述的基于维基结构的锚链接共现度是指:由于每一个概念均与维基百科的某一页面相对应,因此,维基百科页面中的结构及结构中的文本信息可以良好地反映概念指代的信息与含义。通过采用NGD(NormalizedGoogleDistance)分别对概念的维基百科页面的各个结构进行共现相似度的分析,相似度其中:N为常量,指代维基百科锚链接的总数目。IA和IB分别指代概念A、B的维基百科页面中某一特定结构(例如:引文、正文、属类)中锚链接的集合。由于维基百科页面中的结构如:引文(Abstract)、正文(Text)、属类(Category)中的锚链接集合均能良好反映概念的含义,因此分别基于上述三种结构进行NGD的计算,得到三个不同的特征值。另外,由于属类(Category)结构能明确表示上下位的关系,若概念A包含在概念B的属类(Category)的锚链接集合中或概念B包含在概念A的属类(Category)锚链接的集合中,则为计算的属类结构NGD值等于当前计算结果加附加系数V,根据NGD在本实施例中的取值范围,设定附加系数V=0.05。所述的基于维基结构的结构体信息相似度是指:维基百科为每个概念提供了大纲(guideline)和信息框(infobox)两个维基结构,上述两个结构体都通过关键字来体现概念的主要信息,其中大纲(guideline)主要描述当前概念维基页面主要从哪几个方面进行描述,而信息框(infobox)主要描述当前概念所具有的特性和属性。而关联密切的软件工程领域概念往往具有较为相近的大纲(guideline)和信息框(infobox)结构,因此通过如下Jaccard对结构所描述信息的相似度进行计算,其中:KA和KB表示概念A、B分别在结构体(大纲或信息框)中的关键字集合。本实施例分别根据大纲和信息框两种结构,分别进行两次结构体信息相似度的计算。所述的基于KL散度的主题分布相似度是指:对于存在上下位关系的软件工程领域概念,部分概念不具备完整的维基结构。因此,为了挖掘结构不完整的软件工程领域概念的上下位关系,本实施例通过KL散度进行概念之间关联度的计算。首先采用LDA(LatentDiri本文档来自技高网
...
基于半监督学习的软件工程知识库的自动化构建实现方法

【技术保护点】
一种基于半监督学习的软件工程知识库的自动化构建实现方法,其特征在于,包括以下步骤:步骤一、以StackOverflow上提供的软件工程领域标签作为种子词汇,并获得维基百科提供的概念数据集,通过种子词汇标签迭代传播,扩充维基百科上全部软件工程领域概念并得到包含维基结构的软件工程领域知识集合;步骤二、结合语义及概念在维基百科中的结构特征,对软件工程领域概念构建上下位关系的机器学习特征;步骤三、根据机器学习特征,分别采用模版匹配和规则匹配的方法对软件工程领域知识集合中的正例数据和反例数据进行标注,得到基于模板匹配和规则匹配的数据标注;步骤四、采用半监督的学习方法从包含维基结构的软件工程领域知识集合中进行迭代的关系抽取工作,并建立迭代结果的评估规则以进行优化;步骤五、对步骤四构建得到的知识库进行RDF标准化,完成最终大规模软件工程领域知识库的构建。

【技术特征摘要】
1.一种基于半监督学习的软件工程知识库的自动化构建实现方法,其特征在于,包括以下步骤:步骤一、以StackOverflow上提供的软件工程领域标签作为种子词汇,并获得维基百科提供的概念数据集,通过种子词汇标签迭代传播,扩充维基百科上全部软件工程领域概念并得到包含维基结构的软件工程领域知识集合;步骤二、结合语义及概念在维基百科中的结构特征,对软件工程领域概念构建上下位关系的机器学习特征;步骤三、根据机器学习特征,分别采用模版匹配和规则匹配的方法对软件工程领域知识集合中的正例数据和反例数据进行标注,得到基于模板匹配和规则匹配的数据标注;步骤四、采用半监督的学习方法从包含维基结构的软件工程领域知识集合中进行迭代的关系抽取工作,并建立迭代结果的评估规则以进行优化;步骤五、对步骤四构建得到的知识库进行RDF标准化,完成最终大规模软件工程领域知识库的构建。2.根据权利要求1所述的软件工程知识库的自动化构建实现方法,其特征是,所述的上下位关系的机器学习特征包括:词干共现度、非对称的公共字串相似度、基于维基结构的锚链接共现度、基于维基结构的结构体信息相似度和基于KL散度的主题分布相似度,其中:所述的词干共现度是指:对于概念的词义进行相关性计算,通过采用StandfordParser工具提取概念的词干,即中心词,并计算词干的共现度其中:HA,HB为概念A、B的词干,LCA(HA,HB)计算词干HA和HB的最小公共祖先,depth(HA)计算词干HA在WordNet中的深度;所述的非对称的公共字串相似度是指:由于上下位是一种非对称的关系(当概念A是概念B的上位词,则概念B一定不是概念A的上位词),因此该特征可以有效避免概念间存在关系密切但不为上下位关系的干扰,即计算概念间公共字串的相似值其中:LCS(A,B)计算概念A,B的最长公共子串长度,Len(A)计算概念A的名称长度;所述的基于维基结构的锚链接共现度是指:由于每一个概念均与维基百科的某一页面相对应,因此,维基百科页面中的结构及结构中的文本信息可以良好地反映概念指代的信息与含义;通过采用NGD(NormalizedGoogleDistance)分别对概念的维基百科页面的各个结构进行共现相似度的分析,相似度其中:N为常量,指代维基百科锚链接的总数目;IA和IB分别指代概念A、B的维基百科页面中某一特定结构(例如:引文、正文、属类)中锚链接的集合;由于维基百科页面中的结构如:引文(Abstract)、正文(Text)、属类(Category)中的锚链接集合均能良好反映概念的含义,因此分别基于上述三种结构进行NGD的计算,得到三个不同的特征值;另外,由于属类(Category)结构能明确表示上下位的关系,若概念A包含在概念B的属类(Category)的锚链接集合中或概念B包含在概念A的属类(Category)锚链接的集合中,则为计算的属类结构NGD值等于当前计算结果加附加系数V,根据NGD在本实施例中的取值范围,设定附加系数V=0.05;所述的基于维基结构的结构体信息相似度是指:维基百科为每个概念提供了大纲(guideline)和信息框(infobox)两个维基结构,上述两个结构体都通过关键字来体现概念的主要信息,其中大纲(guideline)主要描述当前概念维基页面主要从哪几个方面进行描述,而信息框(infobox)主要描述当前概念所具有的特性和属性;而关联密切的软件工程领域概念往往具有较为相近的大纲(guideline)和信息框(infobox)结构,因此通过如下Jaccard对结构所描述信息的相似度进行计算,其中:KA和KB表示概念A、B分别在结构体(大纲或信息框)中的关键字集合;本实施例分别根据大纲和信息框两种结构,分别进行两次结构体信息相似度的计算;所述的基于KL散度的主题分布相似度是指:对于存在上下位关系的软件工程领域概念,部分概念不具备完整的维...

【专利技术属性】
技术研发人员:董翔沈备军陈凯
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1