著录项信息
专利名称 | 一种基于图形数据库的bug知识建模方法 |
申请号 | CN201610093334.7 | 申请日期 | 2016-02-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-05-25 | 公开/公告号 | CN105608232A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F16/51 | IPC分类号 | G;0;6;F;1;6;/;5;1;;;G;0;6;F;1;6;/;3;6查看分类表>
|
申请人 | 扬州大学 | 申请人地址 | 江苏省扬州市大学南路88号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 扬州大学 | 当前权利人 | 扬州大学 |
发明人 | 孙小兵;徐淑华;李斌;王璐 |
代理机构 | 南京中新达专利代理有限公司 | 代理人 | 孙鸥;朱杰 |
摘要
本发明涉及一种基于图形数据库的bug知识建模方法。对bug信息的短文本内容做术语抽取,采用TF‑IDF标准选取在文档中相对重要的词汇。综合抽取的到的术语,bugzilla提供的keywords和人工建立的词典构建特征向量,采用基于K‑Medoids优化的KNN算法对简述信息(bugMSG)、描述信息(description)、评论信息(comment)这三种文本分别分类,从而实现对应bug的分类。本发明克服了现在搜索方法存在的复杂、互链接、低结构化的数据变化和大量的表连接,搜索效率低等缺陷。本发明从图形数据库入手为bug信息的数据库做优化,不仅仅局限于单个问题的解决,而是可以提供多角度的关联,图数据库是一种高性能的用于存储数据的数据结构方式。
1.一种基于图形数据库的bug知识建模方法,其特征在于如下步骤:
(1)从历史bug信息中抽取bug的关键文本内容,包括简述信息-bugMSG、描述信息-description、评论信息-comment;再从历史bug信息中抽取关键属性;
(2)将抽取的bug信息中的关键文本内容做基于内容的文本分析,采用TF-IDF标准抽取重要概念,作为关键词;对抽取的关键属性建立结构化数据模型;
(3)考虑用户的应用场景,人工建立词典,并将步骤(2)中识别的关键词,bugzilla中提供的keywords列表信息一起加入到构建的bug词典中;将建立的结构化数据模型导入到关系数据库中;
(4)根据词典构建特征向量,采用基于K-Medoids优化的KNN算法对简述信息-bugMSG、描述信息-description、评论信息-comment这三种文本进行分类,根据文本与bug之间的对应关系实现其对应bug分类;
(5)建立实体关系,基于属性中的status、component和product对bug进行标签;基于bug属性中的duplicate、dependsOn和blocks,建立bug与bug之间的关系;基于reporter、assigned to和CClist建立bug与人员之间的关系;最后,基于之前的分类,建立分类的层次关系及人员的领域关系;
(6)将关系数据库中的数据以及建立的实体关系以CVS文件的形式导入到Neo4J图形数据库中。
一种基于图形数据库的bug知识建模方法\n技术领域\n[0001] 本发明属于软件调试领域,特别涉及一种基于图形数据库的bug知识建模方法。\n背景技术\n[0002] 对于软件bug的维护是贯穿于软件生命周期始终的。当一个软件从业人员遇到一个棘手的软件bug时,一个高效的、知识多维度的bug搜索引擎对于帮助其更好地理解和解决遇到的bug就显得十分的重要。当他进行搜索时,搜索引擎不仅能返回与搜索内容相关的bug,同时还能返回与其所搜索的bug存在联系的其他bug。\n[0003] 本发明作出之前,到目前为止,还没有结合知识图谱的bug搜索引擎,而大部分的搜索还过于表面,返回的只是一级关联内容,并不深入,不利于开发人员解决问题。现有的以关系数据库为支撑的搜索,在处理大量复杂、互链接、低结构化的数据变化和查询时会导致大量的表连接,使搜索陷入超链接表的泥沼,降低了搜索效率;其次,随着数据集大小不断增大,数据之间关联的可信度会不断降低,从而导致性能上的问题,而且在设计使用上也很不方便,一旦数据模式发生变化,相应的维护成本会很高昂。\n发明内容\n[0004] 本发明的目的就在于克服上述缺陷,研制一种基于图形数据库的bug知识建模方法。\n[0005] 本发明的技术方案是:\n[0006] 一种基于图形数据库的bug知识建模方法,其主要技术特征在于如下步骤:\n[0007] (1)从历史bug信息中抽取bug的关键文本内容,包括简述信息-bugMSG、描述信息-description、评论信息-comment;再从历史bug信息中抽取关键属性;\n[0008] (2)将抽取的bug信息中的关键文本内容做基于内容的文本分析,采用TF-IDF标准抽取重要概念,作为关键词;对抽取的关键属性建立结构化数据模型;\n[0009] (3)考虑用户的应用场景,人工建立词典,并将步骤(2)中识别的关键词,bugzilla中提供的keywords列表信息一起加入到构建的bug词典中;将建立的结构化数据模型导入到关系数据库中;\n[0010] (4)根据词典构建特征向量,采用基于K-Medoids优化的KNN算法对简述信息-bugMSG、描述信息-description、评论信息-comment这三种文本进行分类,根据文本与bug之间的对应关系实现其对应bug分类;\n[0011] (5)建立实体关系,基于属性中的status、component和product对bug进行标签;基于bug属性中的duplicate、dependsOn和blocks,建立bug与bug之间的关系;基于reporter、assigned to和CClist建立bug与人员之间的关系;最后,基于之前的分类,建立分类的层次关系及人员的领域关系;\n[0012] (6)将关系数据库中的数据以及建立的实体关系以CVS文件的形式导入到Neo4J图形数据库中。\n[0013] 本发明是为了对bug知识的数据库做一个优化,帮助开发人员更好地了解bug更快的加深对软件的理解。对bug信息的短文本内容做术语抽取,采用TF-IDF标准选取在文档中相对重要的词汇。综合抽取的到的术语,bugzilla提供的keywords和人工建立的词典构建特征向量,采用基于K-Medoids优化的KNN算法对简述信息(bugMSG)、描述信息(description)、评论信息(comment)这三种文本分别分类,从而实现对应bug的分类。\n[0014] 本发明的优点和效果在于从图形数据库入手为bug信息的数据库做优化。有利于软件从业人员通过遇到的bug来加深对整个软件的理解从而更好的解决问题提高自己。主要由如下一些优点:\n[0015] (1)本发明可以为软件开发人员在对一个bug的查询时,不仅仅局限于单个问题的解决,而是可以提供多角度的关联。\n[0016] (2)我们的方法基于图数据库,图数据库是一种高性能的用于存储数据的数据结构方式。\n附图说明\n[0017] 图1——本发明建模流程示意图。\n[0018] 图2——本发明爬取的bug在mysql中的截图。\n[0019] 图3——本发明bug信息的ER模型示意图。\n[0020] 图4——本发明图数据库模型示例图。\n[0021] 图5——本发明图数据库逻辑模型示意图。\n[0022] 图6——本发明基于K-Medoids优化的KNN分类算法流程示意图。\n[0023] 图7——本发明bug1004833的历史bug report截图。\n[0024] 图8——本发明bug1004833相关的部分图数据库示意图。\n具体实施方式\n[0025] 本发明的技术思路是:\n[0026] 本发明的方法是为了对bug知识的数据库做一个优化,帮助开发人员更好地了解bug更快的加深对软件的理解。对bug信息的短文本内容做术语抽取,采用TF-lDF标准选取在文档中相对重要的词汇。综合抽取的到的术语,bugzilla提供的keywords和人工建立的词典构建特征向量,采用基于K-Medoids优化的KNN算法对简述信息(bugMSG)、描述信息(description)、评论信息(comment)这三种文本分别分类,从而实现对应bug的分类。\n[0027] 一个以知识图谱为依托的搜索系统,能带给用户全新的搜索体验,为用户提供知识而不仅仅是信息,这就需要一个基于图形数据库的bug知识图谱来为整个系统做数据支撑。\n[0028] 术语抽取,在本体构建过程中,术语是知识图谱中概念、实体或属性的语言学上的标识形式,术语抽取的目标是找到用于表示概念、实体或属性的相关术语或标记集合。术语抽取通常采用基于语言学规则的方法和使用统计的方法,常用的模式有“形容词-名词”短语、“名词-名词”短语和“名词-介词-名词”短语等;最后使用统计学方法比较分析语料中术语的分布特征。统计学基准有TF-IDF(Term Frequency-Inverse Document Frequency)、卡方分布(Chi-Square)和互信息(Mutual Information)等。本发明采用TF-IDF标准。TF-IDF标准,一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。\n[0029] 实体分类,由于bug的status、component和product属性的取值范围比较小,只以这些属性的值为标签,并不能很好的对bug实体和人员实体进行分类,本发明采用基于K-Medoids优化的KNN算法,利用提取的重要术语和keywords库和人工建立的词典,构造特征向量来实现分类。\n[0030] 图数据库用图来存储数据,是一种有效的用于存储数据的数据结构方式之一。最简单的图是单节点的,一个记录,记录了一些属性。一个节点可以从单属性开始,成长为成千上亿,图数据库是将数据用关系连接起来分布到不同节点上的。对于图数据库它的查询时间是随着查询的深入而线性增长的,而不是随着数据集的总体大小增长,这样既能确保查询的深度,也不会降低查询的性能。图数据库的存储由图和索引构成,图包含了结点和关系,索引可以指向节点、关系和属性;图数据库的查询按一定的规则,寻找图或沿着路径寻找结点,图5展示了图数据库的逻辑结构。Neo4j是一个开源图数据库,用高效的图数据结构代替传统的表设计。\n[0031] 下面具体说明本发明。\n[0032] 如图1所示,其步骤如下:\n[0033] 1).从bugzilla爬取半结构化的bug report信息并暂时存入mysql(如图2),识别提取实体、概念及属性,主要有bug实体和人员实体及相关的属性和概念,抽取关键属性和关键文本内容即bug的简述信息-bugMSG、描述信息-description、评论信息-comment,对抽取到的结构化属性建立关于bug的关系数据库,图3展示了bug信息的ER图。\n[0034] 2).将步骤1)中抽取的bug的简述信息(bugMSG)、描述信息(description)、评论信息(comment)中的文本做基于内容的文本分析,抽取术语,作为特征向量的元素。其中术语抽取采用TF-IDF基准,公式如下:\n[0035]\n[0036] 其中,tf(w)表示词频,df(w)为文档频率,N为总文档数目。其直观含义为词汇在文档中的相对重要程度。\n[0037] 3).考虑用户的应用场景,人工建立词典,并将步骤2)中识别的重要词汇,bugzilla中提供的keywords加入到词典中一起用于构建特征向量。\n[0038] 4).根据步骤3)中建立的特征向量,采用基于K-Medoids优化的KNN算法对简述信息(bugMSG)、描述信息(description)、评论信息(comment)这三种文本进行分类,根据文本与bug之间的对应关系实现其对应bug的分类(分类流程图如图6)。\n[0039] 5).建立实体关系,基于属性中的status、component和product对bug进行标签;基于bug属性中的duplicate、dependsOn和bIocks,建立bug与bug之间的关系;基于reporter、assigned to和CClist建立bug与人员之间的关系;最后,基于之前的分类,建立分类的层次关系及人员的领域关系。以bug1004833为例,抽取其在历史bug库中的相关信息(如图7),对抽取到的关键属性按关系数据库的bug数据模式进行存储,并对它的简述信息(bugMSG)、描述信息(description)、评论信息(comment)进行分析,抽取关键词汇进行分类(如图8)。\n[0040] 6).将关系数据库中的数据以及建立的实体关系以CVS文件的形式导入到Neo4J图形数据库中。图4展示的是最简单的图数据库的模型,图数据库的每一个实体是一个节点,实体包含属性,实体之间的关系对应连接实体的边。整个图数据库的逻辑结构如图8所示,图数据库由不同的图组成,既可以直接查询节点、关系、属性也可以遍历图或者通过路径直接寻找节点。图数据库的节点与关系的增删是十分方便的,这也有利于降低维护成本。
法律信息
- 2019-01-15
- 2016-06-22
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201610093334.7
申请日: 2016.02.17
- 2016-05-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2015-04-22
|
2015-01-23
| | |
2
| |
2010-01-13
|
2009-08-05
| | |
3
| |
2010-08-25
|
2010-05-11
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |