当前位置: 首页 > 专利查询>扬州大学专利>正文

一种基于模板的软件缺陷自动问答方法技术

技术编号:21477553 阅读:26 留言:0更新日期:2019-06-29 04:48
本发明专利技术公开了一种基于模板的软件缺陷自动问答方法,属于软件维护领域,该方法首先从bug语料库中提取实体关系三元组,并获取自然语言模式;然后确定三元组中的实体关系;之后获取自然语言模式对应的查询模板;然后将用户提出的问题q中的实体替换为实体类型获得问题q’;之后将q’中的实体类型和自然语言模式中的实体类型进行对比查找和相似度计算;再根据相似度、问题q中的实体获取问题q的SPARQL查询模式;最后在由bug报告构建的实体关系图上搜索执行问题q的SPARQL查询模式,从而获得问题q的答案。本发明专利技术的方法采用模板进行自然语言语义理解,理解效果好,并且基于实体类型进行模板匹配,大大减少了搜索空间,提高了软件缺陷自动问答的效率。

【技术实现步骤摘要】
一种基于模板的软件缺陷自动问答方法
本专利技术属于软件维护领域,特别是一种基于模板的软件缺陷自动问答方法。
技术介绍
软件开发人员和维护人员为了解决自己所遇到的一些新的软件缺陷,通常会需要借助搜索引擎以及软件缺陷库来对软件缺陷相关信息进行问答。但是,搜索引擎一般是以关键词的组合逻辑来表达检索需求,而用户的检索需求常常是复杂而特殊的,搜索引擎无法详尽准确地理解用户意图,自然无法检索出令用户满意的答案。而且,这些软件缺陷库大多数采用基于传统的关系数据库的搜索方法,搜索得到的结果虽然包含了软件缺陷大量的信息和属性,但是这些信息和属性常常与自己所想知道的问题相关性不大,不能够很好地帮助自己修复新的软件缺陷。此外,在搜索引擎和软件缺陷库中进行软件缺陷信息的检索方法是直接采用关键字匹配技术,搜索空间很大,非常耗费时间,并且仅依靠关键词检索所得到的搜索结果并不准确。这样的问答方式使得搜索者很难找到自己真正需要的信息,耗时耗力。
技术实现思路
本专利技术所解决的技术问题在于提供一种能够很好地理解软件开发者和维护者提出的bug问题,并且回答效率高的软件缺陷自动问答方法。实现本专利技术目的的技术解决方案为:一种基于模板的软件缺陷自动问答方法,包括以下步骤:步骤1、针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R;步骤2、根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系;步骤3、根据自然语言模式集S和实体关系三元组获取自然语言模式集S中每个自然语言模式对应的查询模板;步骤4、针对用户提出的问题q,识别q中的实体并将其替换为实体类型获得问题q’;步骤5、根据步骤4获得的问题q’中的实体类型和步骤1获得的自然语言模式集S中的实体类型,获取问题q的候选查询模式,并求取每个候选查询模式与q’之间的相似度;步骤6、结合SPARQL查询语言,根据步骤3获得的查询模板、步骤5获得的候选查询模式与q’之间的相似度、问题q中的实体获取问题q的SPARQL查询模式λ(q);步骤7、由bug报告构建实体关系图G,并在该图G上搜索执行步骤6获得的λ(q),从而获得问题q的答案。本专利技术与现有技术相比,其显著优点:1)本专利技术的方法采用模板进行问答信息的理解,提高了对软件缺陷信息理解的准确性,为问答奠定了基础,也在一定程度上增强了自动问答的准确度;2)本专利技术的方法采用基于实体类型进行自然语言模式搜索,大大减少了搜索空间,提高了查询的效率;3)本专利技术的方法依据软件缺陷库信息构建文本语料,根据实体类型进行实体识别,提高了实体识别的准确度,为后续实体和实体类型的相互转换提供了基础;4)本专利技术的方法所采用的文本语料和实体关系图有相同的来源,即软件缺陷库,增强了软件缺陷自动问答的可行性;5)本专利技术的方法采用模板进行自动问答,响应速度快,查询效率高。下面结合附图对本专利技术作进一步详细描述。附图说明图1为本专利技术基于模板的软件缺陷自动问答方法的流程图。图2为本专利技术实施例中bug59908的bug报告示意图。图3为本专利技术实施例中支持实例、自然语言模式和谓词组成的模式三部图。具体实施方式结合图1,本专利技术一种基于模板的软件缺陷自动问答方法,包括以下步骤:步骤1、针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R;步骤2、根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系;步骤3、根据自然语言模式集S和实体关系三元组获取自然语言模式集S中每个自然语言模式对应的查询模板;步骤4、针对用户提出的问题q,识别q中的实体并将其替换为实体类型获得问题q’;步骤5、根据步骤4获得的问题q’中的实体类型和步骤1获得的自然语言模式集S中的实体类型,获取问题q的候选查询模式,并求取每个候选查询模式与q’之间的相似度;步骤6、结合SPARQL查询语言,根据步骤3获得的查询模板、步骤5获得的候选查询模式与q’之间的相似度、问题q中的实体获取问题q的SPARQL查询模式λ(q);步骤7、由bug报告构建实体关系图G,并在该图G上搜索执行步骤6获得的λ(q),从而获得问题q的答案。进一步地,步骤1所述针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R,具体为:步骤1-1、从bug报告中提取某些bug属性信息构成bug文本语料库D,提取D中的实体关系三元组集E;步骤1-2、针对实体关系三元组集E中的每个实体关系三元组e,从D中提取满足该实体关系三元组e的候选提及;所述候选提及具体为:文本语料库D中同时包含该实体关系三元组e的两个实体的句子集合;其中,e=<v1,r,v2>∈E式中,v1、v2均为实体,r为关系;步骤1-3、将步骤1-2获取的候选提及中的实体替换为实体对应的实体类型,从而获得每个实体关系三元组e对应的自然语言模式,所有的自然语言模式构成自然语言模式集S;其中,实体指bug属性的具体描述,实体类型指bug的属性;步骤1-4、文本语料库D中所有的实体以及实体关系构成支持实例集I,所有的谓词构成谓词集R;其中,实体关系包括前后继关系、重复关系,具体通过谓词体现,如情态动词、助动词、be动词等。优选地,步骤1-1中bug属性信息包括:BugID、Product、Component、Reported、Modified、Assignee、Reporter、QAContact、Summary、Description信息。进一步地,步骤2所述根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系,具体为:步骤2-1、构造由支持实例集I、自然语言模式集S和谓词集R组成的模式三部图;具体为:对于任意自然语言模式s∈S,如果存在(v1,v2)为s的支持实例,则在(v1,v2)和s之间存在边,并且对于任意的谓词r∈R,如果存在r是自然语言模式s的支持实例中两个实体之间的关系,则在s和r之间存在边;步骤2-2、根据模式三部图并结合相似度测量方法,针对自然语言模式集S中的每个元素s,求取其与R中每个元素r的相似度,将最大相似度值对应的r作为s的实体关系,所有实体关系构成的集合即为实体关系三元组集E中的实体关系。进一步地,步骤3所述根据自然语言模式集S和实体关系三元组获取自然语言模式集S中每个自然语言模式对应的查询模板,具体为:针对自然语言模式集S中每个自然语言模式,步骤3-1、根据自然语言模式的实体类型,确定每个实体对应的疑问词wh-;步骤3-2、根据步骤3-1确定的疑问词,确定如何处理相应的实体;若确定的疑问词为which,则将实体类型移至which之后,否则,将实体类型删除;步骤3-3、根据自然语言模式对应的句子中的主体,添加助动词或者情态动词,由此获得一个完整的疑问句记为问题模式;步骤3-4、将实体关系三元组<v1,r,v2>参数化,并利用SPARQL查询语言将问题模式、参数化后的实体关系三元组生成SPARQL查询模式,即所述自然语言模式对应的查询模板。优选地,步骤3-4中将实体关系三元组<v1,r,v2>参数化,具体为:采用实体类型替代三元组中的实体。进本文档来自技高网...

