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

一种基于问答模型的第三方组件文档细粒度自动化提取方法及系统技术方案

技术编号:34387604 阅读:29 留言:0更新日期:2022-08-03 21:12
本发明专利技术公开了一种基于问答模型的第三方组件文档细粒度自动化提取方法及系统,属于第三方组件测试技术领域。系统包括:第三方组件文档预处理模块,对第三方组件文档进行初步过滤,获取粗粒度的第三方组件使用规则;文档问答树构建模块,深度分析第三方组件误用类型,为每一类误用类型设计查询问题,根据问题对待测文档进行人工标记;基于问答的第三方组件使用规则提取模块,采用基于RoBERTa模型的自然语言处理模型对文档进行问答式信息提取,获得与第三方组件相关的细粒度使用规则。本发明专利技术的系统解决了无统一格式的第三方组件文档粗粒度提炼问题,能够对第三方组件文档中的使用规则进行细粒度自动化提取。则进行细粒度自动化提取。则进行细粒度自动化提取。

【技术实现步骤摘要】
一种基于问答模型的第三方组件文档细粒度自动化提取方法及系统


[0001]本专利技术涉及第三方组件测试
,尤其涉及一种基于问答模型的第三方组件文档细粒度自动化提取方法及系统。

技术介绍

[0002]随着开源社区的不断推进,各类第三方组件迎来蓬勃发展,目前已经广泛应用到各行各业软件的开发当中。然而,最近的研究和实际事件表明在使用第三方组件给软件开发人员带来便利的同时,第三方组件在使用过程中产生的安全问题令人担忧。由于缺乏有效的方法来对开发人员在使用第三方组件的过程中进行严格规范,基于各类第三方组件开发的软件可能存在严重的安全威胁。例如,部分第三方组件的函数要求在被调用后需要释放,开发人员可能忽略或遗漏类似使用规则,从而造成严重的安全威胁。此类威胁轻则影响用户隐私,重则影响国家关键设备的安全。
[0003]为了检测开发人员在使用第三方组件中是否严格按照使用规则来调用第三方组件,研究人员提出了各种检测系统用于挖掘此类第三方组件误用情况。这些检测系统有一个共同点,即都需要准确获取第三方组件的使用规则。目前研究人员主要通过人工获取、正则表达式匹配以及语法依赖树等方法从第三方组件文档中获取相应使用规则。然而,通过人工阅读第三方组件来获取使用规则的方式费时费力。一个第三方组件往往含有上百个函数,每一个函数有多条使用规则,因此一个第三方组件可包含多达上千条使用规则。其次通过正则表达式匹配方法获得的使用规则往往会产生大量的漏报,无法全面获取第三方组件的使用规则,从而影响后续对第三方组件误用情况检测的准确率。另外,通过语法依赖树方法来挖掘规则需要经过大量文档预处理工作,对于结构松散的第三方组件文档效果欠佳,很难应用于大规模检测。
[0004]设计一个有效的第三方组件文档细粒度自动化提取方法存在以下挑战:(1)适配不同格式的第三方组件文档。目前,第三方组件文档的撰写没有统一的格式,任意两个第三方组件文档之间都可能存在显著的差异。仅用正则表达式匹配的方法无法适用到不同类别的第三方组件文档。(2)全面获取第三方组件使用规则。由于第三方组件文档中含有大量干扰语句,例如对函数的功能描述,大大影响了全面获取第三方组件使用规则的难度,从而造成大量的误报错报。其次,部分第三方组件的使用规则描述含糊不清,即使通过人工判断有时也无法判定是否为真实的使用规则。
[0005]由于第三方组件的文档没有统一格式,其使用规则也千差万别,目前还没有自动化细粒度获取第三方组件使用规则的有效方法,设计一种能够从第三方组件文档中细粒度自动化提取相应使用规则对于后续检测因第三方组件误用情况造成的漏洞是重要和必要的。

技术实现思路

