一种基于BERT嵌入的软件编程领域实体识别方法技术

技术编号:26891377 阅读:28 留言:0更新日期:2020-12-29 16:09
本发明专利技术涉及一种基于BERT嵌入的软件编程领域实体识别方法,属于自然语言处理、深度学习和软件资源挖掘技术领域。首先,利用自然语言处理技术对软件问答社区StackOverflow的数据集进行文本解析和预处理,结合领域分析确定软件编程领域实体类别,并基于Bart自然语言标注工具对样本数据进行人工标注获得训练集和测试集;然后,通过BERT预训练语言模型获得输入序列的语义和向量化表示,并结合BiGRU双向循环神经网络对输入序列进行模型训练;最后,通过CRF条件随机场对输入标签序列建模,从而得到概率最大的标签序列,实现软件编程领域的实体识别。本发明专利技术基于深度学习训练方法,能在少量标注样本数据的情况下,有效识别软件编程领域特定的实体。

【技术实现步骤摘要】
一种基于BERT嵌入的软件编程领域实体识别方法
本专利技术涉及一种基于BERT嵌入的软件编程领域实体识别方法,属于自然语言处理、深度学习和软件资源挖掘

技术介绍
在大众化软件开发时代,有超过5000万余名软件开发人员在StackOverFlow软件知识社区进行有关开发技术、配置管理、项目组织等软件编程问答交流。这些海量社会化文本数据包含软件工程的各类问题和答案,蕴含着丰富的软件编程领域知识。软件编程知识的自动获取、共享和推荐将有利于软件开发人员快速解决项目开发过程中遇到的问题,提高软件开发质量。传统的信息检索方式无法满足软件编程特定领域的需求,以实体为中心的信息检索和基于知识图谱的知识智能化管理将成为有效解决方案,而准确识别软件编程领域特定的实体并归类是工作的第一步。传统命名实体识别(NamedEntityRecognition,NER)的主要任务是识别出文本中的人名、地名等有意义的专有名称并加以归类。由于软件编程知识来自软件知识社区的社会化文本,并具有特定的软件领域特征,传统的模型和方法不适应,存在如下问题:本文档来自技高网...

【技术保护点】
1.一种基于BERT嵌入的软件编程领域实体识别方法,其特征在于:/n首先,利用自然语言处理技术对软件问答社区StackOverflow的数据集进行文本解析和预处理,结合领域分析确定软件编程领域实体类别,并基于Bart自然语言标注工具对样本数据进行人工标注获得训练集和测试集;然后,通过BERT预训练语言模型获得输入序列的语义和向量化表示,并结合BiGRU双向循环神经网络对输入序列进行模型训练;最后,通过CRF条件随机场对输入标签序列建模,从而得到概率最大的标签序列,实现软件编程领域的实体识别。/n

【技术特征摘要】
1.一种基于BERT嵌入的软件编程领域实体识别方法,其特征在于:
首先,利用自然语言处理技术对软件问答社区StackOverflow的数据集进行文本解析和预处理,结合领域分析确定软件编程领域实体类别,并基于Bart自然语言标注工具对样本数据进行人工标注获得训练集和测试集;然后,通过BERT预训练语言模型获得输入序列的语义和向量化表示,并结合BiGRU双向循环神经网络对输入序列进行模型训练;最后,通过CRF条件随机场对输入标签序列建模,从而得到概率最大的标签序列,实现软件编程领域的实体识别。


2.根据权利要求1所述的基于BERT嵌入的软件编程领域实体识别方法,其特征在于具体步骤为:
Step1、软件问答社区数据集预处理;
Step1.1:解析html文本,提取软件编程问答内容文本;
Step1.2:去除文本中包含的标签内容,以空格为分隔符进行分词,标签内容包括链接和源代码;
Step1.3:按1:9的比例,将样本数据划分为测试集和训练集;
Step2、样本数据标注;
Step2.1:结合软件编程领域分析,确定软件编程领域实体的类别清单;
Step2.2:根据Step2.1确定的实体类别清单,利用Bart自然语言标注工具和交叉验证法对软件问答社区样本数据进行人工标注;
Step3、特征提取及向量化;
Step3.1:在BERT模型预训练中,采用Masked语言模型MLM和下一句预测NSP两种策略用于模型预训练,用[CLS]表示句首,[SEP]表示句尾,并随机遮盖15%的单词;
Step3.2:构建BERT模型的输入表示,对于输入词序列X=(x1,x2,…,xn),n表示输入词序列的长度,每个单词向量由TokenEmbeddings、SegmentEmbeddings和PositionEmbeddings三部分求和得到;
其中,TokenEmbeddings表示词向量,SegmentEm...

【专利技术属性】
技术研发人员:唐明靖王俊陈建兵邹伟
申请(专利权)人:云南师范大学
类型:发明
国别省市:云南;53

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

1