掌桥专利:专业的专利平台
掌桥专利
首页

一种基于自然语言预训练模型(BERT)的软件功能点识别方法

文献发布时间:2023-06-19 11:52:33


一种基于自然语言预训练模型(BERT)的软件功能点识别方法

技术领域

本发明属于功能点识别技术领域,具体地涉及一种功能点识别方法、设备、应用及计算机设备。

背景技术

功能点方法是一种估算软件项目大小的方法,它是从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。功能点方法的核心思想是把软件系统按照组件进行分解,从而确定系统的功能点数量。功能点方法是一种分解类的规模度量方法,即把复杂的系统分解为较小的子系统进行评估。把软件系统按照组件进行分解,从而确定系统的功能点数量。

采用功能点方法进行估计工作,需要人工阅读软件需求文档,利用评估人员所掌握的专业知识,从需求文档中识别出功能点,并根据行业生产率基准数据等计算出软件研发成本。

采用现有功能点方法实现软件功能点识别,对评估人员的要求高,不仅需要掌握功能点方法的专业知识,还需要掌握软件应用领域和开发领域的专业知识,因而整体评估效率低下。

发明内容

为了解决现有的问题,本发明提供一种功能点识别方法、设备、应用及计算机设备,其通过命名实体识别模型识别出需求描述语句中的命名实体,将命名实体与分词进行合并后实现功能点识别,其不需要人工参与评估,功能点识别速度快,准确性。

本发明通过以下技术方案实现:

第一方面,本方案提供一种功能点识别方法,包括以下步骤:

获取至少一个需求描述语句;

将所述至少一个需求描述语句输入已训练完成的命名实体识别模型中得到至少一个命名实体;

对所述至少一个需求描述语句进行分词处理得到分词集,所述分词集包括至少一个分词;

将所述至少一个命名实体和分词集中分词进行合并,对合并后的结果进行词性标注;

对词性标注结果进行处理识别出功能点。

本方案基于命名实体识别模型识别出需求描述语句中的命名实体,并将命名实体与需求描述语句的分词进行合并,通过对合并结果词性标注结果进行分析识别出功能点,采用该方法,其不需要人工参与评估,功能点识别速度快,准确性高。

在一个可能的设计中,所述对词性标注结果进行处理识别出功能点包括:

对词性标注的结果进行依存句法分析,得到词与词之间的依存关系;

根据依存关系识别功能点。

在一个可能的设计中,所述命名实体识别模型包括依次信号连接的双向预训练语言模型Bert和条件随机场CRF。譬如针对软件,其领域广泛,某些领域受限于语料的局限性,识别效果不稳定,本方案采用基于双向预训练语言模型Bert和条件随机场CRF构成命实体识别模型,在主层双向预训练语言模型Bert的基础上增加条件随机场CRF层,通过双向预训练语言模型Bert学习专业领域命名实体标签之间的条件概率,通过条件随机场CRF学习命名实体标签之间的转移概率,条件随机场是一种无向图模型,是一个典型的判别式模型,结合了最大熵模型和隐马尔可夫模型的特点,由于条件随机场采用了全局归一化,因此克服了最大熵、隐马尔可夫等标签偏置的问题;通过两者的结合,有效的提高识别的稳定性和跨领域识别能力。相比于现有的基于最大熵、条件随机场、循环神经网络等技术的模型比较,模型结构新颖,识别的稳定性和跨领域识别能力强。

在一个可能的设计中,所述双向预训练语言模型Bert的训练方法包括:

利用训练集对双向预训练语言模型Bert进行预训练,所述训练集中包括多领域的语料数据,所述多领域的语料数据中的每个语料数据包括至少一个需求描述语句;

利用一专业领域的语料数据对预训练后的双向预训练语言模型Bert进行调整,所述一专业领域的语料数据包括至少一个该专业领域的需求描述语句。

本方案采用多领域需求描述语句对双向预训练语言模型Bert进行预训练,并利用一专业领域需求描述语句对其进行微调,提高双向预训练语言模型Bert对相应专业领域命名实体标签之间条件概率的识别准确度。

在一个可能的设计中,所述功能点包括内部逻辑文件ILF、外部接口文件EIF、外部输入EI、外部输出EO、外部查询EQ中至少一种。

第二方面,本发明提供一种软件研发成本预估方法,包括以下步骤:

采用上述第一方面中任意一种功能点识别方法识别出软件需求性文档中的功能点;

基于功能点、行业基准数据计算软件研发成本。