【技术保护点】
1.一种基于模板的软件缺陷自动问答方法,其特征在于,包括以下步骤:步骤1、针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R;步骤2、根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系;步骤3、根据自然语言模式集S和实体关系三元组获取自然语言模式集S中每个自然语言模式对应的查询模板;步骤4、针对用户提出的问题q,识别q中的实体并将其替换为实体类型获得问题q’;步骤5、根据步骤4获得的问题q’中的实体类型和步骤1获得的自然语言模式集S中的实体类型,获取问题q的候选查询模式,并求取每个候选查询模式与q’之间的相似度;步骤6、结合SPARQL查询语言,根据步骤3获得的查询模板、步骤5获得的候选查询模式与q’之间的相似度、问题q中的实体获取问题q的SPARQL查询模式λ(q);步骤7、由bug报告构建实体关系图G,并在该图G上搜索执行步骤6获得的λ(q),从而获得问题q的答案。

【技术特征摘要】
1.一种基于模板的软件缺陷自动问答方法,其特征在于,包括以下步骤:步骤1、针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R;步骤2、根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系;步骤3、根据自然语言模式集S和实体关系三元组获取自然语言模式集S中每个自然语言模式对应的查询模板;步骤4、针对用户提出的问题q,识别q中的实体并将其替换为实体类型获得问题q’;步骤5、根据步骤4获得的问题q’中的实体类型和步骤1获得的自然语言模式集S中的实体类型,获取问题q的候选查询模式,并求取每个候选查询模式与q’之间的相似度;步骤6、结合SPARQL查询语言,根据步骤3获得的查询模板、步骤5获得的候选查询模式与q’之间的相似度、问题q中的实体获取问题q的SPARQL查询模式λ(q);步骤7、由bug报告构建实体关系图G,并在该图G上搜索执行步骤6获得的λ(q),从而获得问题q的答案。2.根据权利要求1所述的基于模板的软件缺陷自动问答方法,其特征在于,步骤1所述针对bug报告,提取实体关系三元组集E,并根据实体关系三元组集E获取自然语言模式集S、支持实例集I和谓词集R,具体为:步骤1-1、从bug报告中提取某些bug属性信息构成bug文本语料库D,提取D中的实体关系三元组集E;步骤1-2、针对实体关系三元组集E中的每个实体关系三元组e,从D中提取满足该实体关系三元组e的候选提及;所述候选提及具体为:文本语料库D中同时包含该实体关系三元组e的两个实体的句子集合;其中,e=<v1,r,v2>∈E式中,v1、v2均为实体,r为关系;步骤1-3、将步骤1-2获取的候选提及中的实体替换为实体对应的实体类型,从而获得每个实体关系三元组e对应的自然语言模式,所有的自然语言模式构成自然语言模式集S;其中,实体指bug属性的具体描述,实体类型指bug的属性;步骤1-4、文本语料库D中所有的实体以及实体关系构成支持实例集I,所有的谓词构成谓词集R;其中,实体关系包括前后继关系、重复关系,具体通过谓词体现。3.根据权利要求2所述的基于模板的软件缺陷自动问答方法,其特征在于,步骤1-1所述bug属性信息包括:BugID、Product、Component、Reported、Modified、Assignee、Reporter、QAContact、Summary、Description信息。4.根据权利要求3所述的基于模板的软件缺陷自动问答方法,其特征在于,步骤2所述根据步骤1获得的自然语言模式集S,确定实体关系三元组集E中的实体关系,具体为:步骤2-1、构造由支持实例集I、自然语言模式集S和谓词集R组成的模式三部图;具体为:对于任意自然语言模式s∈S,如果存在(v1,v2)为s的支持实例,则在(v1,v2)和s之间存在边,并且对于任意的谓词r∈R,如果存在r是自然语言模式s的支持实例中两个...

【专利技术属性】
技术研发人员:孙小兵陆金婷李斌
申请(专利权)人:扬州大学
类型:发明
国别省市:江苏,32

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

1