[发明专利]一种软件文档中核心代码元素的挖掘方法及系统在审
申请号: | 201711059029.7 | 申请日: | 2017-11-01 |
公开(公告)号: | CN107943514A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 邹艳珍;曹英魁;谢冰 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 邱晓锋 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 文档 核心 代码 元素 挖掘 方法 系统 | ||
1.一种软件文档中核心代码元素的挖掘方法,其特征在于,包括以下步骤:
1)对待处理软件项目的软件文档和源代码进行收集,并解析所述软件文档和源代码,得到候选的文档-代码关联关系集合;
2)从候选文档-代码关联关系的相关软件文档与软件代码中抽取文本特征和代码特征,并组织所述特征以构建软件文档中候选代码元素的特征向量;
3)将已标注核心代码元素的软件文档作为训练数据,构建特征向量,通过调优模型参数得到分类学习模型,通过分类学习模型识别待识别的软件文档中的核心代码元素。
2.如权利要求1所述的方法,其特征在于,步骤1)包括以下子步骤:
1-1)对获取的软件文档进行解析:根据XML标签抽取软件文档中有意义的文本部分,构建软件文档对应的文档实体;对文档内容进行分段,并识别和标明文档中的代码片段和超链接;根据文档内容中存在的“<code>”和“</code>”识别文档中的代码片段;
1-2)对获取的软件源代码进行解析:基于所获取的源代码,利用工具JDT,生成抽象语法树;遍历抽象语法树,获取软件项目的代码元素列表,基于代码元素之间的关联关系并构建代码结构图;
1-3)基于程序语法规则和命名规则构建正则表达式,根据正则表达式从步骤1-1)中的软件文档实体中抽取近似代码元素,并将其和步骤1-2)中获取的代码元素列表进行匹配,若近似代码元素和某个代码元素相同,则建立相应文档实体与代码元素间的关联关系,得到候选文档-代码关联关系集合。
3.如权利要求1所述的方法,其特征在于,步骤2)包括以下子步骤:
2-1)从文档中提取特征,提取的特征包括:词频特征、代码元素在文档中的位置特征、文档中的特定句法、文档与代码元素注释的文本相似度、关联文档中代码元素的词频特征;
2-2)从代码中提取特征,提取的特征包括:代码元素的类型、代码元素间的关联以及代码元素间的距离;
2-3)基于从文档和代码中提取的特征,按照libSVM格式构建用于度量软件文档与软件代码间关联关系的特征向量。
4.如权利要求1所述的方法,其特征在于,步骤3)包括以下子步骤:
3-1)对每个标注好核心代码元素的文档,抽取文档和代码特征构建特征向量,输入基于决策树的分类模型进行学习,通过调优参数得到分类学习模型;
3-2)基于分类学习模型识别软件文档的核心代码元素,当文档中某代码元素获取的度量值的排名超过阈值时,该代码元素为该文档的核心代码元素。
5.一种软件文档中核心代码元素的挖掘系统,其特征在于,包括:
软件文档与软件代码预处理模块,用于对待处理软件项目的软件文档和源代码进行收集,并解析所述软件文档和源代码,得到候选的文档-代码关联关系集合;
特征抽取模块,用于从候选文档-代码关联关系的相关软件文档与软件代码中抽取文本特征和代码特征,并组织所述特征以构建软件文档中候选代码元素的特征向量;
分类学习算法模块,用于将已标注核心代码元素的软件文档作为训练数据,构建特征向量,通过调优模型参数得到分类学习模型,通过分类学习模型识别待识别的软件文档中的核心代码元素。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711059029.7/1.html,转载请声明来源钻瓜专利网。