CN111158640B - 一种基于深度学习的一对多需求分析识别方法 - Google Patents

一种基于深度学习的一对多需求分析识别方法 Download PDF

Info

Publication number
CN111158640B
CN111158640B CN201911350243.7A CN201911350243A CN111158640B CN 111158640 B CN111158640 B CN 111158640B CN 201911350243 A CN201911350243 A CN 201911350243A CN 111158640 B CN111158640 B CN 111158640B
Authority
CN
China
Prior art keywords
layer
vector
decoder
state vector
encoder
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.)
Active
Application number
CN201911350243.7A
Other languages
English (en)
Other versions
CN111158640A (zh
Inventor
王亚文
王俊杰
石琳
李明阳
邢明哲
王青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201911350243.7A priority Critical patent/CN111158640B/zh
Publication of CN111158640A publication Critical patent/CN111158640A/zh
Application granted granted Critical
Publication of CN111158640B publication Critical patent/CN111158640B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于深度学习的一对多需求分析识别方法。本方法为:1)构建一对多的深度学习神经网络模型并对其进行训练;其中,深度学习神经网络模型包括一个编码器和m个解码器;所述编码器用于计算需求文本的隐藏层状态向量并将其发送给每个解码器;解码器对输入数据依次进行处理生成一隐藏层状态向量;然后根据编码器生成的隐藏层状态向量和解码器生成的隐藏层状态向量生成一全局对齐权重向量,然后将上下文向量和隐藏层状态向量连接后输入Softmax层进行预测并输出一功能项;2)利用深度学习神经网络模型对待处理需求文本进行预测,生成m个功能项;3)合并m个功能项中相似的功能项,获得该待处理需求文本的功能项识别结果。

Description

