CN116186506A - 基于bert预训练模型的可访问性问题报告的自动识别方法 - Google Patents
基于bert预训练模型的可访问性问题报告的自动识别方法 Download PDFInfo
- Publication number
- CN116186506A CN116186506A CN202310238016.5A CN202310238016A CN116186506A CN 116186506 A CN116186506 A CN 116186506A CN 202310238016 A CN202310238016 A CN 202310238016A CN 116186506 A CN116186506 A CN 116186506A
- Authority
- CN
- China
- Prior art keywords
- accessibility
- data
- neural network
- model
- training model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于软件缺陷检测技术领域,公开了一种基于BERT预训练模型的可访问性问题报告的自动识别方法。该方法利用当下表现出色的BERT模型以实现Github中可访问性问题报告的自动识别,采用一系列有效的预处理技术完成数据收集和处理工作,选取经过预训练的seBERT模型微调,更好地提取Github问题报告中关于可访问性的语义信息,使得模型在训练数据较少的情况下也能有较好的效果,提高研究者采集可访问性相关数据时的准确率;最后通过卷积神经网络完成二分类工作,从而成功从大量未知类型的问题报告中筛选出目标数据。本发明通过使用预训练模型,以解决神经网络和机器学习训练数据不足的问题,使得自动分类方法能够成功地应用于数据样本采样困难的可访问性研究领域。
Description
技术领域
本发明属于智能化软件开发领域,具体涉及一种基于BERT预训练模型的可访问性问题报告的自动识别方法。
背景技术
可访问设计的重点是让尽可能多的人能够访问软件产品和服务,这已经引起了软件工程研究人员和开发人员的广泛关注。但是,目前许多应用程序的可访问性较差,这使得残疾人难以使用此类应用程序。鉴于此,研究人员作出了大量的努力,陆续提出了一些工具、框架以及指南,以支持开发人员创建可访问性的应用程序。然而,由于缺乏意识和资源,许多开发人员和设计师仍然没有将可访问性纳入开发过程。因此,研究现实世界的项目中关于可访问性所引发的问题对可访问性的研究及发展有着非常重要的意义。
Github是一个大型且受欢迎的开源平台,托管各种项目。开发人员使用“issue”报告项目中的问题和错误,因此使用Github项目中的问题讨论作为数据源能够使得研究结论更加具有代表性,从而能够更好地促进可访问性研究的发展。
目前研究人员在进行可访问性相关问题的研究过程中收集数据主要使用两种方法:人工标记和自动检测。人工标记的方式非常耗时,尤其在面对大型开源平台Github中数百万计的数据时,人工标记变得不切实际。自动检测方法采用字符串匹配技术,自动检测方法所使用的关键词来源于英国广播公司(BBC)关于可访问性的建议。然而,仅仅使用指南中派生出的关键字并不能够排除部分假阳性问题,比如,涉及到访问控制符的问题讨论同样使用“accessibility”。因此,依赖于上下文的可访问性问题报告的识别仅仅简单使用字符串匹配技术是低效的。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于BERT预训练模型的可访问性问题报告的自动识别方法。
本发明为了实现上述目的,采用如下技术方案:
基于BERT预训练模型的可访问性问题报告的自动识别方法,包括如下步骤:
步骤1.收集大型流行项目中的问题报告,其中包括标题、描述以及commit信息,构建可访问性相关数据集和非可访问性数据集;
对于可访问性数据集的构建,我们首先根据关键词初步筛选出预备可访问性数据集,经过手动验证确定所选数据为非假阳性数据;
对于非可访问性数据集的构建,我们首先加入在构建可访问性数据集过程中所获得的假阳性数据,随即抽取相同项目中不含关键词的问题报告,并人工确定;
对于可访问性与非可访问性数据集分别添加标签1和0,再统一进行相同规则的数据预处理,从而生成目标数据集。
步骤2.将目标数据集输入到预训练模型中对预训练模型进行微调;
每个数据样本输入到微调后的预训练模型中均会得到CLS向量;
步骤3.将向量输入到卷积神经网络中进行卷积和池化操作以提取特征,再输入到全连接层训练,得到卷积神经网络分类模型;
步骤4.将未经过标记的问题报告输入到由微调后的预训练模型以及训练好的卷积神经网络分类模型组成的整体模型中,继而实现自动识别可访问性相关的数据以构成研究所需的数据集。
本发明具有如下优点:
如上所述,本发明述及了一种基于BERT预训练模型的可访问性问题报告的自动识别方法,对于Github中可访问性问题报告的自动识别通过BERT预训练模型,以更好的提取问题报告中的文本语义信息,从而提高了对问题报告的语义理解能力,从而提高识别可访问性问题报告的准确率;此外,本发明方法通过所采用的预训练模型能够保证在训练数据较少的情况下,也能够达到很好地效果,同时能够提高运行效率,进而保证软件质量以及软件的可追溯性,降低了软件的维护成本。本发明很好地解决了在可访问性问题研究领域数据不足和数据收集困难等问题,能够大大节省研究人员的时间,提升研究效率,从而进一步促进该研究领域的发展。
附图说明
图1为本发明实施例中基于BERT预训练模型的可访问性问题报告的自动识别方法的流程框图;
图2为本发明实施例中基于BERT预训练模型的可访问性问题报告的自动识别方法的模型结构图;
图3为本发明实施例中卷积神经网络的结构示意图;
具体实施方式
为了便于本领域技术人员的理解,下面结合实例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
如图1和图2所示,基于BERT预训练模型的可访问性问题报告的自动识别方法,包括如下步骤:
步骤1.数据收集与处理。
收集大型流行项目中的问题报告,其中包括标题、描述以及commit信息,构建可访问性相关数据集和非可访问性数据集;
对于可访问性数据集的构建,我们首先根据关键词初步筛选出预备可访问性数据集,经过手动验证确定所选数据为非假阳性数据;
对于非可访问性数据集的构建,我们首先加入在构建可访问性数据集过程中所获得的假阳性数据,随即抽取相同项目中不含关键词的问题报告,并人工确定;
对于可访问性与非可访问性数据集分别添加标签1和0,再统一进行相同规则的数据预处理,从而生成目标数据集,用于后续训练模型(seBERT微调和CNN分类)。
步骤1.1.根据Stars作为表示流行度的依据,选择流行度最高的前200个Github项目,并且过滤掉与文档相关的项目(教程、书籍等等)。
步骤1.2.将收集到的问题报告文字小写化后使用关键词“accessibility”筛选,再经过人工过滤掉假阳性数据。
步骤1.3.构建正确的可访问性数据集和非可访问性数据集,作为后续训练模型的数据集;
在我们的样本数据中,为构建可访问性数据集,我们主要观察Github问题报告的标题和描述,有以下情况的可以判定为可访问性数据:
a).UI设计,开发人员经常提出有关UI设计的可访问性问题;例如,开发人员讨论颜色、文本大小和键盘导航问题;
b).可访问性的改进,与可访问性功能的改进相关,如添加语音助手功能;
c).与其他质量属性交互,该样本描述了可访问性如何与其他质量属性交互,反之亦然,如可用性、性能和隐私;
d).解决可访问性相关的技术问题,如开发者讨论关于可访问性功能的编码或编程错误);
e).共享可访问性相关知识,如开发者描述其在可访问性开发和设计方面的个人经验;
f).重构和重用以纳入可访问性,描述了重构项目或组件以纳入可访问性的技术。开发人员讨论有关组件的信息或可访问性功能的软件重构;
g).可访问性文档更新,开发人员讨论有关可访问性问题的检查表的文档;
对于非可访问性数据集,其一部分来源于可访问性数据集构建过程中产生的假阳性数据,另一部分来源于去除预备可访问性数据集的原始数据集;
a).对去除预备可访问性数据集的原始数据集进行随机抽样,抽取出与可访问性数据集等量的数据;
b).在人工确认非可访问性数据的过程中,由排除假阳性数据所造成的的数据不平衡问题,我们采取再次随机抽样的方式来解决,以保证最终可访问性数据和非可访问性数据集的大小相同。
步骤1.4.对可访问性数据和非可访问性数据进行数据预处理,预处理过程如下:
对问题报告中的标题、描述进行拼接;
对拼接后的文本数据删除超链接、移除标签、删除代码信息,并采用标志化、词性还原、去除停用词和统一大小写等技术进行处理。
步骤1.5.将可访问性数据集和非可访问性数据集分别添加分类标签1和0。
步骤2.微调预训练模型。
将目标数据集输入到预训练模型中对预训练模型进行微。本步骤利用目前在自然语言处理(Natural Language Processing,NLP)领域具有出色表现的BERT作为底层语言模型,该模型使用预训练和微调的方式来进行训练,以完成下游任务。根据下游任务进行微调后的预训练模型将输出特征向量。
步骤2.1.选用seBERT模型,该模型是基于transformer架构的预训练BERT模型,与针对一般领域进行训练的BERT模型相比,seBERT模型是基于软工领域(SoftwareEngineering,SE)的数据(包括Stack Overflow、Jira以及Github中的数据)从头开始训练的,能够更好地理解软件工程中的上下文信息,从而更加精确地捕捉语义信息。
步骤2.2.为了充分利用问题报告中的文本信息,将问题报告的标题和描述进行拼接后作为seBERT模型的输入,从而实现对seBERT模型的微调,通过对元预训练模型的参数进行更新,使得微调后的seBERT模型更符合下游任务。
步骤2.3.提取seBERT输出的CLS头的特征向量,命名为CLS-Features;
步骤2.4将剩下的向量与CLS向量分割开来,命名为Another-Features,将该向量输入到卷积神经网络进行特征提取。
本发明使用预训练模型以解决神经网络和机器学习训练数据不足的问题,能够有效地实现自动识别Github中可访问性问题报告的目的,从而帮助研究人员解决数据样本收集困难的问题。
步骤3.卷积神经网络分类模型训练。
将步骤2得到的向量输入到卷积神经网络用于训练分类模型。
卷积神经网络分类模型首先需要对分类模型中的参数进行初始化,主要包括前向传播和反向传播两个阶段,其中,前向传播过程如图3所示,将seBERT输出的特征向量输入到卷积神经网络中进行卷积和池化操作以提取特征,再输入全连接层训练分类模型。
步骤3.1.初始化卷积神经网络的权重参数,包括卷积层和全连接层的权重参数;
步骤3.2.卷积神经网络的前向传播过程;
步骤3.2.1.卷积层的前向传播过程:对Another-Features分别以多个相同尺寸的卷积核进行卷积操作,然后通过激活函数RELU得到输出的特征图;
步骤3.2.2.池化层的前向传播过程:对步骤3.2.1激活处理后的向量使用最大池化进行降噪,得到用于分类的特征向量Conv-Feature;
步骤3.2.3.全连接的前向传播过程:将Conv-Feature输入到全连接层进行分类,通过Softmax激活函数完成二分类;其中,Softmax激活函数的计算公式如下:
其中xi为神经网络中第i个节点的输出值,C为分类类别数量,此处为二分类,C=2;
步骤3.3.卷积神经网络的反向传播过程;
根据神经网络输出的结果进行反向传播过程,求出神经网络的输出结果与期望值之间的误差;当误差等于或小于预设阈值时,得到训练好的神经网络分类模型;否则,将误差一层层返回,对全连接层和卷积层的参数进行权重更新。
步骤4.将未经过标记的问题报告输入到由微调后的预训练模型以及训练好的卷积神经网络分类模型组成的整体模型中,继而实现Github中可访问性问题报告的自动识别。
seBERT模型根据输入的待识别问题报告生成对应的特征向量。
将生成的特征向量输入到训练好的卷积神经网络分类模型中进行处理。
在经过卷积层、RELU激活函数、池化层后,经过全连接层进行二分类,以确定待测问题报告的类别,从而实现可访问性问题报告的自动识别,以解决可访问性研究领域研究人员数据样本采集困难的问题。
当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
Claims (5)
1.一种基于BERT预训练模型的可访问性问题报告的自动识别方法,其特征在于,包括步骤如下:
步骤1.收集大型流行项目中的问题报告,其中包括标题、描述以及commit信息,构建可访问性相关数据集和非可访问性数据集;
对于可访问性数据集的构建,我们首先根据关键词初步筛选出预备可访问性数据集,经过手动验证确定所选数据为非假阳性数据;
对于非可访问性数据集的构建,我们首先加入在构建可访问性数据集过程中所获得的假阳性数据,随即抽取相同项目中不含关键词的问题报告,并人工确定;
对于可访问性与非可访问性数据集分别添加标签1和0,再统一进行相同规则的数据预处理,从而生成目标数据集;
步骤2.将目标数据集输入到预训练模型中对预训练模型进行微调;
每个数据样本输入到微调后的预训练模型中均会得到CLS向量;
步骤3.将向量输入到卷积神经网络中进行卷积和池化操作以提取特征,再输入到全连接层训练,得到卷积神经网络分类模型;
步骤4.将未经过标记的问题报告输入到由微调后的预训练模型以及训练好的卷积神经网络分类模型组成的整体模型中,继而实现Github中可访问性问题报告的自动识别。
2.根据权利要求1所述的基于BERT预训练模型的可访问性问题报告的自动识别方法,其特征在于,
所述步骤1具体为:
步骤1.1.根据Stars作为表示流行度的依据,选择流行度最高的前200个Github项目,并且过滤掉与文档相关的项目(教程、书等等);
步骤1.2.将收集到的问题报告文字小写化后使用关键词“accessibility”筛选,再经过人工过滤掉假阳性数据;
步骤1.3.构建正确的可访问性数据集和非可访问性数据集,作为后续训练模型的数据集;
在我们的样本数据中,为构建可访问性数据集,我们主要观察Github问题报告的标题和描述,有以下情况的可以判定为可访问性数据:
a).UI设计,开发人员经常提出有关UI设计的可访问性问题;例如,开发人员讨论颜色、文本大小和键盘导航问题;
b).可访问性的改进,与可访问性功能的改进相关,如添加语音助手功能;
c).与其他质量属性交互,该样本描述了可访问性如何与其他质量属性交互,反之亦然,如可用性、性能和隐私;
d).解决可访问性相关的技术问题,如开发者讨论关于可访问性功能的编码或编程错误);
e).共享可访问性相关知识,如开发者描述其在可访问性开发和设计方面的个人经验;
f).重构和重用以纳入可访问性,描述了重构项目或组件以纳入可访问性的技术;开发人员讨论有关组件的信息或可访问性功能的软件重构;
g).可访问性文档更新,开发人员讨论有关可访问性问题的检查表的文档;
对于非可访问性数据集,其一部分来源于可访问性数据集构建过程中产生的假阳性数据,另一部分来源于去除预备可访问性数据集的原始数据集;
a).对去除预备可访问性数据集的原始数据集进行随机抽样,抽取出与可访问性数据集等量的数据;
b).在人工确认非可访问性数据的过程中,由排除假阳性数据所造成的的数据不平衡问题,我们采取再次随机抽样的方式来解决,以保证最终可访问性数据和非可访问性数据集的大小相同;
步骤1.4.对可访问性数据和非可访问性数据进行数据预处理,预处理过程如下:
对问题报告中的标题、描述进行拼接;
对拼接后的文本数据删除超链接、移除标签、删除代码信息,并采用标志化、词性还原、去除停用词和统一大小写等技术进行处理;
步骤1.5.将可访问性数据集和非可访问性数据集分别添加分类标签1和0。
3.根据权利要求2所述的基于BERT预训练模型的可访问性问题报告的自动识别方法,其特征在于,
所述步骤2具体为:
步骤2.1.选用seBERT模型作为预训练模型;
步骤2.2.首先通过seBERT获取预训练的词向量;
步骤2.3.提取seBERT输出的CLS头的特征向量,命名为CLS-Features;
步骤2.4将剩下的向量与CLS向量分割开来,命名为Another-Features,将该向量输入到卷积神经网络进行特征提取。
4.根据权利要求3所述的基于BERT预训练模型的可访问性问题报告的自动识别方法,其特征在于,
所述步骤3具体为:
步骤3.1.初始化卷积神经网络的权重参数,包括卷积层和全连接层的权重参数;
步骤3.2.卷积神经网络的前向传播过程;
步骤3.2.1.卷积层的前向传播过程:对Another-Features分别以多个相同尺寸的卷积核进行卷积操作,然后通过激活函数RELU得到输出的特征图;
步骤3.2.2.池化层的前向传播过程:对步骤3.2.1激活处理后的向量使用最大池化进行降噪,得到用于分类的特征向量Conv-Feature;
步骤3.2.3.全连接的前向传播过程:将Conv-Feature输入到全连接层进行分类,通过Softmax激活函数完成二分类;其中,Softmax激活函数的计算公式如下:
其中xi为神经网络中第i个节点的输出值,C为分类类别数量,此处为二分类,C=2;
步骤3.3.卷积神经网络的反向传播过程;
根据神经网络输出的结果进行反向传播过程,求出神经网络的输出结果与期望值之间的误差;当误差等于或小于预设阈值时,得到训练好的神经网络分类模型;否则,将误差一层层返回,对全连接层和卷积层的参数进行权重更新。
5.根据权利要求4所述的基于BERT预训练模型的可访问性问题报告的自动识别方法,其特征在于,
所述步骤4具体为:
将未经过标记的问题报告输入到由微调后的预训练模型以及训练好的卷积神经网络分类模型组成的整体模型中,实现自动识别可访问性问题报告的过程如下:
seBERT模型根据输入的待识别问题报告生成对应的特征向量;
将生成的特征向量输入到训练好的卷积神经网络分类模型中进行处理;
在经过卷积层、RELU激活函数、池化层后,经过全连接层进行二分类,以确定待测问题报告的类别,从而实现可访问性问题报告的自动识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310238016.5A CN116186506A (zh) | 2023-03-13 | 2023-03-13 | 基于bert预训练模型的可访问性问题报告的自动识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310238016.5A CN116186506A (zh) | 2023-03-13 | 2023-03-13 | 基于bert预训练模型的可访问性问题报告的自动识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186506A true CN116186506A (zh) | 2023-05-30 |
Family
ID=86442375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310238016.5A Pending CN116186506A (zh) | 2023-03-13 | 2023-03-13 | 基于bert预训练模型的可访问性问题报告的自动识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186506A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775871A (zh) * | 2023-06-15 | 2023-09-19 | 南京航空航天大学 | 基于seBERT预训练模型的深度学习软件缺陷报告分类方法 |
-
2023
- 2023-03-13 CN CN202310238016.5A patent/CN116186506A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775871A (zh) * | 2023-06-15 | 2023-09-19 | 南京航空航天大学 | 基于seBERT预训练模型的深度学习软件缺陷报告分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597735B (zh) | 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法 | |
WO2018218708A1 (zh) | 一种基于深度学习的舆情热点类别划分方法 | |
CN111914185B (zh) | 一种基于图注意力网络的社交网络中文本情感分析方法 | |
CN107944014A (zh) | 一种基于深度学习的中文文本情感分析方法 | |
CN111552803A (zh) | 一种基于图小波网络模型的文本分类方法 | |
CN111967267B (zh) | 一种基于XLNet的新闻文本地域提取的方法及系统 | |
CN111177010B (zh) | 一种软件缺陷严重程度识别方法 | |
CN114816497B (zh) | 基于bert预训练模型的链接生成方法 | |
CN115203507A (zh) | 一种面向文书领域的基于预训练模型的事件抽取方法 | |
CN111460147A (zh) | 一种基于语义增强的标题短文本分类方法 | |
CN112000929A (zh) | 一种跨平台数据分析方法、系统、设备及可读存储介质 | |
CN116186506A (zh) | 基于bert预训练模型的可访问性问题报告的自动识别方法 | |
CN115905487A (zh) | 文档问答方法、系统、电子设备及存储介质 | |
CN114742071A (zh) | 基于图神经网络的汉越跨语言观点对象识别分析方法 | |
CN112231476B (zh) | 一种改进的图神经网络科技文献大数据分类方法 | |
CN117235138A (zh) | 一种代码迁移过程中的跨库api推荐方法 | |
CN113076744A (zh) | 一种基于卷积神经网络的文物知识关系抽取方法 | |
CN116450827A (zh) | 一种基于大规模语言模型的事件模板归纳方法和系统 | |
CN111859955A (zh) | 一种基于深度学习的舆情数据分析模型 | |
CN115827871A (zh) | 互联网企业分类的方法、装置和系统 | |
CN113869049B (zh) | 基于法律咨询问题的具有法律属性的事实抽取方法及装置 | |
CN112101559B (zh) | 一种基于机器学习的案件罪名推断方法 | |
CN113806536A (zh) | 文本分类方法及其装置、设备、介质、产品 | |
CN114036946B (zh) | 一种文本特征提取及辅助检索的系统及方法 | |
CN118364113B (zh) | 基于DeBERTa模型的高鲁棒性文本内容审核方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |