一种领域模型提取方法、装置及可读存储介质

文档序号:26007509发布日期:2021-07-23 21:26阅读:61来源:国知局
一种领域模型提取方法、装置及可读存储介质

本发明涉及自然语言识别技术领域,尤其涉及一种领域模型提取方法、装置及可读存储介质。



背景技术:

领域模型是对领域中重要概念及其间关系的可视化表示,在软件开发的分析阶段用于分析如何满足系统的功能性需求。根据需要,领域模型可以使用uml类图、用例图、本体等来表示。领域模型主要由概念、属性和关系组成。概念表示现实世界中实体或事件,概念的属性是概念表示的实体所包含的逻辑数据,概念之间的各种关系表示概念所表示的实体之间存在的语义联系或交互行为,常见的关系包括关联关系、聚合关系、继承关系等。

领域模型提供了有关构成领域的基础术语的结构化知识。并且,系统的设计,尤其是在基于模型的开发环境中,通常会围绕领域模型成型。正确地识别概念以及概念之间的关系,能够在软件开发过程中帮助分析系统架构,降低开发难度,减少代码的冗余,还能够帮助开发人员分析需求本身存在的不一致、不完整等问题。开发人员在建立领域模型时,需要反复检查需求文档,确保建立的领域模型与需求相一致,并且需要确保与需求相关的所有概念和关系都包含在领域模型中。而对于大型应用程序而言,人工构建领域模型是一项十分艰巨的任务。



技术实现要素:

本发明实施例提供一种领域模型提取方法、装置及可读存储介质,用以提高提取领域模型的准确率。

第一方面,本发明实施例提供一种领域模型提取方法,包括:

对需求文档进行语法分析,确定分词之间的依赖关系;

根据所述分词之间的依赖关系确定概念之间的语义关系;

根据所述概念之间的语义关系确定对应的领域模型。

可选的,对需求文档进行语法分析,包括:

将所述需求文档进行分解,获得对应的分词;

基于所述分词进行词性标注,并根据词性标注结果确定对应的分词类型;

基于所述分词类型确定各个分词之间的依赖关系。

可选的,根据词性标注结果确定对应的分词类型之后,还包括:

对所述分词进行清洗;

提取清洗结果中的分词词干;

对所述分词词干进行还原处理。

可选的,根据所述分词之间的依赖关系确定概念之间的语义关系,包括:

遍历所述分词中的名词短语,确定短语和单词之间以及短语之间的依赖关系;

根据短语和单词之间以及短语之间的依赖关系提取概念之间的语义关系。

可选的,遍历所述分词中的名词短语,派生短语和单词之间以及短语之间的依赖关系,包括:

若以所述当前名词短语中的单词为源节点的依赖关系对应的目标节点落入所述当前名词短语中,则对所述当前名词短语不进行派生;

若以所述当前名词短语中的单词为源节点的依赖关系对应的目标节点落入所述当前名词短语之外,则对所述当前名词短语进行派生。

可选的,对所述当前名词短语进行派生,包括:若派生单词为除所述当前名词短语之外的名词短语中的源节点单词,则派生获得短语之间的依赖关系,否则派生获得短语和单词之间的依赖关系。

可选的,根据短语和单词之间以及短语之间的依赖关系提取概念之间的语义关系,包括:

根据短语和单词之间以及短语之间的依赖关系按照不同语法结构对应的源节点提取概念之间的关联关系;以及,

根据预设单词结构对短语和单词之间以及短语之间的依赖关系进行匹配,识别概念之间的聚合关系、基数关系和属性关系。

可选的,根据所述概念之间的关联关系确定对应的领域模型,包括:

遍历所述概念之间的关联关系中的边界概念;

对所述边界概念中与预设字段相匹配的边界概念的关联关系进行修正;

其中,所述边界概念为仅有一个其他概念与所述边界概念存在语义关系。

第二方面,本发明实施例提供一种领域模型提取装置,包括:

分析单元,用于对需求文档进行语法分析,确定分词之间的依赖关系;

关系确定单元,用于根据所述分词之间的依赖关系确定概念之间的语义关系;

领域模型确定单元,用于根据所述概念之间的语义关系确定对应的领域模型。