一种基于深度学习的一对多需求分析识别方法
技术领域
本发明属于计算机技术领域,涉及需求工程,自然语言处理等技术,尤其是需求理解技术,用于解决从需求文本中自动提取多个功能项,同时针对该场景下一个需求文本对应多个功能项的问题,提出了基于深度学习的解决一对多问题的方案,该方案也可用于解决其他类似领域内一对多序列生成问题。
背景技术
需求文档是软件开发的开始,这些需求文档通常使用自然语言描述了各方利益相关者的愿望,之后,开发人员通过分析、设计和编码等工作将这些需求实现为可以工作的软件。需求分析是了解软件功能和更好地管理软件开发过程的基本过程。
功能项是一种用于度量和分析需求文档的标准和原子单元,是最常用的度量标准,用于定量测量交付给用户使用的软件系统功能的多少,这有助于更好地估算软件成本并规划开发进度。然而,功能项分析是极其依赖经验的,需要大量的人力,很多公司专门聘请功能项专家来完成功能项识别任务,并且可能需要购买昂贵的专业服务来进行功能项的识别和校准,以便第三方组织进行成本估算,这意味着自动功能项识别方法存在巨大的市场需求。因此,从需求文本中自动识别功能项以减少功能项专家的人工成本是有价值的。
传统的功能项识别方法在该场景下性能较低,原因主要有以下几点:很难找到通用的模式(pattern),使用通用pattern,规则过于松散,导致提取出过多功能项,召回率较高,准确率很低;有些功能项在故事文本的基础上,并不能直接使用句法、语法分析等nlp方法提取出来,需要了解背后系统的业务规则;故事和功能点对应关系为一对多,传统的s2s模型无法工作。
本发明基于递归神经网络(RNN),这是一种广泛使用的深度神经网络。RNN是一类用于建模序列数据(例如自然语言句子)的神经网络,网络的内部状态可以记录动态的临时行为。RNN的基本结构包括三层:将每个输入映射到矢量的输入层;在读取每个输入之后循环计算和更新隐藏状态的循环隐藏层;以及利用隐藏状态用于特定任务的输出层。与传统的前馈神经网络不同,RNN可以使用内部节点建模序列输入,例如句子。
Embedding(也称为分布式表示),是一种用于学习单词、句子和图像等实体的向量表示的技术,类似实体具有彼此接近的向量。典型的Embedding技术是Word Embedding,将单词表示为固定长度的向量,使得相似的单词在向量空间中相互接近。从它们的向量,可以估计它们的距离并识别它们的语义关系。Word Embedding通常由CBOW和Skip-Gram两种模型训练得到,这些模型构建了一个神经网络,捕捉一个词及其上下文词之间的关系,词向量可以作为网络参数一同训练。一个句子(即一个单词序列)也可以作为一个Embedding向量。一个简单的方法是将它视为一个单词序列,并将其所有词向量相加。
发明内容
针对现有技术存在的技术问题,本发明的目的在于提出一种基于深度学习的需求文档功能项识别方法,其结果可以是一对多或一对一等各种可能结果,减轻需求分析人员审查功能项的时间和工作量,实现业务自动化,提高工作效率。
本发明的技术方案为:
一种基于深度学习的一对多需求分析识别方法,其步骤为:
1)构建一对多的深度学习神经网络模型并对其进行训练;其中,深度学习神经网络模型包括一个编码器和m个解码器;所述编码器用于计算需求文本的隐藏层状态向量并将其发送给每个所述解码器;每一所述解码器包含一个Embedding层、两个GRU层、一个Attention层和一个Softmax层;所述解码器的embedding层、GRU层对输入数据依次进行处理生成一隐藏层状态向量并传入attention层;每一所述解码器的attention层根据编码器生成的隐藏层状态向量和解码器的GRU层生成的隐藏层状态向量计算得到一全局对齐权重向量,然后将所述上下文向量和解码器的GRU层生成的隐藏层状态向量进行连接并输入Softmax层,Softmax层对输入数据进行预测并输出一功能项;
2)利用训练好的深度学习神经网络模型对待处理需求文本进行预测,生成m个功能项;
3)合并m个功能项中相似的功能项,获得该待处理需求文本的功能项识别结果。
进一步的,训练所述深度学习神经网络模型的方法为:首先对训练数据中的所有功能项进行聚类,得到m个聚类结果;然后将不同聚类结果通过编码器处理后分别输入一对应的解码器进行训练。
进一步的,首先对每一功能项进行分词并训练生成对应功能项的词向量,然后通过平均各功能项中所包含的所有字的词向量,将功能项的词向量转换为句向量,然后利用K-Means算法将各句向量聚类为m个类。
进一步的,所述解码器使用基于掩码的损失函数;所述深度学习神经网络模型的总损失Loss是m个所述解码器损失的总和;即
Figure BDA0002334471480000021
D是解码器的数量,p(x)为输出序列中预测符号的概率分布,q(x)为输出序列中实际符号的概率分布。
进一步的,所述编码器包含一个Embedding层和两个双向GRU层,Embedding层用于对需求文本中的字进行编码,映射到指定大小的特征空间;双向GRU层包含前向RNN和后向RNN,前向RNN顺序读取源序列,后向RNN以相反的顺序读取源序列。
进一步的,所述双向GRU层之后设置一个Dropout层,用于防止过拟合。
进一步的,所述解码器的Attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前GRU输出的隐藏层状态向量进行连接。
进一步的,所述Softmax层采用公式
Figure BDA0002334471480000031
将输入数据转换为概率分布σ(z)j;其中,K是词汇表的大小。
进一步的,所述解码器的Embedding层和GRU层后分别设置一Dropout层。
一种计算机可读存储介质,其特征在于,存储一计算机程序,所述计算机程序包括用于执行上述方法中各步骤的指令。
本发明使用深度学习方法,对需求文本中的功能点进行识别,具体步骤为:
1.构建一对多的深度学习神经网络结构:
使用深度学习框架,构建一个与该使用场景相适应的网络结构,能够进行端到端地一对多序列生成任务。
2.设计神经网络中的注意力(Attention)机制:
在构建神经网络结构时,对注意力机制进行特殊的设计,方便网络在训练时能够更准确地捕捉到需求文本的语义,更好地对功能项进行识别。
3.训练数据预处理:
对输入神经网络的训练数据进行预处理,将其变换为能够输入网络结构进行训练的数据格式。
4.神经网络训练:
使用预处理好的数据对神经网络进行训练。
5.神经网络预测:
使用训练好的神经网络模型对新数据进行预测,当一个新的需求文本输入到模型中,模型会根据其语义生成多个功能项。
构建的深度学习神经网络结构中,为了能够进行一对多序列生成任务,分别设计了网络结构中的Encoder和Decoder模块。
传统序列到序列(Sequence to Sequence)神经网络架构大多基于广泛应用的Encoder-Decoder网络结构,为了应对功能点识别中一对多映射问题,本发明使用一个编码器和多个解码器的结构改进了传统的RNN模型。具体的Encoder和Decoder网络结构设计如下:
a)Encoder包含一个Embedding层和两个双向门循环单元(GRU)RNN层。Embedding层将需求文档中的每个字进行编码,映射到指定大小的特征空间,它可以在网络中与其他参数一起训练。单词被映射到连续的语义空间后,语义上相似的单词其向量之间的相似度较高(例如余弦距离较短)。双向GRU层具有两个方向的RNN,即前向和后向,两者具有相同的架构。前向RNN以正常的顺序读取源序列,后向RNN以相反的顺序读取。为了防止过拟合,本发明在双向GRU层之后添加一个Dropout层。对于整个编码器来说,输入是源序列(在本发明这个场景下,源序列是需求文本),编码器的输出是隐藏层状态向量(即双向GRU层的输出为需求文本的隐藏层状态向量),该向量被输入到解码器中以计算之后的上下文向量。
b)Decoder包含一个Embedding层、两个GRU层、一个Attention层和一个Softmax层,Embedding层和GRU层后面都紧跟一个Dropout层,Embedding层和GRU层的设计与编码器相同,Attention层和Softmax层功能设计在下文介绍。解码器的输入来自编码器的输出,依次经过上述各层,输出为一个功能项
设计神经网络的注意力机制中,如图2所示,本发明使用全局注意力模型来构建Attention层,并且设计了一种基于权重的注意力机制,以便更好地对较长的输入序列的语义进行建模(在本发明这个场景下,输入序列是需求文本):
在每个时间步骤中,Attention层首先使用来自编码器的隐藏层状态向量和GRU的当前输出来计算全局对齐权重向量;其中,如图2所示,Attention层有两个输入,一个是隐藏层状态向量,也就是依次经过解码器的embedding层,gru层传入attention层,另一个输入则是来自编码器的隐藏层状态向量。然后用它来加权编码器的隐藏层状态向量以形成上下文向量。上下文向量和当前GRU输出的隐藏层状态向量反映了序列信息的不同方面,即前者主要隐含输入序列的语义,而后者主要暗隐含前一时间步长的转移概率。传统的注意力机制简单地按照原始维度将两个矩阵进行连接,而在本发明设计的基于权重的机制中,对这两个向量的维度(即权重)进行调整以更好地模拟输入序列的语义。详细地,本发明使用两个完全连接层来重塑它们的维度,之后两个重新形成的向量进行矩阵连接操作,如图2所示,本发明的Attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前GRU输出的隐藏层状态向量进行连接。最后,Softmax层使用以下等式将前一层的输出转换为概率分布:
Figure BDA0002334471480000051
K是训练集文本词汇表(这里的词汇表实际为字表)的大小,z为Attention层的输出,其维度与词汇表大小相同,即K,zj为向量z的第j维元素,δ(z)j为输出的第j个字的概率分布,根据概率分布从K个字中选取概率最大的字作为输出,当解码字数达到规定最大长度或解码的字为结束符号,解码过程结束。
如图1所示,设计了一套能够进行一对多序列生成任务的网络结构。本发明提出的1-encoder-m-decoders模型由一个编码器和多个解码器组成。由编码器计算的隐藏层状态向量被传递到每个解码器以初始化这些解码器的隐藏层状态以及在Attention层中计算上下文向量。对于每个解码器,本发明使用基于掩码的损失函数,不计算那些被屏蔽的用于数据对齐的填充序列的损失函数。损失函数选择传统的交叉熵。总Loss是多个解码器loss的总和,如下所示:
Figure BDA0002334471480000052
M是解码器的数量,p(x)和q(x)分别是输出序列中预测符号和实际符号的概率分布,x为softmax层的输入。
训练数据预处理中,由于一个需求可以包含多个功能项,如何将这些数据输入到模型中进行训练成为一个问题。本发明提出的方法是首先对功能项进行聚类,然后根据聚类结果转换成与1-encoder-m-decoders架构对齐的一对多映射数据:
首先,本发明基于语义将训练数据中的所有功能项聚类(训练数据标注了需求文本所包含的各功能项,训练时输入为标注的需求文本,输出为功能项),聚类的数量与解码器的数量相等,使数据格式与模型架构保持一致。利用词向量对功能项的语义进行建模,并使用生成的词向量作为聚类的特征。详细地,本发明使用自然语言处理技术对功能项进行处理,首先使用分词来将功能项分段为单词。然后,使用开源工具训练得到功能项的词向量,这样每个单词都可以转换为一个d维向量,同时,每个功能项可以转换成矩阵,其中每行代表功能项中的一个字。最后通过平均功能项中包含的所有字的词向量,将功能项矩阵转换为句向量。有了一个功能项的句向量,利用K-Means算法将它们聚类为m个类,其中m等于解码器的数量。
聚类之后,对一个原始的数据实例<R,FP1,FP2,...,FPn>进行重新组织,将其对应功能项的个数组织成m个,即与解码器数量以及聚类个数相同。则新生成的数据格式为<R,FP1,FP2,...,FPm>,其中FPm为聚类后属于第m类的功能项,对于不存在该类中的功能项,用NULL来表示,这样一个数据实例生成新数据实例的个数为:
Figure BDA0002334471480000061
|Ck|为该需求对应功能项中属于类Ck的功能项个数。
本发明提出了一种一对多需求分析识别的方法,用于根据需求描述自动识别功能项。为此本发明设计了一种具有一个编码器和多个解码器(1-encoder-m-decoders)的递归神经网络,以解决一对多映射问题。本发明还提出了模型训练的方法,首先根据训练数据集的语义自动聚类训练数据集中的功能项,基于聚类结果,将原始数据实例转换成与1-encoder-m-decoders架构对齐的数据格式。当进行功能项识别时,需求文本被输入到训练好的模型中,多个解码器将相应地生成一组功能项。在合并类似的功能项之后,获得最终识别的功能项结果,其个数小于等于m。
本发明的贡献主要有:提出了一种新颖的深度神经网络结构,具有一个编码器和多个解码器,以解决一对多序列学习问题;用聚类和数据变换训练1-encoder-m-decoders模型的方法;利用1-encoder-m-decoders模型识别需求文档中的功能点。
本发明的优势主要有以下三点:
1.使用词向量而不是词袋。本发明和基于模式匹配等方法之间的主要差异在于本发明使用词向量将单词映射到连续的语义空间中,其中具有相似语义的单词具有相似的向量表示。在模型输入需求文本中的单词时,模型将它们映射到语义向量。训练时由于相似语义的单词具有相似的向量表示,对RNN编码器的隐藏层状态具有相似的影响。因此,具有需求中语义相似的单词的可以获得类似的结果。
2.学习通用序列而不是提取特定模式。解码器本身是一种语言模型,能记住不同序列的可能性。模型训练时在不同需求文本下学习的那些共同序列将具有更高的概率,而基于模式匹配的方法只考虑匹配单个单词或提取模式。同时编码器的隐藏层具有存储特性,它不仅考虑单个词,还考虑它们的相对位置。通过这种方式,它不仅可以学习单词,还可以学习序列,而传统技术只考虑单个词。
3.能够分别解码需求文本的不同方面。本发明设计为一个编码器和多个解码器的网络结构,利用不同的解码器来学习需求的不同方面。需求对应的功能项是相互纠缠的,甚至需求中的一个句子也可能涉及多个功能项。因此,功能项识别不能简单地通过将需求分成句子,然后将它们组织成<句子,功能项>对来完成,因此本发明使用多个解码器来处理一个需求和多个功能项之间的映射。
附图说明
图1为1-encoder-m-decoders神经网络结构示意图。
图2为神经网络中注意力机制流程图。
图3为本发明的整体流程图。
具体实施方式
下面结合附图对本发明进行进一步详细描述。
本发明的目的是提出了一种一对多需求分析识别的方法,用于根据需求描述自动识别功能项。为此本发明设计了一种具有一个编码器和多个解码器(1-encoder-m-decoders)的递归神经网络,以解决一对多映射问题。本发明还提出了模型训练的方法,首先根据训练数据集的语义自动聚类训练数据集中的功能项,基于聚类结果,将原始数据实例转换成与1-encoder-m-decoders架构对齐的数据格式。当进行功能项识别时,需求文本被输入到训练好的模型中,多个解码器将相应地生成一组功能项。在合并类似的功能项之后,获得最终识别的功能项结果。发明整体流程如图3所示,本发明具体实施方式有以下五个步骤:构建一对多的深度学习神经网络结构,设计神经网络中的注意力(Attention)机制,训练数据预处理,神经网络训练,神经网络预测。
1.构建一对多的深度学习神经网络结构
为了能够进行一对多序列生成任务,首先分别设计了网络结构中的Encoder和Decoder模块。传统序列到序列(Sequence to Sequence)神经网络架构大多基于广泛应用的Encoder-Decoder网络结构,为了应对功能点识别中一对多映射问题,本发明使用一个编码器和多个解码器的结构改进了传统的RNN模型。具体的Encoder和Decoder网络结构设计如下:
Encoder包含一个Embedding层和两个双向GRU RNN层。Embedding层将字进行编码,映射到指定大小的特征空间,它可以在网络中与其他参数一起训练。单词被映射到连续的语义空间后,语义上相似的单词其向量之间的相似度较高(例如余弦距离较短)。双向GRU层具有两个方向的RNN,即前向和后向,两者具有相同的架构。前向RNN以正常的顺序读取源序列,后向RNN以相反的顺序读取。为了防止过拟合,本发明在双向GRU层之后添加一个Dropout层。对于整个编码器来说,输入是源序列(在本发明这个场景下,源序列是需求文本),编码器的输出是隐藏层状态向量,该向量被输入到解码器中以计算之后的上下文向量。
Decoder包含一个Embedding层、两个GRU层、一个Attention层和一个Softmax层,Embedding层和GRU层后面都紧跟一个Dropout层,Embedding层和GRU层的设计与编码器相同。
根据设计好的Encoder和Decoder模块,本发明设计了一套如图1所示能够进行一对多序列生成任务的网络结构。本发明提出的1-encoder-m-decoders模型由一个编码器和多个解码器组成。由编码器计算的隐藏层状态向量被传递到每个解码器以初始化这些解码器的隐藏层状态以及在Attention层中计算上下文向量。对于每个解码器,本发明使用基于掩码的损失函数,不计算那些被屏蔽的用于数据对齐的填充序列的损失函数。损失函数选择传统的交叉熵。总loss是多个解码器loss的总和,如下所示:
Figure BDA0002334471480000081
D是解码器的数量,p(x)和q(x)分别是输出序列中预测符号和实际符号的概率分布。
2.设计神经网络中的注意力(Attention)机制
如图2所示,本发明使用全局注意力模型来构建Attention层,并且设计了一种基于权重的注意力机制,以便更好地对较长的输入序列的语义进行建模(在本发明这个场景下,输入序列是需求文本):
在每个时间步骤中,Attention层首先使用来自编码器的隐藏层状态向量GRU的当前输出来计算全局对齐权重向量。然后用它来加权隐藏层状态向量以形成上下文向量。上下文向量和当前GRU的输出反映了序列信息的不同方面,即前者主要隐含输入序列的语义,而后者主要暗隐含前一时间步长的转移概率。传统的注意力机制简单地按照原始维度将两个矩阵进行连接,而在本发明设计的基于权重的机制中,对这两个向量的维度(即权重)进行调整以更好地模拟输入序列的语义。详细地,本发明使用两个完全连接层来重塑它们的维度,之后两个重新形成的向量进行矩阵连接操作。最后,Softmax层使用以下等式将前一层的输出转换为概率分布:
Figure BDA0002334471480000082
K是词汇表的大小。
3.训练数据预处理
由于一个需求可以包含多个功能项,如何将这些数据输入到模型中进行训练成为一个问题。本发明提出的方法是首先对功能项进行聚类,然后根据聚类结果转换成与1-encoder-m-decoders架构对齐的一对多映射数据:
首先,本发明基于语义将训练数据中的所有功能项聚类,聚类的数量与解码器的数量相等,使数据格式与模型架构保持一致。利用词向量对功能项的语义进行建模,并使用生成的词向量作为聚类的特征。详细地,本发明使用自然语言处理技术对功能项进行处理,首先使用分词来将功能项分段为单词。然后,使用开源工具训练得到功能项的词向量,这样每个单词都可以转换为一个d维向量,同时,每个功能项可以转换成矩阵,其中每行代表功能项中的一个字。最后通过平均功能项中包含的所有字的词向量,将功能项矩阵转换为句向量。有了一个功能项的句向量,利用K-Means算法将它们聚类为m个类,其中m等于解码器的数量。
聚类之后,对一个原始的数据实例<R,FP1,FP2,...,FPn>进行重新组织,将其对应功能项的个数组织成m个,即与解码器数量以及聚类个数相同。则新生成的数据格式为<R,FP1,FP2,...,FPm>,其中FPm为聚类后属于第m类的功能项,对于不存在该类中的功能项,用NULL来表示,这样一个数据实例生成新数据实例的个数为:
Figure BDA0002334471480000091
|Ck|为该需求对应功能项中属于类Ck的功能项个数。
4.神经网络训练
搭建好网络结构以及对数据进行预处理之后,对模型进行训练。通过大量实验,设置好神经网络各个超参数的取值,包括学习率、网络层数、隐藏层结点数、词向量维度等。
训练过程中,网络的损失函数loss值随着迭代不断下降,当loss值趋于稳定时,代表网络已经收敛,迭代训练停止。
5.神经网络预测
获得训练好的模型之后,可以对新的需求文本进行预测,生成多个功能项。基于所提出的1-encoder-m-decoders架构,输入一个需求文本可以生成m个候选功能项。
之后需要对这个候选集进行重复项合并,根据以下策略合并这些候选功能项:对于NULL的功能项,即空字符串,只需删除它。对于其他情况,使用归一化的Levenshtein距离计算它们之间的编辑距离来比较每对功能项。如果两个功能项的编辑距离小于0.1,这表明它们彼此非常相似,将它们视为相同的功能项并保留其中较长的一个。如果两者长度相同,则随机保留一个。
当应用本发明进行功能点识别时,只需要配置解码器的数量,之后所有后续步骤都可以自动进行。该参数可以根据一个需求最多可包含多少功能项来确定。例如,如果配置了3个解码器,则聚类数量也会自动设置为3。当新的需求到来时,模型将根据训练好的模型进行功能点识别。每个解码器可以生成一个功能项,之后将删除空的功能项并合并类似功能项,最终获得的功能项个数小于等于3。

