基于功能分解结构模型的工程知识自动提取与组织方法

2020-12-08 01:06赵书彬徐诚
兵工学报 2020年10期
关键词:文档特征结构

赵书彬, 徐诚

(南京理工大学 机械工程学院, 江苏 南京 210094)

0 引言

工程设计知识是指与工程领域密切相关的知识,其提取与重用在工程设计中具有极其重要的作用。据估计,工程设计至少有大约75%是通过重用以前的设计知识和产品而得到的[1]。将存在于各个设计阶段的知识进行提取、组织,并在之后的设计过程中实现重用,能够很大程度上节约设计成本和时间;相反,会出现很多冗余、重复设计活动。同时,工程知识的表达必须顺应专业领域的需要,并考虑工程设计思维方式和工程数据的特点[2]。

工程领域知识存在的形式多样,表示方式也是多样的。在本文中,将以各种形式描述、编制的,具有完备知识表达且不可再分割的知识基本单元称为知识元。Owen等[3]认为产品知识元的表示可以分为图示、符号、文本、虚拟和算法5类,具体到工程领域:图形知识元包括工程图、草绘、图表等等;符号知识元主要指流程图等具有逻辑的表达;文本知识元则指叙述性的设计规则;虚拟知识元的涵盖范围广泛,包括各种计算机辅助设计(CAD)建模、仿真等;算法知识元则包括计算模型、流程,确定产品参数的计算原理及公式等。知识元通常是对设计对象及其各个特征的设计规则、经验、数据等的描述,它们构成了上层知识模型的基础。针对知识元的多样性,研究者们提出了不同的表示方式,并将它们集成到其他具有逻辑结构的知识模型中。孙林夫[2]提出对工程规范、设计手册中存在的数据表、语言、案例、图形等分别表示,而另一些研究[1,4-5]则将以上各种类型的知识元统一封装至面向对象的模型中。此外,将底层各种类型知识通过上层概念建模组织起来,例如设计问题分解(或功能分解)结构[1,6-7]、语义网络模型[8]、基于统一建模语言(UML)的概念建模[4]以及本体模型[9]等等,也是当前的研究热门。这些方法的优点在于不仅可以引导设计者明确设计对象和思路,在此基础上还可以主动提供详细的设计知识、数据,能够在实际设计活动中实现有效率的知识重用。其中,基于功能域、物理域之间的映射和分解完成设计对象的分析尤其适用于工程领域[10-11]。在系统工程理论中,将一个设计问题分解为一系列低层次的小问题,而对于这些小问题的解决往往是更加可控的,从整个问题的解决得到了简化。因此,为了实现更好的知识重用,以辅助设计者进行设计决策,应当借鉴现有研究,采用一种集成的知识模型[1,6-7],既具有功能域与物理域之间的映射和分解关系,又能够将离散的知识元同这种功能分解结构关联起来。一些研究者在这方面做出了努力[7-8,12]。然而,目前研究的不足在于往往只能对某一种知识类型,比如产品相关信息进行提取,而集成知识模型的建立过程又十分依赖于专家经验,且耗时耗力。

在知识提取方面,随着自然语言处理以及文本挖掘技术的成熟,研究者们逐渐采用自动化的方式从文本中提取信息,并建立知识模型。Lim等[13]提出从设计文档中提取关键词,并从关键词的上下文识别出与它们高度相关的语义类,通过这些类将上下文中具有相同语义的词句作为它们的语义标签。这些标签能够有效地展示出文档中关于这些关键词进行了哪些方面的讨论。同样地,沈健等[14]提出根据生物领域知识元的功能和环境特征进行聚类,从而在知识重用过程中实现基于设计需求的聚类检索。除文本知识元外,Setchi等[15]对图片上下文中的关键词进行提取,将它们与领域本体概念相匹配,利用本体模型中实体之间的关联实现对图片上下文的语义扩充,在此基础上的图片检索取得了很好的实验结果。更进一步,Liang等[16]提出在知识的提取过程中,采用文本挖掘的方法从设计文档中自动提取设计问题、解决方案和它们之间的逻辑关系,进一步与底层的产品信息相关联。由于这些方法的运用,知识提取过程中的人为工作大大减少,同时文本中的关联信息、逻辑信息得到了保留,对研究有重要的启示作用。然而在目前的方法中,关键信息的提取方式大多是基于高频词或者改进的高频词方法提取而进行的,对于关键词的类型,尤其是专业领域的关键词类型,传统方法难以区分、识别。另外,以上的方法需要与其他知识模型相结合[1,4-9]才能更好地适应工程领域知识的特点以及工程设计的需要。

在总结分析现有研究成果的进展和不足的基础上,本文结合工程设计知识的多样化、结构化特点,借鉴功能分解结构[1,6]模型以及面向对象[4]的表示思路,研究、建立一种新的基于功能分解结构模型的工程知识提取与组织方法,在保留功能分解结构性的基础上提高知识提取的自动化程度,最终基于面向对象的思路完成自动武器设计知识系统的初步建立,演示并验证其有效性。

图1 基于功能分解结构模型的知识提取总体框架图Fig.1 Overall framework of knowledge acquisition based on functional decomposition structure model

1 流程与框架

在本文中,将经由功能域向物理域的映射与分解而形成的自顶向下、由抽象到具体的,包含了不同层次的功能、产品零部件及其设计特征的模型,称为功能分解结构模型。本文所提出的方法需经过两个阶段,即由人工完成的功能分解结构生成以及基于该模型的自动化知识提取。

功能分解结构生成的方法与公理设计方法[17]大致相同,由领域内富有设计经验的专家完成,目的是为后续的知识提取和组织提供结构化的框架,如图1所示。具体方法在本文中不详细阐述。在分解结构的基础上,利用从设计文档中提取的知识对其结构、内容进行扩充,主要包括3个步骤:

1)文本的前处理。中文文本的前处理主要包含去除非文本字符、处理编码问题、分词、词性标注等任务。

2)文本信息的提取。采用命名实体识别(NER)技术对设计文档中的关键特征、参数以及图片、表格、公式等各种形式的知识元进行识别,并在识别过程中尽可能地对其类型加以区分。

3)将以上文本信息补充至分解结构中。考虑以上提取的实体上下文文本中隐含的语义将它们与分解结构进行匹配,具体地,利用隐含狄利克雷分布(LDA)主题模型对文本进行聚类分析,并且根据文本在不同主题上的分布结果计算它们之间的匹配程度[18-19],从而充分发挥文本中语义信息的作用。完整的基于功能分解结构模型的知识提取与组织总体框架图如图1所示。

在软件系统实现方面,基于Knowleworker平台[20]进行二次开发,以初步建立实现上述流程的原型系统。Knowleworker平台是一种以可扩展标记语言(XML)为基础、面向对象的产品方案智能设计系统,依赖XML文件实现软件各项功能组件的配置、产品数据的存储及传递等。在该系统中实现面向对象的知识表达和组织的,以类、属性和方法形式展现的UML模型框架图如图2所示。其中“功能”类与“产品零部件或特征”类之间关系由上述功能分解结构给出,而与分解结构相关联的文本知识、其他各种类型的知识元则均面向零部件及其特征进行展开。

图2 Knowleworker平台中实现面向对象的知识表达与组织UML类图Fig.2 UML class diagram of realizing object-oriented knowledge acquisition in Knowleworker platform

2 关键技术

2.1 知识提取

在设计知识提取流程时,主要考虑3方面的要素:首先,知识提取的结果应涵盖哪些内容;其次,该知识提取流程是否有利于提高以及如何提高工程知识提取的自动化程度和效率;最后,所建立的集成知识模型能否有效地实现知识重用。

如第1节所述,知识提取的目的是形成由上层的产品功能分解结构以及底层的与其相关联的各种类型的知识元组成的集成知识模型。其中知识元将在原型系统设计中通过面向对象的方式进行统一表示,功能分解结构则由产品的功能需求以及具体零部件及其特征(主要是几何特征,如“弹膛壁”、“闭锁支撑面”等等)组成,以交叉分解的、由“节点”、“属性”与“链接”构成的树状图形式表示,如图3所示。功能节点代表功能域的需求分解,反映的是设计者对于产品设计的不同层面理解,较为主观、抽象,通常只能由富有经验的专家完成;而零部件或特征节点则体现产品物理层面的分解结构,是客观的、具体的,既可以由设计者完成,也可以通过对设计文档的知识提取补充。同时被补充到功能分解结构的还有关于零部件及其特征的关键设计参数以及各种类型的知识元,而该过程是通过算法自动实现的,如图3所示。在知识提取以及补充的过程中,除了从设计文档中提取零部件及其特征、参数以及相关知识元之外,还应对其类型加以区分,并按照功能分解结构的层次进行组织。具体地,知识元按照所面向的产品零部件或者特征、设计参数,以知识模块的形式进行组织,组织粒度遵循功能分解结构的层次划分。不同类型的知识元在知识模块中统一进行管理。