[0006]针对第三方组件使用规则细粒度自动化提取工作存在的不足,本专利技术提供了一种基于问答模型的第三方组件文档细粒度自动化提取方法及系统,该方法能够对第三方组件中每个函数的使用规则进行精确提取。
[0007]本专利技术的具体技术方案如下:
[0008]本专利技术的第一个目的在于提供一种基于问答模型的第三方组件文档细粒度自动化提取方法,包括如下步骤:
[0009]步骤1:收集多个不同第三方组件的文档,对文档进行预处理,构建文档仓库;使用注意力模型对文档仓库中的待测试文档进行语句精炼,获取第三方组件的粗粒度使用规则;
[0010]步骤2:根据第三方组件的误用种类,设计问答模型的相应问题;从文档仓库中的待测试文档中挑选部分文档,根据设计的问题标记出答案;
[0011]步骤3:将标记好的待测试文档分为训练集和验证集,利用训练集对自然语言处理模型进行训练,直至验证集的测试准确率满足预设要求;利用训练好的自然语言处理模型对文档仓库中的剩余未标记答案文档的粗粒度使用规则进行细粒度挖掘。
[0012]本专利技术的第二个目的在于提供一种基于问答模型的第三方组件文档细粒度自动化提取系统,用于实现上述的方法,所述的提取系统包括:
[0013]第三方组件文档预处理模块,其用于收集多个不同第三方组件的文档,对文档进行预处理,构建文档仓库;使用注意力模型对文档仓库中的待测试文档进行语句精炼,获取第三方组件的粗粒度使用规则;
[0014]文档问答树构建模块,其用于根据第三方组件的误用种类,设计问答模型的相应问题;从文档仓库中的待测试文档中挑选部分文档,根据设计的问题标记出答案;
[0015]基于问答的第三方组件使用规则提取模块,其用于将标记好的待测试文档分为训练集和验证集,利用训练集对自然语言处理模型进行训练,直至验证集的测试准确率满足预设要求;利用训练好的自然语言处理模型对文档仓库中的剩余未标记答案文档的粗粒度使用规则进行细粒度挖掘。
[0016]与现有技术相比,本专利技术的有益效果为:
[0017](1)本专利技术给出了一种第三方组件文档细粒度自动化提取系统,提出了基于问答模型的第三方组件文档细粒度自动化提取方法,解决了第三方组件使用规则细粒度自动化提取的问题,能够有效提取不同类型第三方组件的使用规则,具有实用性;
[0018](2)本专利技术给出了基于注意力模型的文档预处理方法,解决了无统一格式的第三方组件文档粗粒度提炼问题;本专利技术给出了基于问答模型的文档内容提取方法,为构建文档问答树以及细粒度提取无统一格式的第三方组件使用规则提供了依据。
附图说明
[0019]图1为基于问答模型的第三方组件文档细粒度自动化提取系统的整体模块结构示意图;
[0020]图2为基于问答模型的第三方组件文档细粒度自动化提取方法的流程示意图;
[0021]图3为第三方组件文档预处理方法示意图;
[0022]图4为第三方组件文档问答树构建方法示意图;
[0023]图5为基于问答的第三方组件使用规则提取方法示意图。
具体实施方式
[0024]下面结合附图和实施例对本专利技术作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本专利技术的理解,而对其不起任何限定作用。
[0025]如图1所示,本专利技术基于问答模型的第三方组件文档细粒度自动化提取系统,包括第三方组件文档预处理模块、文档问答树构建模块以及基于问答的第三方组件使用规则提取模块。
[0026]整个第三方组件文档细粒度自动化提取系统的工作流程如图2所示,包括以下步骤:
[0027](1)收集多个不同第三方组件的文档,例如OpenSSL、SQLite以及uClibc等文档,对文档进行预处理,形成大规模的文档仓库。使用注意力模型对文档仓库中的待测试文档进行语句精炼,获取第三方组件粗粒度使用规则;
[0028](2)针对第三方组件误用种类,设计相应问题用于之后的问答模型;从文档仓库中的待测试文档中挑选至少5份文档,根据设计的问题,对文档进行人工答案标记;
[0029](3)将标记好的待测试文档分为训练集和验证集,将训练集输入自然语言处理模型训练,并在验证集上测试准确率。将训练好的模型用于文档仓库中未标记的待测试文档,对每一个涉及的第三方组件的使用规则进行细粒度挖掘。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于问答模型的第三方组件文档细粒度自动化提取方法,其特征在于,包括如下步骤:步骤1:收集多个不同第三方组件的文档,对文档进行预处理,构建文档仓库;使用注意力模型对文档仓库中的待测试文档进行语句精炼,获取第三方组件的粗粒度使用规则;步骤2:根据第三方组件的误用种类,设计问答模型的相应问题;从文档仓库中的待测试文档中挑选部分文档,根据设计的问题标记出答案;步骤3:将标记好的待测试文档分为训练集和验证集,利用训练集对自然语言处理模型进行训练,直至验证集的测试准确率满足预设要求;利用训练好的自然语言处理模型对文档仓库中的剩余未标记答案文档的粗粒度使用规则进行细粒度挖掘。2.根据权利要求1所述的基于问答模型的第三方组件文档细粒度自动化提取方法,其特征在于,对第三方组件的文档进行预处理时,过滤掉叙述不清或者文档缺失严重的第三方组件。3.根据权利要求1所述的基于问答模型的第三方组件文档细粒度自动化提取方法,其特征在于,所述的注意力模型的工作方法为:保留文档中具有强调语气词的语句,过滤掉与使用规则无关的内容。4.根据权利要求3所述的基于问答模型的第三方组件文档细粒度自动化提取方法,其特征在于,所述的强调语气词为can、could、may、might、must、need、ought to、dare、dared、shall、should、will、would中的至少一种。5.根据权利要求1所述的基于问答模型的第三方组件文档细粒度自动化提取方法,其特征在于,所述的第三方组件的误用种类包括过时函数误用、返回值误用、调用顺序误用和参数误...

【专利技术属性】
技术研发人员:纪守领赵彬彬王琴应张旭鸿邓水光王文海祝羽艳杨星
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1