Claims (7)

1.一种基于深度学习的一对多需求分析识别方法,其步骤为:
1)构建一对多的深度学习神经网络模型并对其进行训练;其中,深度学习神经网络模型包括一个编码器和m个解码器;所述编码器用于计算需求文本的隐藏层状态向量并将其发送给每个所述解码器;每一所述解码器包含一个Embedding层、两个GRU层、一个Attention层和一个Softmax层;所述解码器的embedding层、GRU层对输入数据依次进行处理生成一隐藏层状态向量并传入attention层;每一所述解码器的attention层根据编码器生成的隐藏层状态向量和解码器的GRU层生成的隐藏层状态向量计算得到一全局对齐权重向量,然后用所述全局对齐权重向量与所述隐藏层状态向量加权计算得到上下文向量,并将所述上下文向量和解码器的GRU层生成的隐藏层状态向量进行连接并输入Softmax层,Softmax层对输入数据进行预测并输出一功能项;
2)利用训练好的深度学习神经网络模型对待处理需求文本进行预测,生成m个功能项;其中训练所述深度学习神经网络模型的方法为:首先对每一功能项进行分词并训练生成对应功能项的词向量,然后通过平均各功能项中所包含的所有字的词向量,将功能项的词向量转换为句向量,然后利用K-Means算法将各句向量聚类为m个类,得到m个聚类结果;然后将不同聚类结果通过编码器处理后分别输入一对应的解码器进行训练;所述解码器使用基于掩码的损失函数;所述深度学习神经网络模型的总损失Loss是m个所述解码器损失的总和;即
Figure FDA0003009935810000011
D是解码器的数量,p(x)为输出序列中预测符号的概率分布,q(x)为输出序列中实际符号的概率分布;
3)合并m个功能项中相似的功能项,获得该待处理需求文本的功能项识别结果。
2.如权利要求1所述的方法,其特征在于,所述编码器包含一个Embedding层和两个双向GRU层,Embedding层用于对需求文本中的字进行编码,映射到指定大小的特征空间;双向GRU层包含前向RNN和后向RNN,前向RNN顺序读取源序列,后向RNN以相反的顺序读取源序列。
3.如权利要求2所述的方法,其特征在于,所述双向GRU层之后设置一个Dropout层,用于防止过拟合。
4.如权利要求1所述的方法,其特征在于,所述解码器的Attention层包括两个全连接层和一个矩阵连接操作,矩阵连接操作将上下文向量和当前GRU输出的隐藏层状态向量进行连接。
5.如权利要求1所述的方法,其特征在于,所述Softmax层采用公式
Figure FDA0003009935810000021
将输入数据转换为概率分布;其中,K是词汇表的大小,z为Attention层的输出向量,zj为向量z的第j维元素,σ(z)j为输出的第j个字的概率分布。
6.如权利要求1所述的方法,其特征在于,所述解码器的Embedding层和GRU层后分别设置一Dropout层。
7.一种计算机可读存储介质,其特征在于,存储一计算机程序,所述计算机程序包括用于执行权利要求1至6任一所述方法中各步骤的指令。
CN201911350243.7A 2019-12-24 2019-12-24 一种基于深度学习的一对多需求分析识别方法 Active CN111158640B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911350243.7A CN111158640B (zh) 2019-12-24 2019-12-24 一种基于深度学习的一对多需求分析识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911350243.7A CN111158640B (zh) 2019-12-24 2019-12-24 一种基于深度学习的一对多需求分析识别方法