第三方面,本发明提供一种功能点识别设备,包括依次通信连接的语句获取模块、命名实体获取模块、合并模块、词性标注模块、功能点识别模块,所述语句获取模块、合并模块之间还通信连接有分词模块;

所述语句获取模块,用以获取至少一个需求描述语句;

所述命名实体获取模块,用于将所述至少一个需求描述语句输入已训练完成的命名实体识别模型中得到至少一个命名实体;

所述分词模块,用以对所述至少一个需求描述语句进行分词处理得到分词集,所述分词集包括至少一个分词;

所述合并模块,用以将所述至少一个命名实体和分词集中的至少一个分词进行合并;

所述词性标注模块,用以对合并后的结果进行词性标注;

所述功能点识别模块,用以对词性标注结果进行处理识别出功能点。

第四方面,本发明提供一种软件研发成本预估设备,包括依次通信连接的功能点识别设备、成本核算模块,

所述功能点识别设备为上述第三方面提供的功能点识别设备;

所述成本核算模块,用于根据功能点、行业基准数据计算软件研发成本。

第五方面,本发明提供一种计算机设备,包括通信相连的存储器和处理器,其中,所述存储器用于存储计算机程序,所述处理器用于读取所述计算机程序,执行如第一方面所述的功能点识别方法或第二方面所述的软件研发成本预估方法。

第六方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的功能点识别方法或第二方面所述的软件研发成本预估方法。

本发明与现有技术相比,至少具有以下优点和有益效果:

本方案基于命名实体识别模型识别出需求描述语句中的命名实体,并将命名实体与需求描述语句的分词进行合并,通过对合并结果词性标注结果进行分析识别出功能点,采用该方法,其不需要人工参与评估,功能点识别速度快,准确性高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明功能点识别方法的流程图;

图2是本发明一具体需求描述语句的识别图;

图3是命名实体识别模型结构图;

图4是本发明软件研发成本预估方法的流程图;

图5功能点识别设备的原理图。

具体实施方式

下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。

应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。

应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。

应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。

应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。

应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。

应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。

本实施例第一方面提供一种功能点识别方法,该方法可以由一识别装置来执行,识别装置可以为软件,或者为软件和硬件的组合,识别装置可以集成设置在服务器、终端设备等中。具体的,如图1所示,功能点识别方法包括以下步骤S101~步骤S105:

步骤S101、获取至少一个需求描述语句。该需求描述语句可以是已被标注提炼的纯需求描述语句,也可是通过对需求文档进行预处理后得到的需求描述语句。若获取的是需求文档,则需对需求文档进行预处理,读取其中的功能性需求部分,得到需求描述语句。以图2中需求描述语句“资源管理系统提供对各专业网内设备进行机历卡管理的功能,允许操作人员记录、修改、删除、查询和查看相应信息”为例进行说明。

步骤S102、将所述至少一个需求描述语句输入已训练完成的命名实体识别模型中得到至少一个命名实体。命名实体包括实体、操作、属性、功能、其他。其中,实体即为业务实体及对应的通用词汇,例如用户、账户等;操作即对实体的操作,例如新增、删除、修改、查询等数据操作及开户、销户等专业操作词汇;属性即业务实体的属性名称,例如用户的密码、电话等;功能即一个综合性的业务功能,例如日报表;其他即一些修饰限定词,例如消费类工单中的消费类。

该步骤S102中用到的命名实体识别模型可以有多种方式实现,本实施例优选利用双向预训练语言模型Bert和条件随机场CRF构成命名实体识别模型,其构建的命名实体识别模型结构如图3所示。

命名实体识别模型在使用前,需提前训练,其训练有多种,其一,利用训练集对双向预训练语言模型Bert进行预训练,所述训练集中包括多领域的语料数据,所述多领域的语料数据中的每个语料数据包括至少一个需求描述语句。训练集可采用海量维基百科数据,其语料涉及各个领域,训练集数量大,使得双向预训练语言模型Bert包含大量的先验知识,有助于提升模型的识别性能和跨域识别能力。其二,利用训练集对双向预训练语言模型Bert进行预训练,所述训练集中包括多领域的语料数据,所述多领域的语料数据中的每个语料数据包括至少一个需求描述语句,训练集可采用海量维基百科数据。再利用一专业领域的至少一语料数据对预训练后的双向预训练语言模型Bert进行调整,所述专业领域的至少一语料数据中的每个语料数据包括至少一个该专业领域的需求描述语句。该专业领域对实际应用时需求描述语句的领域相同,即与步骤S101中需求描述语句的领域相同,譬如,若是针对建筑方面的需求性文档进行功能点识别,则将建筑领域的需求描述语句作为双向预训练语言模型Bert的调整训练集。

