首页 / 专利库 / 计算机网络 / 软件缺陷 / 面向软件缺陷知识的知识搜索方法

面向软件缺陷知识的知识搜索方法

阅读:554发布:2020-05-18

专利汇可以提供面向软件缺陷知识的知识搜索方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向 软件 缺陷 知识的知识搜索方法,属于软件开发与维护领域,包括以下步骤:对用户输入的搜索问句进行预处理以形成问句的语法依赖树;根据语法依赖树 抽取 问题语义三元组,该三元组包括主语、关系与宾语;将问题语义三元组与现有的 软件缺陷 知识图谱三元组库进行匹配,获得匹配三元组集合;根据匹配三元组集合构建搜索结果子图,并返回给用户。本发明方法针对软件缺陷领域用户可能会搜索的问题条件进行语义分析,并结合知识图谱、 自然语言处理 这些日益成熟的技术将用户的问题转 化成 结构化的查询语言并和已有的知识图谱相关联,能够实现更好的搜索交互过程,为软件开发和维护领域提供良好的缺陷信息搜索平台,辅助修复过程。,下面是面向软件缺陷知识的知识搜索方法专利的具体信息内容。

1.一种面向软件缺陷知识的知识搜索方法,其特征在于,包括以下步骤:
步骤1、对用户输入的搜索问句S进行预处理以形成问句的语法依赖树T;
步骤2、根据语法依赖树T抽取问题语义三元组,该三元组包括主语、关系与宾语;
步骤3、将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行匹配,获得匹配三元组集合;
步骤4、根据匹配三元组集合构建搜索结果子图,并返回给用户。
2.根据权利要求1所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤1所述预处理具体为自然语言处理,包括分词、词性标注以及句法分析。
3.根据权利要求1或2所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤2所述根据语法依赖树T抽取问题语义三元组,该三元组包括主语、关系与宾语,具体为:
根据语法依赖树T,分析词与词之间的依存关系即语法关系,并识别经步骤1预处理后问句S中的动词短语VP、名词短语NP,从而抽取出问题语义三元组为QTripe(NP1,VP1,NP2),其中第一名词短语NP1作为主语,第二名词短语NP2作为宾语,动词短语VP1作为NP1与NP2两者之间的语义关系。
4.根据权利要求1所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤3所述将问题语义三元组与现有的软件缺陷知识图谱三元组库进行匹配,获得匹配三元组集合,具体为:
步骤3-1、将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行实体匹配,实现问题语义三元组的实体与现有软件缺陷知识图谱的实体关联,获得实体匹配三元组集合;
步骤3-2、结合步骤3-1的实体匹配三元组集合进行关系匹配,实现问题语义三元组的关系与现有软件缺陷知识图谱的关系相关联,获得匹配三元组集合。
5.根据权利要求4所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤3-1所述将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行实体匹配,具体为:
步骤3-1-1、在字符层面进行实体匹配,获得初步实体匹配三元组集合,具体为:
(1)求取问题语义三元组中实体与软件缺陷知识图谱三元组库中每个三元组t中实体的相似度P(w1,w2),所用公式为:
式中,w1、w2分别表示问题语义三元组的实体、软件缺陷知识图谱三元组库中三元组中的实体,n(w1,w2)表示实体w1、w2中不同字符的个数,l(w1)表示实体w1的长度,l(w2)表示主体w2的长度;
由上获得问题语义三元组与软件缺陷知识图谱三元组库中每个三元组t的两个实体相似度P1、P2;
(2)判断实体相似度P1、P2与设定阈值f1之间的关系,若P1、P2均大于设定阈值f1,则软件缺陷知识图谱三元组库中三元组t与问题语义三元组相匹配;软件缺陷知识图谱三元组库中所有与问题语义三元组匹配的三元组t构成初步实体匹配三元组集合;
步骤3-1-2、基于语义相似度进行实体匹配,具体为:
(1)采用词向量word2vec模型将问题语义三元组中的实体与初步实体匹配三元组集合中每个三元组t中的实体均映射为空间向量;
(2)求取空间向量之间的欧式距离作为实体相似度,每个三元组t均获得两个实体相似度q1、q2,判断实体相似度q1、q2与设定阈值f2之间的关系,若q1、q2均大于设定阈值f2,则初步实体匹配三元组集合中三元组t与问题语义三元组相匹配;初步实体匹配三元组集合中所有与问题语义三元组匹配的三元组t构成最终的实体匹配三元组集合。
6.根据权利要求5所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤3-2所述结合步骤3-1的实体匹配三元组集合进行关系匹配,实现问题语义三元组的关系与现有软件缺陷知识图谱的关系相关联,获得匹配三元组集合,具体为:
针对问题语义三元组的关系r,获取实体匹配三元组集合中所有满足关系r的匹配三元组集合Tripe(r):
Tripe(r)={(ei,ej):(ei,r,ej)∈T}
式中,1≤i≤j≤n,ei、ej均表示缺陷实体节点,r表示缺陷实体对应的关系,n表示软件缺陷知识图谱中缺陷实体总数,T表示实体匹配三元组集合。
7.根据权利要求6所述的面向软件缺陷知识的知识搜索方法,其特征在于,步骤4所述根据匹配三元组集合构建搜索结果子图,并返回给用户,具体为:
针对匹配三元组集合Tripe(r)中的每个三元组t:
t=(es,rt,em)
式中,1≤s≤m≤n,es、em均表示缺陷实体节点,rt表示缺陷实体之间对应的关系;
将每个三元组t表示为一条边,若两个边共享某一个实体节点,则将三元组对应的实体节点合并,重复该过程直至遍历完整个匹配三元组集合,以此将匹配三元组集合Tripe(r)合并为一个结构化的搜索结果子图,并将搜索结果子图返回给用户。

说明书全文

面向软件缺陷知识的知识搜索方法

技术领域

[0001] 本发明属于软件开发与维护领域,特别是一种面向软件缺陷知识的知识搜索方法。

背景技术

[0002] 缺陷是软件维护过程中必须面临的问题。随着网络大数据时代的到来,越来越多的软件开发和维护人员更愿意在网络上交流和搜索相关的缺陷问题。
[0003] 目前,传统的基于关键词的缺陷搜索方法存在很明显的不足:一方面,首先,用户需要明确自己想要搜索的关键词,并且若是多个关键词,关键词之间的逻辑关系只能是“和”、“或”的关系;其次,这样的关键词匹配到的搜索结果范围广,并且相互之间没有关联性。另一方面,用户输入的自然语言本身又存在多义性、局限性等难点,这往往会造成搜索结果返回的是低质量和相关性低的内容,导致搜索质量的下降,从而使得用户搜索频率降低,用户体验差的恶性循环。传统的搜索技术主要以关键词匹配为核心,但目前缺陷数据总量巨大,并且有着复杂的知识结构,关键词匹配搜索的结果不再能够满足用户的需求,且返回的结果往往只能反应词与词的直接关系,忽视了缺陷之间的关联性。
[0004] 正是由于基于关键词匹配的传统搜索方式存在返回内容冗余,不精确,用户体验差等问题,智能化的知识搜索成为目前越来越热的课题。现阶段的智能化搜索工作主要是基于知识图谱开展的。知识图谱这一概念是Google公司为自己的搜索引擎提出的,它具体是描述现实中各种存在关联的实体以及概念,而这对于搜索的智能化有着重要的作用。基于知识图谱进行智能化知识搜索的核心是如何将非结构化的自然语言问句映射到结构化的SPARQL查询语句。目前,解决这一核心问题的思路主要分为三种:首先,“True Knowledge:Open-Domain Question Answering Using Structured Knowledge and Inference”一文通过人工定义模板,将某一类型的问题集映射到对应的结构化查询语句。
这一种方法人工定义模板代价高,并且可拓展性差。其次,“Natural language question answering over RDF:a graph data driven approach”一书将自然语言查询语句直接映射到语义查询图的方法。这一种方法通过抽取查询语句的三元组,并将这些三元组中指向同一实体的节点关联起来,该方法只是从实体层面考虑与知识库的关联性,忽略了实体之间关系的重要性。另外,“How to Build Templates for RDF Question/Answering:An Uncertain Graph Similarity Join Approach”一文针对手工定义模板的工作量提出了一种自动化模板生成方法,但由于缺陷问题数量过大、类型过多,这一方法并不适用于软件开发和维护领域。
[0005] 综上可知,对于软件开发和维护领域,传统的基于关键词的搜索方式不再适用于复杂且关联性强的缺陷数据,而目前基于知识图谱的智能化搜索方法仍然需要大量的人工且可拓展性差。

发明内容

[0006] 本发明的目的在于结合软件缺陷领域问题语句的相关特征,提供一种面向软件缺陷知识的智能化知识搜索方法。
[0007] 实现本发明目的的技术解决方案为:一种面向软件缺陷知识的知识搜索方法,包括以下步骤:
[0008] 步骤1、对用户输入的搜索问句S进行预处理以形成问句的语法依赖树T;
[0009] 步骤2、根据语法依赖树T抽取问题语义三元组,该三元组包括主语、关系与宾语;
[0010] 步骤3、将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行匹配,获得匹配三元组集合;
[0011] 步骤4、根据匹配三元组集合构建搜索结果子图,并返回给用户。
[0012] 本发明与现有技术相比,其显著优点为:1)本发明的知识搜索方法,可以接受用户的自然语言提问作为输入,相比传统的关键词搜索,可以方便用户更准确的描述缺陷问题,从而精确结果范围;2)通过实体和关系两个度进一步挖掘缺陷之间的隐形关系,优化搜索结果;3)本发明方法返回的搜索结果是三元组子图的形式,各实体节点关联性强,结果更加准确;4)本发明基于软件缺陷知识图谱,从专业领域的角度返回搜索结果,相比于传统搜索方式效果好。
[0013] 下面结合附图对本发明作进一步详细描述。

附图说明

[0014] 图1为本发明面向软件缺陷知识的知识搜索方法的流程图
[0015] 图2为本发明实施例输入问题对应的缺陷报告BugID#1387015截图。
[0016] 图3为本发明实施例输入问题的语法依赖图。
[0017] 图4为本发明实施例的搜索结果子图。

具体实施方式

