提高软件开发、软件维护的效率和质量的利器

 二维码

提高软件开发、软件维护的效率和质量的利器

SnowGraph可将知识图谱融入机器对无结构文本的处理过程之中,进而为复用者提供准确、有效的智能问答服务,从而提高软件复用过程的效率与质量。

北京大学的邹艳珍副教授所在团队提出了基于大数据的软件项目知识图谱构造及问答方法,设计并实现了相应的软件项目知识图谱构造及智能问答平台SnowGraph,并在Apache开源社区以及国内著名软件企业成功展开应用实践。该技术成果具有很好的通用性与可扩展性,能够对未来可能出现的新的知识需求、知识来源,以及知识抽取、关联、提炼方法进行适应与支持,有效提高了软件项目理解和软件复用的效率。该研究以“基于大数据的软件项目知识图谱构造及问答方法”为题发表在《大数据》2021年第1期。

01 为什么要构建软件知识图谱?

软件项目在其整个生命周期中形成并积累了大量的数据,如源代码、邮件列表、缺陷报告和问答文档等。这些数据中蕴含了规模庞大、结构复杂、语义关联丰富的软件知识,能够帮助软件开发人员理解软件功能,进行软件复用。然而,组织、利用这些知识面临着以下挑战:(1)软件规模扩大引发的软件知识爆炸问题;(2)软件数据中蕴含的信息在多源异构数据中呈碎片化分散的形态;(3)大量信息是以无结构文本的形式表示的,如代码标识符、代码注释、邮件、用户手册、缺陷描述。因此,亟需构建一个语义关联丰富的软件知识图谱。

02 取得了哪些重大突破?

针对上述问题,邹艳珍副教授所在团队设计并实现了相应的软件项目知识图谱构造及智能问答平台SnowGraph,其系统框架如图1所示。

图1 SnowGraph平台的系统框架

具体的,首先针对传统软件项目知识图谱需要开发人员熟悉并掌握Cypher语法,人工将用户意图转化为Cypher查询语句,学习成本较高的问题,邹艳珍副教授所在团队提出了一种基于自然语言的知识库/知识图谱查询方法。该方法能够将用户的自然语言问句自动转化为Cypher形式化查询语句,有效支持了面向软件项目知识图谱的自然语言问答,降低了开发人员的学习成本。然后提出了融合代码知识的智能问答方法,借助软件项目的知识图谱来计算不同单词之间的潜在语义相关度,从而对候选文本集合进行筛选与评估,返回更准确的答案。与现有的基于LDA、Word2Vec等统计学习方法的文档搜索改进策略相比,该方法借助软件项目源代码中的代码实体对自然语言文本的语义进行结构化表示,并利用代码实体之间的结构依赖关系实现了对文本之间的潜在语义关联的更直接、更有效的挖掘与利用,显著提高了文档搜索的效果。

03 下一步的工作内容是什么?

未来,基于软件开发过程中的更多数据类型,进一步的工作是进行软件知识图谱知识实体的扩充,以及建立更多的语义关联,并提供更精准的交互式智能问答服务


客服服务热线
手机:18385445050  (周一至周日:9:00-18:00)
公司地址:贵州省花果园财富广场1号楼35楼22号 邮政编码:550002 客服邮箱:service@qlcom.cn
在线客服
 
 
 联系方式
客服热线:18385445050
website qrcode
电话:0851-85755593