System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于人工智能,具体涉及一种基于nlp深度学习软件需求功能生成方法。
技术介绍
1、需求精准把握是软件功能开发的基础,需求文档使用自然语言描述客户的使用述求,开发人员基于需求文档进行软件设计和编码等,将客户述求实现为软件功能项。
2、软件功能项是将客户需求诉求转换为软件实现的标准和最小单元,是交付给客户使用的软件系统功能,它是度量和把控软件成本并计划开发进度的标准。在现实实现中,功能项的形成主要靠软件设计人员和需求人员的经验配合,耗费大量的人力和时间,通常情况,软件开发方专门聘请相关领域专家完成该任务,并可能额外支付较高的专业服务来校准,现有的功能项设计仍没有实现自动化辅助,这意味着该领域有较大的市场需求和技术突破空间。因此,从需求文本中自动形成功能项以减少功能项专家的人工成本和时间成本是有价值的。
3、传统的功能项生成方法在现阶段效能较低,主要因为:尚未有较有用的通用的模式(pattern),当前已使用的通用pattern,规则过于宽泛,提取过多功能项,对于功能项的筛选工程量较大,准确率偏低;有些功能项在需求文本中,并不能直接使用句法、语法分析等nlp方法提取出来,需要了解客户相关的业务规则;需求文本和功能点对应关系为一对多,传统的seq2seq模型无法工作。
技术实现思路
1、(一)要解决的技术问题
2、本专利技术要解决的技术问题是:针对现有客户需求软件功能生成问题,使用广泛使用的深度学习神经网络(rnn)技术解决当前nlp自动生成软
3、(二)技术方案
4、为了解决上述技术问题,本专利技术提供一种基于nlp深度学习软件需求功能生成方法,所述方法的步骤为:
5、步骤1:接收客户当前的需求,将客户需求文本进行数据清洗和存储,生成客户原始需求数据表;
6、步骤2:采集历史相关类项目的信息,在已构建的需求特征词表的基础上,用网络爬虫技术更多采集相关类项目,包括项目的背景、需求、功能点、性能要求的要素,对采集到的信息进行数据清洗和存储,生成历史项目信息表;
7、步骤3:将所述历史项目信息以及当前需求信息导入整合匹配模型进行匹配训练,生成符合匹配规则的功能项;其中,构建需求与功能整合匹配的深度学习神经网络模型并对其进行训练,深度学习神经网络模型由1个编码器和n个解码器构成;所述编码器用于计算客户原始需求文本的隐藏层状态向量并将其发送给每个所述解码器;所述解码器的构成包括embedding层、gru层、attention层和softmax层;解码器的embedding层、gru层对输入数据依次进行处理,生成隐藏层状态向量并传入attention层;解码器的attention层根据编码器生成的隐藏层状态向量和解码器的gru层生成的隐藏层状态向量计算得到全局对齐权重向量,然后用所述全局对齐权重向量与隐藏层状态向量加权计算得到上下文向量,并将上下文向量和解码器的gru层生成的隐藏层状态向量进行连接并输入softmax层,softmax层对输入数据进行匹配并输出一功能项;
8、步骤4:利用训练好的深度学习神经网络模型对待处理的客户原始需求文本进行匹配,生成m个功能项;其中,训练所述深度学习神经网络模型的方法为:首先对每一功能项进行分词并训练生成对应功能项的词向量,然后通过平均各功能项中所包含的所有字的词向量,将功能项的词向量转换为句向量,然后利用k-means算法将各句向量聚类为m个类,得到m个聚类结果;然后将不同聚类结果通过编码器处理后分别输入对应的解码器进行训练;所述解码器使用基于掩码的损失函数;所述深度学习神经网络模型的总损失loss是m个所述解码器损失的总和;
9、即
10、d是解码器的数量,p(x)为输出序列中预测符号的概率分布,q(x)为输出序列中实际符号的概率分布;
11、步骤5:合并m个功能项中相似的功能项,获得该待处理客户原始需求文本的功能项匹配结果。
12、其中,所述编码器包含一个embedding层和两个双向gru层,embedding层用于对需求文本中的字进行编码,映射到指定大小的特征空间;双向gru层包含前向rnn和后向rnn,前向rnn顺序读取源序列,后向rnn以相反的顺序读取源序列。
13、其中,所述双向gru层之后设置一个dropout层,用于防止过拟合。
14、其中,所述解码器的attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前gru输出的隐藏层状态向量进行连接。
15、其中,所述softmax层采用公式:
16、
17、将输入数据转换为概率分布;其中,k是词汇表的大小,z为attention层的输出向量,zj为向量z的第j维元素,σ(z)j为输出的第j个字的概率分布。
18、其中,所述解码器的embedding层和gru层后分别设置dropout层。
19、此外,本专利技术还提供一种计算机可读存储介质,其存储计算机程序,所述计算机程序包括用于执行所述方法中各步骤的指令。
20、(三)有益效果
21、与现有技术相比较,本专利技术的贡献主要有:构建适用于解决需求与功能项一对多匹配的深度神经网络结构;用聚类和数据变换训练encoder-decoders模型的方法;利用encoder-decoders模型识别客户原始需求文本的功能点。
22、本专利技术的优势主要有以下三点:
23、1.使用词向量。本方法不同于基于模式匹配等方法是本方法使用词向量映射单词到连续的语义空间。将客户原始需求文本中的单词输入到模型时,将它们映射到语义向量。训练时由于相似语义的单词具有相似的向量表示,对rnn编码器的隐藏层状态具有相似的影响。因此,具有需求中语义相似的单词将被输出。
24、2.训练学习普适序列,不提取特定模式。解码器本身就是一种语言模型,可记住不同序列的可能性。训练模型时,不同客户原始需求文本被训练学习的共同序列将具有更高概率。同时编码器的隐藏层具有存储特性,它不仅记住单个词,还记住它们的相对位置。用该方式,它学习单词的同时也学习序列,而传统只学习单个词。
25、3.能够分别解码客户原始需求文本的各个方面。本方法构建的一个编码器和多个解码器的网络结构,用不同的解码器学习需求的各个方面。需求对应的功能项是相互关联的,需求中的一个句子可能涉及多个功能项。因此,功能项生成并不是简单将需求分成句子,然后将它们组成<句子,功能项>对,因此本方法用多个解码器处理需求和功能项间的映射。
本文档来自技高网...【技术保护点】
1.一种基于NLP深度学习软件需求功能生成方法,其特征在于,所述方法的步骤为:
2.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述编码器包含一个Embedding层和两个双向GRU层,Embedding层用于对需求文本中的字进行编码,映射到指定大小的特征空间;双向GRU层包含前向RNN和后向RNN,前向RNN顺序读取源序列,后向RNN以相反的顺序读取源序列。
3.如权利要求2所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述双向GRU层之后设置一个Dropout层,用于防止过拟合。
4.如权利要求3所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述解码器的Attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前GRU输出的隐藏层状态向量进行连接。
5.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述Softmax层采用公式:
6.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述解码器的Em
7.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,本方法基于递归神经网络解决NLP自动识别功能项问题,以提高NLP自动形成功能项的精准度和效度。
8.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,本方法将RNN应用于NLP的需求软件功能生成中,可更好实现需求的精准理解和功能项的精准形成。
9.如权利要求1所述的基于NLP深度学习软件需求功能生成方法,其特征在于,所述方法属于人工智能技术领域。
10.一种计算机可读存储介质,其特征在于,其存储计算机程序,所述计算机程序包括用于执行权利要求1至6任一所述方法中各步骤的指令。
...【技术特征摘要】
1.一种基于nlp深度学习软件需求功能生成方法,其特征在于,所述方法的步骤为:
2.如权利要求1所述的基于nlp深度学习软件需求功能生成方法,其特征在于,所述编码器包含一个embedding层和两个双向gru层,embedding层用于对需求文本中的字进行编码,映射到指定大小的特征空间;双向gru层包含前向rnn和后向rnn,前向rnn顺序读取源序列,后向rnn以相反的顺序读取源序列。
3.如权利要求2所述的基于nlp深度学习软件需求功能生成方法,其特征在于,所述双向gru层之后设置一个dropout层,用于防止过拟合。
4.如权利要求3所述的基于nlp深度学习软件需求功能生成方法,其特征在于,所述解码器的attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前gru输出的隐藏层状态向量进行连接。
5.如权利要求1所述的基于nlp深度学习软件需求功...
【专利技术属性】
技术研发人员:杨梓,董京,贺磊,刘宏宇,邵琦,尹严研,
申请(专利权)人:航天科工智能运筹与信息安全研究院武汉有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。