第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的领域模型提取方法的步骤。

本发明实施例通过确定需求文档中分词之间的依赖关系;根据所述分词之间的依赖关系确定概念之间的语义关系;根据所述概念之间的语义关系确定对应的领域模型,由此提高了领域模型的提取准确率,取得了积极的技术效果。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明第一实施例流程图;

图2为本发明第一实施例语法分析流程图;

图3为本发明第二实施例装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

本发明第一实施例提供一种领域模型提取方法,如图1所示,包括以下具体步骤:

s101、对需求文档进行语法分析,确定分词之间的依赖关系;

s102、根据所述分词之间的依赖关系确定概念之间的语义关系;

s103、根据所述概念之间的语义关系确定对应的领域模型。

本发明实施例通过确定需求文档中分词之间的依赖关系;根据所述分词之间的依赖关系确定概念之间的语义关系;根据所述概念之间的语义关系确定对应的领域模型,由此提高了领域模型的提取准确率。

可选的,对需求文档进行语法分析,包括:

将所述需求文档进行分解,获得对应的分词;

基于所述分词进行词性标注,并根据词性标注结果确定对应的分词类型;

基于所述分词类型确定各个分词之间的依赖关系。

具体的说,本实施例中,语法分析包括需求声明语句进行预处理,包括分词、分句、词性标注、短语结构分析以及依存句法分析。本实施例中对输入的需求文档进行语法分析,主要的流程如图2所示,包括如下内容:

分句:将输入的文本划分成一个个单独的句子。

分词:将输入的语句划分成一个个单独的符号。一个符号可以是一个单词、一个数字、一个标点或一个空格。

词性标注:标注分词器得出的符号的词性,如名词(nn)、动词(vb)、形容词(jj)、介词(in)、冠词(dt)、连词(cc)等。

短语结构分析:推测句子中每一个结构单元所属的类型,如名词短语(np)、动词短语(vp)、介词短语(pp)、动词(vb)、冠词(dt)、介词(in)等。

依存句法分析:分析得出句子中各个独立单词之间的语法关系,由依赖关系表示。依存句法分析输入的是句子,输出一个由关系三元组组成的有向无环图,例如表示为三元组<单词,依赖关系类别,单词>。根据国际依赖关系定义框架universaldependencies规定,本实施例中依赖关系类别主要包括:名词主语关系(nsubj)、被动名词主语关系(nsubjpass)、直接宾语关系(dobj)、形容词型修饰符(amod)、名义修饰符(nmod)、名词的子句修饰符(acl)、关系从句修饰符(acl:relcl)等。

其中,名义修饰符(nmod)表示句子中的介词短语结构。名词的子句修饰符(acl)表示动词不定式或分词形式的补语结构;关系从句修饰符(acl:relcl)表示从句修饰结构。

可选的,根据词性标注结果确定对应的分词类型之后,还包括:

对所述分词进行清洗;

提取清洗结果中的分词词干;

对所述分词词干进行还原处理。

本实施例中在获得分词结果之后语法分析进一步还包括去除停用词:其中,停用词是在文本中频繁出现且不表示具体含义的单词,如“a”,“the”,“any”等。

词干提取和词形还原:将名词的复数形式、动词的分词形式、形容词变副词形式等形式,转换为这些词的原形。

提取原子名词短语和动词,为接下来进一步提取领域模型的概念和关系做准备。

可选的,根据所述分词之间的依赖关系确定概念之间的语义关系,包括:

遍历所述分词中的名词短语,确定短语和单词之间以及短语之间的依赖关系;

根据短语和单词之间以及短语之间的依赖关系提取概念之间的语义关系。

可选的,遍历所述分词中的名词短语,派生短语和单词之间以及短语之间的依赖关系,包括:

若以所述当前名词短语中的单词为源节点的依赖关系对应的目标节点落入所述当前名词短语中,则对所述当前名词短语不进行派生;

若以所述当前名词短语中的单词为源节点的依赖关系对应的目标节点落入所述当前名词短语之外,则对所述当前名词短语进行派生。

可选的,对所述当前名词短语进行派生,包括:若派生单词为除所述当前名词短语之外的名词短语中的源节点单词,则派生获得短语之间的依赖关系,否则派生获得短语和单词之间的依赖关系。