[0018] 结合图1,本发明面向软件缺陷知识的知识搜索方法,包括以下步骤:
[0019] 步骤1、对用户输入的搜索问句S进行预处理以形成问句的语法依赖树T;
[0020] 步骤2、根据语法依赖树T抽取问题语义三元组,该三元组包括主语、关系与宾语;
[0021] 步骤3、将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行匹配,获得匹配三元组集合;
[0022] 步骤4、根据匹配三元组集合构建搜索结果子图,并返回给用户。
[0023] 进一步地,步骤1中预处理具体为自然语言处理,包括分词、词性标注以及句法分析。
[0024] 进一步地,步骤2中根据语法依赖树T抽取问题语义三元组,该三元组包括主语、关系与宾语,具体为:
[0025] 根据语法依赖树T,分析词与词之间的依存关系即语法关系,并识别经步骤1预处理后问句S中的动词短语VP、名词短语NP,从而抽取出问题语义三元组为QTripe(NP1,VP1,NP2),其中第一名词短语NP1作为主语,第二名词短语NP2作为宾语,动词短语VP1作为NP1与NP2两者之间的语义关系。
[0026] 进一步地,步骤3将问题语义三元组与现有的软件缺陷知识图谱三元组库进行匹配,获得匹配三元组集合,具体为:
[0027] 步骤3-1、将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行实体匹配,实现问题语义三元组的实体与现有软件缺陷知识图谱的实体关联,获得实体匹配三元组集合;
[0028] 步骤3-2、结合步骤3-1的实体匹配三元组集合进行关系匹配,实现问题语义三元组的关系与现有软件缺陷知识图谱的关系相关联,获得匹配三元组集合。
[0029] 进一步地,步骤3-1将所述问题语义三元组与现有的软件缺陷知识图谱三元组库进行实体匹配,具体为:
[0030] 步骤3-1-1、在字符层面进行实体匹配,获得初步实体匹配三元组集合,具体为:
[0031] (1)求取问题语义三元组中实体与软件缺陷知识图谱三元组库中每个三元组t中实体的相似度P(w1,w2),所用公式为:
[0032]
[0033] 式中,w1、w2分别表示问题语义三元组的实体、软件缺陷知识图谱三元组库中三元组中的实体,n(w1,w2)表示实体w1、w2中不同字符的个数,l(w1)表示实体w1的长度,l(w2)表示主体w2的长度;
[0034] 由上获得问题语义三元组与软件缺陷知识图谱三元组库中每个三元组t的两个实体相似度P1、P2;
[0035] (2)判断实体相似度P1、P2与设定阈值f1之间的关系,若P1、P2均大于设定阈值f1,则软件缺陷知识图谱三元组库中三元组t与问题语义三元组相匹配;软件缺陷知识图谱三元组库中所有与问题语义三元组匹配的三元组t构成初步实体匹配三元组集合;
[0036] 步骤3-1-2、基于语义相似度进行实体匹配,具体为:
[0037] (1)采用词向量word2vec模型将问题语义三元组中的实体与初步实体匹配三元组集合中每个三元组t中的实体均映射为空间向量;
[0038] (2)求取空间向量之间的欧式距离作为实体相似度,每个三元组t均获得两个实体相似度q1、q2,判断实体相似度q1、q2与设定阈值f2之间的关系,若q1、q2均大于设定阈值f2,则初步实体匹配三元组集合中三元组t与问题语义三元组相匹配;初步实体匹配三元组集合中所有与问题语义三元组匹配的三元组t构成最终的实体匹配三元组集合。
[0039] 进一步地,步骤3-2中结合步骤3-1的实体匹配三元组集合进行关系匹配,实现问题语义三元组的关系与现有软件缺陷知识图谱的关系相关联,获得匹配三元组集合,具体为:
[0040] 针对问题语义三元组的关系r,获取实体匹配三元组集合中所有满足关系r的匹配三元组集合Tripe(r):
[0041] Tripe(r)={(ei,ej):(ei,r,ej)∈T}
[0042] 式中,1≤i≤j≤n,ei、ej均表示缺陷实体节点,r表示缺陷实体对应的关系,n表示软件缺陷知识图谱中缺陷实体总数,T表示实体匹配三元组集合。
[0043] 进一步地,步骤4根据匹配三元组集合构建搜索结果子图,并返回给用户,具体为:
[0044] 针对匹配三元组集合Tripe(r)中的每个三元组t:
[0045] t=(es,rt,em)
[0046] 式中,1≤s≤m≤n,es、em均表示缺陷实体节点,rt表示缺陷实体之间对应的关系;
[0047] 将每个三元组t表示为一条边,若两个边共享某一个实体节点,则将三元组对应的实体节点合并,重复该过程直至遍历完整个匹配三元组集合,以此将匹配三元组集合Tripe(r)合并为一个结构化的搜索结果子图,并将搜索结果子图返回给用户。
[0048] 下面结合实施例对本发明作进一步详细的说明。
[0049] 实施例
[0050] 结合图1,本发明基于面向软件缺陷知识的知识搜索方法,包括以下内容:
[0051] 1、对用户输入的搜索问句S进行预处理,主要包括分词、词性标注、以及句法分析等自然语言处理步骤,最终形成问句的语法依赖树T。本实施例中具体输入的搜索问句S如图2缺陷报告BugID#1387015中的title:“Python wheel artifact should not be gzipped”。本实施例对输入问题经过预处理的结果如下表1所示,生成的语法依赖树T如图3所示。
[0052] 表1 输入问题经过预处理的结果
[0053]
[0054] 2、根据语法依赖树T,分析词与词之间的依存关系即语法关系,并识别经预处理后问句S中的动词短语VP、名词短语NP,从而抽取出问题语义三元组为QTripe(NP1,VP1,NP2),其中第一名词短语NP1作为主语,第二名词短语NP2作为宾语,动词短语VP1作为NP1与NP2两者之间的语义关系。本实施例中生成的问题语义三元组为:(Python_wheel_artifact,should_not_be,gzip)。
[0055] 3、依次通过基于字符层面的相似度比较和基于语义相似度的比较,将上述问题语义三元组与现有的软件缺陷知识图谱三元组库进行实体匹配。
[0056] 4、结合上述问题语义三元组中的关系r:(should_not_be),找到其在软件缺陷知识图谱三元组库所有满足关系r的三元组集合Tripe(r)={(ei,ej):(ei,r,ej)∈T,}。
[0057] 5、将语义三元组集合Tripe(r)中的任意一个三元组(ei,rk,ej)表示为一条边,若两个边共享某一个实体节点,则将三元组对应的实体节点合并,重复该过程直至遍历完整个匹配三元组集合,以此将匹配三元组集合Tripe(r)合并为一个结构化的搜索结果子图如图4所示,图中的BugID是指缺陷领域图谱中该三元组对应的缺陷报告位置,entityi和realtionj对应缺陷领域图谱中的实体和关系。通过子图可以将类似的缺陷问题关联起来,从而帮助用户理解缺陷问题。
[0058] 本发明的方法针对软件缺陷领域用户可能会搜索的问题条件进行语义分析,并结合知识图谱、自然语言处理这些日益成熟的技术将用户的问题转化成结构化的查询语言并和已有的知识图谱相关联。本发明的核心思路是对用户的自然语言先进行语义分析,而后通过语法规则从中抽取语义三元组,并依次通过实体匹配、关系匹配和知识图谱建立关联,最终将语义三元组集合转换成最终的结构化搜索子图返回给用户,能够实现更好的搜索交互过程,可以为软件开发和维护领域提供良好的缺陷信息搜索平台,辅助修复过程。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