图3 知识提取过程及集成知识模型的形成Fig.3 Knowledge acquisition process and the composition of integrated knowledge model

功能分解的树状结构在软件系统中以XML语言表示,从而能够直接被系统自动识别、解析成图形的形式供设计者参考,并且以模板的形式存储于知识库中,方便以后设计中的重用。根据知识元类型的不同,分别以设计计算程序、网页知识、产品数据库等形式表示,并集成在知识系统中。这些知识将在设计过程中根据产品零部件及其参数设计的需求被分别访问,形成集成的知识管理与重用方法,有利于提高产品设计的效率。

2.2 知识元的提取

在文本挖掘领域,以往较为常用的关键信息提取方式是基于高频词或者改进的高频词提取[13, 21]。这类方法由于不能区分关键词类型,因而往往适用于仅提取某一类型文本信息的场合,比如产品设计参数的识别。NER技术能够很好地弥补上述不足,其目的是识别出文本中出现的专有名称并进行归类,而针对不同的应用场景采取不同的分类。条件随机场(CRF)是一种比较新的、可以很好地实现NER的计算模型。工业界基于CRF的算法能够针对人名、地名、机构名、日期、时间等实体类型取得了不错的识别效果,这些实体类型构词方式相对较为简单[22],并且上下文中存在明显的语法特征。而在特定的应用领域和语境下,通常需要针对该领域的语料库训练出特定的模型,才能在实际应用中发挥提取效果。例如在工程设计领域,设计者更关心的是文档中出现的与设计相关的关键信息,比如所设计产品的零部件名称及其特征、设计参数以及与其相关的设计知识等。因此,在语料库准备阶段,搜集包括设计手册、设计规范、产品说明等在内的文档,对训练语料中的实体进行标注,并且采用“BMEWO”标签体系,最后利用CRF算法进行命名实体提取。在该标签体系下,使用“B-*”、“M-*”、“E-*”组合(或者“B-*”、“E-*”组合,“*”视实体类型而定)标记实体的首和尾,实体以外的部分则以“O”补齐。考虑到工程领域文本知识形式的多样性,对实体类型进行了如表1所示的划分。其中设计要素是文档中最常见的实体类型,包括了所设计产品的零部件名称、特征或其设计参数,在训练过程中统一标注为“F”。设计要素所在的上下文文本,即描述型文本知识元,可以直接匹配在知识结构中;而以公式、图、表、产品型号形式存在的知识元,分别以“E”、“P”、“T”、“A”标注,则需要通过其上下文的语境进行间接匹配。训练过程中的样本标注示范如表2所示,其中符号“m”、“k”、“x”、“n”、“d”、“p”、“uj”、“v”、“f”、“a”分别表示数词、后接成分、非语素词、名词、副词、介词、助词、动词、方位词、形容词。

表1 NER标签体系Tab.1 Labeling system of NER

在实验过程中利用开源工具CRF++实现CRF算法,使用unigram特征编写特征模板。考虑到语

表2 NER训练样本标注示范Tab.2 Demonstration of NER training sample labeling

料库不大,制作了较为完整的模板,以字符本身及词性分别作为特征;除当前字符外,还使用了前后3个字及其组合作为特征。CRF++软件根据特征模版生成相关的特征函数。具体的训练和识别步骤及参数设置如下:

1)对语料库进行预处理和划分,预处理包括去除非文本字符、停用词、分词、词性标注等,其次对训练语料进行“BMEWO”标签标注。在实验中将90%的语料作为训练数据train.data,10%的语料作为测试数据test.data;

2)执行训练命令“crf_learn -a MIRA -p 1 -f 3 -c 4.0 template train.data model”,其中“-a”指定算法为边界注入放松算法(MIRA),“-p”用于多个中央处理器(CPU)条件下多线程提升训练速度,“-f”指定只识别训练数据中至少出现3次的特征,“-c”是用于调整过度拟合和不拟合之间平衡度的超参, template为特征模板文件,该步骤输出模型文件model;