Publications (2)

Publication Number Publication Date
CN111158640A CN111158640A (zh) 2020-05-15
CN111158640B true CN111158640B (zh) 2021-06-01

Family

ID=70557938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911350243.7A Active CN111158640B (zh) 2019-12-24 2019-12-24 一种基于深度学习的一对多需求分析识别方法

Country Status (1)

Country Link
CN (1) CN111158640B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9922272B2 (en) * 2014-09-25 2018-03-20 Siemens Healthcare Gmbh Deep similarity learning for multimodal medical images
CN109829161A (zh) * 2019-01-30 2019-05-31 延边大学 一种多语种自动摘要的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170357890A1 (en) * 2016-06-09 2017-12-14 Sysomos L.P. Computing System for Inferring Demographics Using Deep Learning Computations and Social Proximity on a Social Data Network
CN109388808B (zh) * 2017-08-10 2024-03-08 陈虎 一种用于建立单词翻译模型的训练数据采样方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9922272B2 (en) * 2014-09-25 2018-03-20 Siemens Healthcare Gmbh Deep similarity learning for multimodal medical images
CN109829161A (zh) * 2019-01-30 2019-05-31 延边大学 一种多语种自动摘要的方法

Also Published As

Publication number Publication date
CN111158640A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN109284506B (zh) 一种基于注意力卷积神经网络的用户评论情感分析系统及方法
CN110070183B (zh) 一种弱标注数据的神经网络模型训练方法及装置
CN111694924B (zh) 一种事件抽取方法和系统
WO2023024412A1 (zh) 基于深度学习模型的视觉问答方法及装置、介质、设备
CN112926303B (zh) 一种基于BERT-BiGRU的恶意URL检测方法
CN113268609A (zh) 基于知识图谱的对话内容推荐方法、装置、设备及介质
CN113065358B (zh) 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法
CN114443827A (zh) 基于预训练语言模型的局部信息感知对话方法及系统
CN111400494B (zh) 一种基于GCN-Attention的情感分析方法
CN111985205A (zh) 一种方面级情感分类模型
CN113626589B (zh) 一种基于混合注意力机制的多标签文本分类方法
CN111966812A (zh) 一种基于动态词向量的自动问答方法和存储介质
CN115145551A (zh) 一种面向机器学习应用低代码开发的智能辅助系统
CN112347756A (zh) 一种基于序列化证据抽取的推理阅读理解方法及系统
CN111597816A (zh) 一种自注意力命名实体识别方法、装置、设备及存储介质
CN115687609A (zh) 一种基于Prompt多模板融合的零样本关系抽取方法
CN116484024A (zh) 一种基于知识图谱的多层次知识库构建方法
CN111145914A (zh) 一种确定肺癌临床病种库文本实体的方法及装置
CN114582448A (zh) 基于预训练语言模型的疫情病例信息抽取框架构建方法
CN111158640B (zh) 一种基于深度学习的一对多需求分析识别方法
CN113505937B (zh) 一种基于多视角编码器的法律判决预测系统及方法
CN115422945A (zh) 一种融合情感挖掘的谣言检测方法及系统
CN115983269A (zh) 一种智慧社区数据命名实体识别方法、终端及计算机介质
Lee et al. A two-level recurrent neural network language model based on the continuous Bag-of-Words model for sentence classification
CN117908837A (zh) 一种基于nlp深度学习软件需求功能生成方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant