一种自动化数据功能项抽取的方法技术

技术编号:25989985 阅读:25 留言:0更新日期:2020-10-20 18:58
本发明专利技术提出一种自动化数据功能项抽取的方法,将需求文本根据标点符号划分为句子,抽取句子中每个单词的上下文特征;给句子中的每一个单词打上标签,作为标注数据;使用标注数据训练初始的CRF模型,迭代地使用该CRF模型预测未标注的数据,从中选取置信度高于置信度阈值的样本来扩充训练集合;使用扩后后的训练集合重新训练CRF模型,最终得到候选功能项集合;使用历史功能项训练面向功能项的语言模型;使用训练好的面向功能项的语言模型对候选功能项集合进行过滤,抽取符合的功能项。本方法从需求描述中进行数据功能项的自动化抽取,提高抽取的精度,代替人力抽取功能项,并降低抽取的成本。

【技术实现步骤摘要】
一种自动化数据功能项抽取的方法
本专利技术属于计算机领域,涉及软件规模度量,尤其是功能点分析技术,用于从需求文本中自动化抽取数据功能项,提高专家进行数据功能项抽取的效率,为一种自动化地数据功能项抽取的方法。
技术介绍
功能点分析方法是一种从用户视角,度量软件规模和复杂度的技术。借助功能点分析方法,项目管理者可以更好地计划和管理软件的开发、维护等过程。“功能点”是功能点分析结果的基本单位。功能点分析后,软件会被度量为一定数量的“功能点”。功能点方法在软件度量中起着十分重要的作用,随着功能点分析技术的广泛引用,从1979年起,诸如IFPUG、COSMIC、NESMA等功能点分析标准接连被提出,来支持功能点方法的应用。在功能点分析方法中,最主要的工作是抽取“功能项”。功能项是需求中的名词或者动词短语,用来描述软件的功能。功能项主要被分为两类:数据功能项和交易类功能项。数据功能项通常为系统中的业务对象、数据块或控制信息,其通常表述为名词短语;交易功能项则为软件在数据功能项上的操作,通常表述为“动词+名词”短语的形式。在实际的应用中,由于自动化方法的缺失,无论是数据功能项还是交易功能项都需要靠专家的手工抽取。随着项目的快速迭代和积累,手工抽取功能项变得越来越消耗人力。并且,由于不同专家对业务逻辑理解的不同,会为功能项抽取产生的结果带来误差。由于需求文本和功能项都是通过自然语言进行描述,自动化信息抽取的方法为功能项的自动化抽取提供提供了一种可能。现在已有的信息抽取方法,主要可以分为两类:基于启发式规则的方法和基于机器学习的方法。两类方法都不能有效地应用在功能项的自动化抽取,主要原因如下。1)基于启发式的规则通常是由专家给定一系列的语言模板。然后依靠这些先验启发式规则,来进行功能项的自动抽取。由于需求文本中还存在着功能性描述和非功能性描述的内容,而功能项仅仅和功能性描述相关。基于启发式规则的方法会抽取所有复合语言模板的短语,并不具备区分功能性和分功能性描述的能力,这会对功能项的抽取带来很多噪音,影响功能项抽取的准确率;2)基于机器学习的方法是利用机器学习技术,可以从样本中学习功能项抽取的规则,过滤掉与功能无关的信息,具备功能性描述判别的能力。但是以往的基于机器学习的信息抽取方法,往往需要大量的标注数据来达到期望的模型性能。功能项的标注过程需要大量的人力成本。并且,功能项的抽取需要大量的领域专家知识,这更大加大了数据标注的成本。在少量标注样本下,达到令人满意的模型性能,是功能项抽取需要解决的一个问题。
技术实现思路
本专利技术的目的是提出一种自动化数据功能项抽取的方法,在少量标注样本上训练条件随机场模型,从需求描述中进行数据功能项的自动化抽取,提高抽取的精度,代替人力抽取功能项,并降低抽取的成本。为达到上述目的,本专利技术采用的技术方案如下:一种自动化数据功能项抽取的方法,包括以下步骤:将需求文本根据标点符号划分为句子,抽取句子中每个单词的上下文特征;给句子中的每一个单词打上标签,并作为标注数据;使用标注数据,训练初始的条件随机场(conditionalrandomfield,CRF)模型,迭代地使用CRF模型预测未标注的数据,从中选取置信度高于置信度阈值的样本来扩充训练集合;使用扩后后的训练集合重新训练CRF模型,最终得到候选功能项集合;使用历史功能项训练面向功能项的语言模型;使用训练好的面向功能项的语言模型,对候选功能项集合进行过滤,抽取符合的功能项。本专利技术方法将功能项抽取建模为序列表述的方法,训练条件随机场模型来预测每一个单词是否为功能项的开始和结束,实现功能项的准确抽取;为了解决数据标标注成本高的问题,提出了一种基于bootstrapping的迭代训练方法,利用未表述的数据,来提高模型的性能;最后,使用历史数据功能项训练了面向数据功能项的语言模型,对候选数据功能项进行过滤,来提高数据功能项抽取的精度。附图说明图1为一种自动化数据功能项抽取的方法的框架图。具体实施方式下面通过具体实施方式对本方法作进一步说明;第一步,根据文本中的标点符号将需求文本划分为句子,将每一个句子作为模型训练的一条样本。对于句子中的每一个单词,构造一个特征窗口,其包括当前词、当前词的前n个单词以及当前词的后n个单词。对于特征窗口中的每个单词,抽取如下三组特征:1、字符串特征,当前词的字符串作为特征输入模型;2、词性特征,当前词的词性;3、tf-idf特征,当前词在所有语料中的tf-idf特征;如果词出现在了句子的末尾,其特征窗口内的单词为空,会为其赋默认值(字符串特征赋值“NULL”,词性特征赋值“NULL”,if-idf特征赋值-1)。第二步,为句子中的每一个单词打上标签,作为标注数据,标签集合遵循BIOES标准:B标签:该单词为功能项的起始单词;I标签:该单词为功能项的单词,且不是起始或者结尾单词;E标签:该单词为功能项的结尾单词;S标签:该单词为完整的功能项;O标签:该单词不是功能项中的单词。第三步,训练CRF模型,并使用基于自举的bootstrapping方法,在未标注的需求文本上扩充训练集,并迭代训练模型。具体步骤如下。a、使用标注数据训练初始crf模型,并设置初始样本选择置信度阈值T(u),其中置信度为CRF模型预测标签序列的概率;b、使用初始模型对未标注的数据进行预测,并计算预测标签的置信度,从数据中选取置信度高于置信度阈值T(u)的样本扩充集合;c、使用扩充后的训练集合重新训练crf模型;d、降低置信度阈值T(u)=T(u)-δ,并重复b、c过程,直至达到置信度阈值下限T(l)。其中初始置信度阈值T(u)、置信度下限T(l)和δ均为可调节的模型参数,在本实施案例中分别设置为0.8、0.6和0.01。最后,使用经过迭代后的模型对需求文本进行功能项抽取,得到候选功能项。第四步,使用所有的历史功能项数据训练面向功能项的语言模型。具体来说,获取所有历史功能项;对于每一个历史功能项,将其分词,然后作为一条训练样本训练n-gram(如3-gram)语言模型,最终得到一个面向功能项的语言模型。第五步,使用训练好的面向功能项的语言模型,过滤候选功能项。对于每一个候选功能项,计算其困惑度(信息论中衡量一个概率分布或模型预测样本的好坏程度指标)。只保留困惑度小于预先设定的困惑度阈值(根据功能点专家经验设置为100)的功能项,作为最终的结果。本专利技术的具体实施例如下。1.准备实验数据集本实验采用的数据集来自国内某银行19个项目的用户故事数据及其对应的数据功能项,具体详情如表1所示。表1:实验数据集项目标号用户故事数数据功能项个数P16981...