3)执行测试命令“crf_test -m model test.data >> result.txt”,其中“-m”指定模型文件model,该步骤将输出结果保存在result文本文件中。

NER的作用是从文本中发现知识元及产品相关特征、设计参数等,而对于知识元本身,需要结合知识特点、采取方便检索与访问的方式进行表示和存储。在本文原型系统的构建过程中,对基于模型与流程的参数设计计算知识元采用C#语言进行编程并设计用户界面,对文本和图形知识元均以html格式的知识网页存储,而产品数据及三维CAD模型则分别在外部数据库和外部建模软件中建立,并链接至本文的系统中。

2.3 知识元与功能分解结构的关联

在工程设计文档中,设计知识元的提及往往是在一定的语境下进行的,其上下文的叙述中往往阐明了设计对象,所涉及的设计参数以及需要满足的性能要求等等。从整个设计文档的角度出发,这些关键信息的出现并不是独立的,而是具有一定的上下文逻辑,互相间具有关联[23]。因此在知识组织的过程中假设知识元的上下文语境与其他文档存在语义上的联系,在经过聚类分析之后,可以更好地进行检索,或者将它们与功能分解结构模型中的节点相匹配。

知识元的语境文本与功能分解结构进行匹配的方法是借助基于LDA的主题提取,将各个文本以向量的形式表示,再进行向量之间的相似程度计算。在LDA主题模型中,每篇文档的主题、每个主题所包含的词都按照概率分布的形式给出。与其他文本向量化的方式,比如词袋模型相比,该方法的好处在于向量的维度得到了降低,并且能够充分发挥语境文本中潜在的语义,改善文本匹配的结果。基于LDA进行主题提取的过程本质上也是聚类过程。具体地,所整理的语料库经过文本切割后作为待分析的文档集,进行主题聚类。LDA主题模型的图形表示如图4所示,其中α、β则是LDA主题模型算法的先验超参数,影响经验分布的平滑程度,θ代表每个文档中主题的概率分布,z代表这篇文档中每个词的主题,φ代表每个主题的词概率分布,w为所观测的词,K为主题的总数,D为文档的总数,Nd对应第d个文档中词的总数。

图4 LDA主题模型算法概念图Fig.4 Concept diagram of LDA topic model

在本文中,采用Gibbs采样求解LDA模型。K、α、β作为已知输入,求解的目的是得到某一个词w对应主题特征z的条件概率分布,以便进行Gibbs采样。首先由狄利克雷多项分布得出主题和词的联合分布:

(1)

式中:k为主题编号;n为文档中或者主题中的词个数。将第d个文档第n个词记为二维下标i,并且以-i代表排除第i个词,进而根据狄利克雷分布的期望公式可以得出一个词w对应主题特征z的条件概率分布为

(2)

1)参数初始化:选择合适的K、α、β,对文档集中的每个词w随机赋予主题z;

2)重新扫描文档集,对每个词w根据Gibbs采样重新采样它的主题z并更新;

3)重复第2步直到Gibbs采样收敛;

4)统计经过更新的每个文档的主题分布和每个主题的词分布得到θ、φ.

经过对样本的估计,设定了不同的K值(10~20)比较实验结果。对于α、β,在没有主题分布的先验知识情况下,保留其默认值,即1/K. 在实验中还需考虑过频繁词的处理,在主题识别过程中对在大多数文档中都出现而不太重要的词进行屏蔽。LDA模型确定以后,对一篇新的文档,同样进行去停用词、分词等处理,再根据φ计算其主题分布θ. 至此,新的文档和文档集均根据主题的概率分布表示为向量,虽然分布各自不同,但具有相同的维度,因此可以直接计算它们之间的余弦距离作为关联程度的衡量。

根据以上流程,可以获得知识元与功能分解结构节点之间关于主题模型的关联权重。同理,在NER过程中提取出的设计要素与节点间的关联权重也可以得出。对这些权重进行排序,选出其中具有较高概率相关的知识元、设计要素对分解结构进行补充,从而使结构粒度细化、知识元组织层次化。在主题模型基础上进行匹配的另一个好处在于可以充分发挥语境文本中的语义信息,从而弥补传统的关键字检索缺点。需要注意的是,尽管该方法大大提高了知识组织过程的自动化程度,但是在实际操作中仍会不可能避免地出现偏差。例如,一些对设计过程不是特别重要的实体被提取出来,并且被匹配至功能分解结构中,而一些关键的知识元或者被CRF算法忽略,或者被关联至错误的节点。因此,在建立知识结构之后,利用专业知识进行人工补充、完善工作仍是必不可少的。

2.4 集成知识模型的利用

在完成工程设计知识提取与知识的集成表示之后,分析基于这种模型两个方面的利用,分别是系统工程角度和信息检索角度,对应工程设计的概念设计阶段与详细设计阶段。首先,利用功能分解结构辅助设计者完成产品的方案设计。该步骤可以通过浏览、参考完整的产品功能分解结构模型,根据新的设计需求编辑、补充结构中的节点,并将它们与知识库相链接。通过这种方式,设计问题分解为一系列低层次的小问题,从而整个问题的解决得到了简化。在初步建立产品的设计方案后,合理安排设计流程,尽可能地避免设计过程中可能出现的耦合问题,以及冗余、重复工作。在设计进入详细设计阶段之后,该结构模型的作用体现在其节点与知识元的关联上。对应于各个层次的零部件、特征及其设计参数,可以访问知识元进行参数计算、数据查询、知识网页浏览,实现高效的知识重用。集成知识模型的这种上下层之间“功能域”- “物理域”- “具体设计方法”关系所形成的设计规则,是该模型在实际设计过程中发挥作用的关键。

3 原型系统的建立及实例分析

为了实现和验证基于功能分解结构模型的知识获取方法,结合本文所提出的提取、关联方法基于Knowleworker平台进行了二次开发,建立了原型系统。开发过程是在Windows 10环境下,基于C#语言、XML语言和Access数据库管理来实现的。由于篇幅限制,以自动武器的概念设计和闭锁机构的设计为实验目标进行说明,所采用的语料库、计算模型、图片等信息均来自于中国知网数据库。

基于Knowleworker平台开发的工作界面如图5所示,共有3个分区,分别是功能分解结构的树状图形式、目录树形式,以及关于分解结构中某个零部件或其特征的知识元汇总列表(知识模块)。其中树状图和目录树均由产品功能分解结构的XML文件解析而成,前者为设计者提供交互界面,而后者可由设计者进行编辑。知识模块中的节点代表知识元、链接至单独选项卡或外部程序。XML文件除了用来配置功能分解结构外,还可以配置知识模块以及知识模块中各节点相关的知识元组件。图6示例了研究中使用XML语言书写功能分解结构、知识模块组成以及与外部UG三维模型链接的配置文件,这些文件经过知识系统的解析可以自动完成知识系统的构建工作。图5中针对自动武器的概念设计完成了功能分解,并根据知识提取结果,初步建立了关于各个零部件及其特征的知识模块。以下针对闭锁机构的实验结果及知识集成过程进行展示。

图5 基于Knowleworker平台的知识系统开发用户界面Fig.5 User interface of knowledge system development based on Knowleworker platform

图6 XML格式的知识系统开发配置文件示例Fig.6 Sample configuration files of knowledge system development in XML format

在语料库训练之前,考虑到所面向产品的专业性、所在领域的特殊性,在预处理的过程中引入了专用词典,涵盖了轻武器设计中常用的专业词汇,这些专用词汇在分词过程中可以直接进行识别。在完成模型训练后,对闭锁机构设计相关资料(同样检索自中国知网数据库)进行去停用词、分词等处理作为输入,得到基于CRF的实体识别部分结果如表3所示。在知识元与功能分解结构的匹配实验中,LDA算法的主题提取结果如图7所示,其中从10个主题中随机抽取了3个样本。图7中的横轴为主题词在词典中的序号,纵轴为主题词的出现频率,右边为主题词及词频的具体数值,主题词前的数字也代表了该词在主题中所占的权重。在模型训练中,为了提高运算速度、忽略词库中的冗余词,根据词频排序将词典的维度降至固定值2 000. 据此对图7中的词频权重进行标准化,即可获得概率意义上的主题- 词分布,其值分布在[0,1]之间。在主题识别的基础上,可以计算一个新的文本在所提取10个主题上的分布,如图8所示,其中横轴为主题序号,纵轴为文本在各个主题上概率分布。根据该分布以及其他的文本- 主题分布,获得与其主题相匹配的文本排序。图8右边列举了两个与“闭锁机构设计”查询文本具有高相似性的两个知识元语境文本片段,分别阐述了与闭锁间隙相关的枪弹界限长度计算原理和闭锁间隙的计算原理。