具体的说,本实施例中在前述语法分析获得的分词的基础上,进一步将语法分析得出的单词之间的依赖关系,派生得到短语级别的依赖关系。短语级别的依赖关系可以表示为关系三元组<短语,依赖关系类型,短语>或者<短语,依赖关系类型,单词>。

本实施例中采用的依赖关系派生算法的伪代码如表1所示。

表1依赖关系派生算法

本实施例中依赖关系派生算法的输入为语法分析得到的全部单词、名词短语以及单词之间的依赖关系,输出为短语之间以及短语和单词之间的依赖关系,具体流程包括:

对需求文档中的所有名词短语np进行检查:

对于名词短语np中的每一个单词token1:如果以这个单词为源节点出发的一条依赖关系dep(token1,token2)的目标节点仍落在这个名词短语中,则不对这条依赖关系进行派生。

如果该依赖关系的目标节点落在该名词短语之外,则对依赖关系dep进行派生:

若token2是另一个名词短语np2的一部分,则派生依赖关系dep为dep(np,np2),否则派生依赖关系dep为dep(np,token2)。

由此确定短语和单词之间以及短语之间的依赖关系。

可选的,根据短语和单词之间以及短语之间的依赖关系提取概念之间的语义关系,包括:

根据短语和单词之间以及短语之间的依赖关系按照不同语法结构对应的源节点提取概念之间的关联关系;以及,

根据预设单词结构对短语和单词之间以及短语之间的依赖关系进行匹配,识别概念之间的聚合关系、基数关系和属性关系。

具体的,本实施例中,概念之间的语义关系包括关联关系、聚合关系、基数关系和属性关系。其中关联关系包括直接关系和间接关系,其中直接关系表示概念和概念直接由一个动词或动词短语(包括动词或动词短语的分词形式或不定式形式等)或者介词直接相连接表示的关系;间接关系则是直接关系的传递,如果概念a和概念b之间有直接关系,概念b和概念c之间有直接关系,则概念a和概念c之间有间接关系。

基于此本实施例中根据短语和单词之间以及短语之间的依赖关系按照不同语法结构对应的源节点提取概念之间的关联关系,包括:首先识别概念之间的直接关系,进而根据直接关系推导得出概念之间的间接关系,从而得出所有的关联关系。

具体的,根据短语和单词之间以及短语之间的依赖关系按照不同语法结构对应的源节点提取概念之间的关联关系,包括:

对于主谓宾结构表示的直接关系,将主语作为关系的源概念,宾语作为关系的目标概念,将谓语动词作为关系的内容。

对于关系从句中的主谓宾关系,根据acl:relcl依赖关系,找到关系从句中主语that或which指代的名词短语,作为关系的源概念,从句中的宾语和谓语分别作为关系的目标概念和内容。

对于介词短语结构表示的直接关系,使用名词性修饰符(nmod)进行提取,提取算法的伪代码如表2所示。

表2介词短语提取算法伪代码

将所有的原子名词短语和动词的集合作为输入,检查每一个名词短语或者动词,是否是一个nmod依赖关系的源节点。

如果该nmod依赖关系的源节点是一个名词短语,则将nmod依赖关系源节点的名词短语作为关系的源概念,目标节点的名词短语作为关系的目标概念,介词作为关系的内容。

如果该nmod依赖关系的源节点是一个动词,则将这个动词的直接宾语作为关系的源概念,nmod依赖关系目标节点的名词短语作为关系的目标概念,介词作为关系的内容。

对于动词性补语结构表示的直接关系,使用名词的子句修饰符(acl)进行提取,提取算法的伪代码如表3所示。

表3动词性补语提取算法伪代码

将所有的原子名词短语的集合作为输入,检查每一个名词短语,是否为一个acl依赖关系的源节点。

如果该名词短语是一个acl依赖关系的源节点,并且该acl依赖关系的目标节点是一个及物动词或动词短语,则将acl依赖关系源节点的名词短语作为关系的源概念,依赖关系目标节点动词或动词短语接的宾语作为关系的目标概念,该动词或动词短语为关系的内容。