【技术保护点】
1.一种自动化数据功能项抽取的方法,其特征在于,包括以下步骤:/n将需求文本根据标点符号划分为句子,抽取句子中每个单词的上下文特征;/n给句子中的每一个单词打上标签,并作为标注数据;/n使用标注数据训练初始的条件随机场模型CRF,迭代地使用该CRF模型预测未标注的数据,从中选取置信度高于置信度阈值的样本来扩充训练集合,该置信度为CRF模型预测标签序列的概率;/n使用扩后后的训练集合重新训练CRF模型,最终得到候选功能项集合;/n使用历史功能项训练面向功能项的语言模型;/n使用训练好的面向功能项的语言模型对候选功能项集合进行过滤,抽取符合的功能项。/n

【技术特征摘要】
1.一种自动化数据功能项抽取的方法,其特征在于,包括以下步骤:
将需求文本根据标点符号划分为句子,抽取句子中每个单词的上下文特征;
给句子中的每一个单词打上标签,并作为标注数据;
使用标注数据训练初始的条件随机场模型CRF,迭代地使用该CRF模型预测未标注的数据,从中选取置信度高于置信度阈值的样本来扩充训练集合,该置信度为CRF模型预测标签序列的概率;
使用扩后后的训练集合重新训练CRF模型,最终得到候选功能项集合;
使用历史功能项训练面向功能项的语言模型;
使用训练好的面向功能项的语言模型对候选功能项集合进行过滤,抽取符合的功能项。


2.根据权利要求1所述的方法,其特征在于,抽取句子中每个单词的上下文特征的方法为:对句子中的每个单词构造一个特征窗口,该特征窗口包括当前词、当前词的前n个单词以及当前词的后n个单词;对于特征窗口中的每个单词,抽取上下文特征;如果单词出现在句子的末尾,其特征窗口内的单词为空,则为其赋于默认值。


3.根据权利要求1或2所述的方法,其特征在于,上下文特征包括字符串特征、词性特征和tf-idf特征。


4.根据权利要求1所述的方法,其特征在于,标签遵循如下BIOES标准:
B标签:单词为功能项的起始单词;

【专利技术属性】
技术研发人员:李明阳石琳王青
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京;11

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

1