结合以上实验结果,可根据图2中UML类模型的实例化完成闭锁机构的知识集成。图9示例了实例化对象模型的部分结果,其中的文本知识对象、工程图对象、设计计算程序对象等,均由算法自动提取并关联至“闭锁机构”对象;URL属性规定了与该对象相关联的数据、程序文件路径,DSN、SQL属性规定了数据库的连接字符串、查询语句,HTML()方法则规定了将文本知识元、工程图知识元制成知识网页形式的语言规范。同时被关联的还有知识元语境文本中的设计要素,比如“闭锁间隙”、“闭锁强度”、“枪机框”等。基于这些提取和匹配结果可以在Knowleworker中对功能分解结构以及其中的“闭锁机构”节点以子节点的形式进行细化补充,如图5分区2、分区3所示。知识元根据所面向的零部件、特征及设计参数进行组织,其粒度与功能分解的层次一致,且不同类型的知识元在知识模块中统一封装,如图10所示。在知识组织过程中可以发现,“弹壳的轴向变形”、“枪弹的界限长度”等实体与“闭锁机构”不存在字面上的相似性,但是由于采用了基于主题模型的匹配方法,这些实体所在的语境的语义被考虑,因而匹配至“闭锁机构”节点及其子节点下。在图10所示例的集成到“闭锁机构”知识模块的知识元中,以网页形式表示的文本、图形知识元以及与数据库连接的电子表格知识元,均可在知识系统中以选项卡的形式直接打开;而设计计算程序知识元的用户界面则已事先编写完成,可通过外部链接的形式在知识系统中访问计算程序库;三维模型知识元同理,但在知识系统中除了可以访问模型库之外,还提供了模型参数的读取、写入接口,方便设计者进行参考、修改与保存。

图7 基于LDA算法的主题提取结果示例Fig.7 Example of topic extraction results based on LDA algorithm

图8 与查询文本“闭锁机构设计”匹配的语境文本片段Fig.8 Context fragments matched with query “Design of breech locking mechanism”

图9 基于UML模型实例化的闭锁机构知识集成对象图(部分)Fig.9 Object diagram of breech locking mechanism knowledge integration based on UML model instantiation (part)

图10 知识系统中集成至“闭锁机构”知识模块的各种类型知识元Fig.10 Various types of knowledge units integrated into “breech locking mechanism” knowledge module in the knowledge system

经过以上的自动武器设计知识提取与组织过程而建立的集成知识模型,可以辅助设计者在不同的设计阶段完成相应的设计任务。在概念设计阶段,通过功能分解模型的补充、完善,完成自动武器的概念设计;在具体零部件及其特征的设计中,可以通过分解结构与知识元的匹配关系访问相应的知识库,进行相关设计参数的设计计算、设计知识的查询,完成产品的详细设计。

4 结论

知识提取与组织对于工程领域设计知识的重用、设计决策的辅助有着至关重要的意义。本文提出一种人工与自动结合的知识提取方法,结合命名实体提取技术与基于主题模型的文本匹配技术,将设计文档中的设计要素、知识元与功能分解结构模型充分匹配,完成其结构的、知识的丰富,将其知识集成化。基于这种功能分解基础上的知识组织方法,在Knowleworker中建立了相应的原型系统。利用自动武器及其闭锁机构的知识提取案例,示例了该领域语料库的处理以及实体提取、文本匹配过程,在此基础上提供了一部分知识提取以及知识系统建立的实验结果,证实了该提取方法的有效性,为工程设计知识的重用提供了支持手段。

猜你喜欢
文档特征结构
浅谈Matlab与Word文档的应用接口
离散型随机变量的分布列与数字特征
《形而上学》△卷的结构和位置
有人一声不吭向你扔了个文档
轻松编辑PDF文档
论结构
抓特征解方程组
不忠诚的四个特征
Word文档 高效分合有高招
论《日出》的结构