根据上述提取得到的直接关系,推导概念之间的间接关系,从而得出概念与概念之间全部的关联关系。

根据预设单词结构对短语和单词之间以及短语之间的依赖关系进行匹配,识别概念之间的聚合关系、基数关系和属性关系。

聚合关系的识别具体实施方式可以包括:

对于如“contain”、“include”、“typeof”等单词结构,以及名词的所有格形式表示聚合关系。以语句“acontainsb”或“a'sb”为例,可以提取得到源概念为b,目标概念为a的聚合关系。

基数关系的识别具体实施方式可以包括:

单词结构中不定冠词、序数词、名词的单复数形式表示基数关系。

如果一个关联关系的源概念和目标概念都是单数,则该关系是一个一对一关系。

如果一个关联关系的源概念和目标概念都是复数,则该关系是一个多对多关系。

如果一个关联关系的源概念是单数,目标概念是复数,则该关系是一个一对多关系。

如果一个关联关系的源概念是复数,目标概念是单数,则该关系是一个多对一关系。

如果一个关联关系的源概念或目标概念前有明确的数字修饰,则该数字表示基数关系。

属性关系的识别具体实施方式可以包括:

形如“identifiedby”,“recognizedby”等单词结构可以表示属性。以语句“aisidentifiedbyb”为例,可以提取得到b是概念a的一个属性。

修饰概念的形容词表示概念的属性,在自然语言中体现为定语或主系表结构。定语表示它修饰的名词短语的属性,表语表示主语的属性。

带有副词或补语修饰的不及物动词表示属性。以语句“thetrainarrivesinthemorningat10am.”为例,可以通过不及物动词“arrives”和之后的补语共同推断出,概念“train”应该有一个属性“arrivaltime”。

在获得概念之间的语义关系之后,可以进一步对聚合关系、基数关系和属性关系进行区分,从而提高三者的识别准确率。

可选的,根据所述概念之间的关联关系确定对应的领域模型,包括:

遍历所述概念之间的关联关系中的边界概念;

对所述边界概念中与预设字段相匹配的边界概念的关联关系进行修正;

其中,所述边界概念为仅有一个其他概念与所述边界概念存在语义关系。

本实施例中的边界概念表示如果有且仅有一个其他概念与这个概念存在关系,则这个概念称为边界概念。对于获得的概念之间的语义关系中包含边界概念的检查所有包含边界概念的关联关系,如果关联关系的内容能够匹配“includein”、“including”、“consistof”等结构,则将该关联关系修正为聚合关系或属性。例如可以基于已有的领域模型提取结果,检查领域模型的所有边界概念以及连接这个边界概念的关联关系。如果这个关联关系的具体内容能够与表示聚合关系的模式,如“contain”,“include”等,的近义词匹配,则将这个关联关系修改为聚合关系或属性。

与领域建模专家的提取结果相比,本发明方法能够提取出需求文档中95%的关系。

综上,本发明方法扩展了领域模型的提取规则,引入多种新的依赖关系和语法结构用于提取领域模型,能够更加全面准确地提取介词短语结构和补语结构所表示的信息。本本发明方法还提出了领域模型中边界概念,并且提出了检查包含边界概念的关联关系的方法,能够提高关联关系、聚合关系和属性识别的准确率。

实施例二

本发明第二实施例提供一种领域模型提取装置,如图3所示,包括:

分析单元,用于对需求文档进行语法分析,确定分词之间的依赖关系;

关系确定单元,用于根据所述分词之间的依赖关系确定概念之间的语义关系;

领域模型确定单元,用于根据所述概念之间的语义关系确定对应的领域模型。

本发明实施例通过确定需求文档中分词之间的依赖关系;根据所述分词之间的依赖关系确定概念之间的语义关系;根据所述概念之间的语义关系确定对应的领域模型,由此提高了领域模型的提取准确率。

实施例三

本发明第三实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一实施例的领域模型提取方法的步骤。

在一个可选的实施方式中,所述计算机程序被处理器执行时实现:

对需求文档进行语法分析,确定分词之间的依赖关系;

根据所述分词之间的依赖关系确定概念之间的语义关系;

根据所述概念之间的语义关系确定对应的领域模型。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1