通过将图2中的需求描述语句为例,将其输入第二种训练方式得到的命名实体识别模型中,其得到的命名实体包括实体、操作、属性、功能、其他,具体包括机历卡、管理、记录、修改、删除、查询、查看。

步骤S103、对所述至少一个需求描述语句进行分词处理得到分词集,所述分词集包括至少一个分词。

该步骤中,若需求描述语句为中文,则对其进行中文分词处理;若需求描述语句为英文,则对其进行英文分词处理。

步骤S104、将所述至少一个命名实体和分词集中分词进行合并,对合并后的结果进行词性标注。词性标注可基于隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional random fields,CRFs)、最大熵马尔可夫模型(Maximum Entropy MarkovModel,MEMM)、循环神经网络(Recurrent Neural Network,RNN)、支持向量机(SupportVector Machine,SVM)。

步骤S105、对词性标注结果进行处理识别出功能点。具体的,先对词性标注的结果进行依存句法分析,得到词与词之间的依存关系;再根据依存关系识别功能点。

本步骤S105中识别出的功能点包括内部逻辑文件ILF、外部接口文件EIF、外部输入EI、外部输出EO、外部查询EQ中至少一种。以步骤图2中需求描述语句为例,识别出的功能点包括内部逻辑文件ILF、外部输入EI、外部输出EO、外部查询EQ,其中,其具体识别结果详见图2。

通过上述步骤S101~步骤S105所详细描述的功能点识别方法,其通过命名实体识别模型识别出需求描述语句中的命名实体,并将命名实体与需求描述语句的分词进行合并,通过对合并结果词性标注结果进行分析识别出功能点,采用该方法,其不需要人工参与评估,功能点识别速度快,准确性高。

本实施例第二方面提供一种软件研发成本预估方法,该方法同样可以由一预估装置来执行,预估装置可以为软件,或者为软件和硬件的组合,预估装置可以集成设置在服务器、终端设备等中。具体的,如图4所示,该软件研发成本预估方法包括以下步骤S201~步骤S202。

步骤S201、采用第一方面中步骤S101~步骤S105任意一种功能点识别方法识别出软件需求性文档中的功能点。

步骤S202、基于功能点、行业基准数据计算软件研发成本。

本实施例第三方面提供一种功能点识别设备,如图5所示,该功能点识别设备包括依次通信连接的语句获取模块、命名实体获取模块、合并模块、词性标注模块、功能点识别模块,所述语句获取模块、合并模块之间还通信连接有分词模块;

所述语句获取模块,用以获取至少一个需求描述语句;

所述命名实体获取模块,用于将所述至少一个需求描述语句输入已训练完成的命名实体识别模型中得到至少一个命名实体;

所述分词模块,用以对所述至少一个需求描述语句进行分词处理得到分词集,所述分词集包括至少一个分词;

所述合并模块,用以将所述至少一个命名实体和分词集中的至少一个分词进行合并;

所述词性标注模块,用以对合并后的结果进行词性标注;

所述功能点识别模块,用以对词性标注结果进行处理识别出功能点。

在一种可能的设计中,该识别装置还包括一存储模块,所述存储模块用以存储需求描述语句、命名实体识别模型的训练集等信息。

在一种可能的设计中,所述功能点识别模块包括依次通信连接的依存分析模块和识别模块,所述依存分析模块对词性标注的结果进行依存句法分析,得到词与词之间的依存关系;识别模块根据依存关系识别功能点。

在一种可能的设计中,所述命名实体获取模块包括依次信号连接的双向预训练语言模型Bert和条件随机场CRF。

本实施例第三方面提供一种软件研发成本预估设备,该软件研发成本预估设备包括依次通信连接的功能点识别设备、成本核算模块,

所述功能点识别设备为第三方面及其任一种可能设计的功能点识别设备;

所述成本核算模块,用于根据功能点、行业基准数据计算软件研发成本。

本实施例第四方面提供一种计算机设备,包括通信相连的存储器和处理器,其中,所述存储器用于存储计算机程序,所述处理器用于读取所述计算机程序,执行如上述第一方面的功能点识别方法或第二方面的软件研发成本预估方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-OnlyMemory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。

本实施例第五方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如上述第一方面的功能点识别方法或第二方面的软件研发成本预估方法。

以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

相关技术
  • 一种基于自然语言预训练模型(BERT)的软件功能点识别方法
  • 基于BERT预训练模型的新词识别方法和装置
技术分类

06120113084441