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等平台获取。首先,获得其中一个一般领域的知识库或知识平台,然后通过人工验证、类别验证(根据知识库中标注的类别,选取相关类别抽取知识集)的方式,将其中关于软件工程领域的知识分离出来构造集合,并进行结构化的构建, ...
【技术保护点】
一种基于半监督学习的软件工程知识库的自动化构建实现方法,其特征在于,包括以下步骤:步骤一、以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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。