树形机器学习模型可视化方法、装置、电子设备及存储介质与流程

文档序号:25280552发布日期:2021-06-01 17:27阅读:112来源:国知局
树形机器学习模型可视化方法、装置、电子设备及存储介质与流程

本申请涉及机器学习技术领域,具体而言,涉及一种树形机器学习模型可视化方法、装置、电子设备及存储介质。



背景技术:

得益于人工智能技术的快速发展,基于人工智能技术可以解决很多实际的应用问题,如金融领域的风险评估、用户信用评分、用户还款意愿预测、用户资金充裕度预测、用户风险预测和用户疑似代偿识别等。用机器学习算法便可以很好的解决这些应用问题,机器学习算法有很多种,目前在各个领域表现比较好的算法主要是树状模型,如决策树、随机森林、gbdt、xgboost和catboost等。这些模型的优势在于其既可以用于回归,也可以用于分类,不需要特征缩放,而且具有比较好的可解释性。可视化的手段不仅是理解模型的好办法,也是向其他人介绍你的模型的运作机制的有利工具。但是如何对树状模型做可视化分析,以便于更多人理解树状模型做决策的机理是一个很有意义的课题。

具体地,决策树、随机森林、xgboost、catboost、gbdt模型是最常用的树形机器学习模型,因为这些模型不是黑盒模型,所以它们是可以通过可视化进行理解,并且都是树状结构,可以使用一些树形可视化的手段进行展示的。python中的大多数机器学习包都会输出一个模型文件,并且可以使用graphviz工具进行模型可视化,但它们大都是静态图像,缺乏交互功能,有时候树模型很大,展示不全,也无法看到每一个结点的具体信息。同时,如何把一个模型文件进行结构化的树解析,形成一个递归的json文件,也是一个难题,因此现有的机器模型可视化展示效果不佳。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种树形机器学习模型可视化方法、装置、电子设备及存储介质,以改善现有技术中存在的现有的机器模型可视化展示效果不佳的问题。

本申请实施例提供了一种树形机器学习模型可视化方法,所述方法包括:获取模型文件;提取所述模型文件的树状结构数据,并将所述树状结构数据组成指定json格式数据,所述指定json格式数据中包括所述树状结构数据的节点数据,所述节点数据包括每个节点是否为叶子结点、节点名称以及节点规则;通过d3.js将所述指定json格式数据在页面进行树形展示和渲染。

在上述实现方式中,通过对模型进行树形结构的解析,形成json格式数据,并使用d3对json进行加载,把模型进行可视化,提升了模型可视化效率,且能够使用户更好地理解模型,提升模型的可解释性,同时将每个节点是否为叶子结点、节点名称以及节点规则在页面进行展示,从而提高了模型可视化的展示信息完整度。

可选地,所述获取模型文件,包括:获取csv格式的模型训练数据;根据模型类型设置模型参数;基于所述模型训练数据和所述模型参数进行模型训练,以获得所述模型文件。

在上述实现方式中,通过csv格式的模型训练数据和模型参数能够在后续的python环境中对模型进行自动训练,从而提高了模型训练效率。

可选地,所述基于所述模型训练数据和所述模型参数进行模型训练,包括:利用python的文件读取函数read_csv读取所述模型训练数据;将所述模型训练数据转换为dataframe格式数据,并提取所述dataframe格式数据中的特征x和标签列y;获取所述模型参数,基于所述模型参数构建模型;将所述特征x和所述标签列y代入model.fit函数对所述模型进行训练。

在上述实现方式中,利用python进行模型数据读取,并采用dataframe格式数据进行特征和标签列的提取,将其代入model.fit函数进行模型训练,提高了模型训练的自动化程度,从而提高了模型训练效率。

可选地,所述提取所述模型文件的树状结构数据,包括:使用model.estimators_获取所述模型文件中模型的树列表;基于所述树列表,采用递归方式对所述模型中的每个树进行解析,以获得模型数据,所述模型数据包括树信息、特征、标签和/或树的索引;将所述模型数据组装为所述树状结构数据。

在上述实现方式中,对模型文件的树结构数据进行解析确定树信息、特征、标签和/或树的索引等树状结构可视化展示所需要的信息,并组装成后续树状结构展示的基础树状结构数据,为后续树状结构的可视化展示提供了数据基础。

可选地,所述通过d3.js将所述指定json格式数据在页面进行树形展示和渲染,包括:通过所述d3.js的树结构布局,将所述d3.js的树模式应用至所述页面的页面容器中;基于所述指定json格式数据构造所述d3.js的节点和连线;定义每个节点的显示属性;基于所述d3.js的节点、连线和所述显示属性在所述页面进行树形展示和渲染。

在上述实现方式中,通过d3.js对指定json格式数据进行树状结构的可视化展示和渲染,能够将模型以及模型内部结构和内部参数显示出来,实现了基于指定json格式数据的树形机器学习模型的可视化展示,提高了树形机器学习模型的可视化展示完整性。

可选地,在所述定义每个节点的显示属性之后,所述方法还包括:对所述每个节点添加鼠标移入移除事件,所述鼠标移入移除事件用于在内容超长时进行内容展开显示。

在上述实现方式中,通过加入鼠标移入移除事件,能够在可视化展示时显示模型每个结点的决策原则、阈、特征、样本等更多的细节信息,从而提高可视化展示的数据完整性。

可选地,在所述定义每个节点的显示属性之后,所述方法还包括:对所述每个节点添加点击事件,所述点击事件用于在节点为父节点时收缩或展开下层结点。

在上述实现方式中,通过对节点添加点击事件,能够对模型进行不同角度,不同维度的可视化,且能够在不影响模型可视化显示的整体简洁性的同时能够容纳并展示更多内容,进一步提高了可视化展示的数据完整性。

本申请实施例提供了一种树形机器学习模型可视化装置,所述树形机器学习模型可视化装置包括:模型文件获取模块,用于获取模型文件;数据提取模块,用于提取所述模型文件的树状结构数据,并将所述树状结构数据组成指定json格式数据,所述指定json格式数据中包括所述树状结构数据的节点数据,所述节点数据包括每个节点是否为叶子结点、节点名称以及节点规则;可视化渲染模块,用于通过d3.js将所述指定json格式数据在页面进行树形展示和渲染。

在上述实现方式中,通过对模型进行树形结构的解析,形成json格式数据,并使用d3对json进行加载,把模型进行可视化,提升了模型可视化效率,且能够使用户更好地理解模型,提升模型的可解释性,同时将每个节点是否为叶子结点、节点名称以及节点规则在页面进行展示,从而提高了模型可视化的展示信息完整度。

可选地,所述模型文件获取模块具体用于:获取csv格式的模型训练数据;根据模型类型设置模型参数;基于所述模型训练数据和所述模型参数进行模型训练,以获得所述模型文件。

在上述实现方式中,通过csv格式的模型训练数据和模型参数能够在后续的python环境中对模型进行自动训练,从而提高了模型训练效率。

可选地,所述模型文件获取模块具体用于:利用python的文件读取函数read_csv读取所述模型训练数据;将所述模型训练数据转换为dataframe格式数据,并提取所述dataframe格式数据中的特征x和标签列y;获取所述模型参数,基于所述模型参数构建模型;将所述特征x和所述标签列y代入model.fit函数对所述模型进行训练。

在上述实现方式中,利用python进行模型数据读取,并采用dataframe格式数据进行特征和标签列的提取,将其代入model.fit函数进行模型训练,提高了模型训练的自动化程度,从而提高了模型训练效率。

可选地,所述数据提取模块具体用于:使用model.estimators_获取所述模型文件中模型的树列表;基于所述树列表,采用递归方式对所述模型中的每个树进行解析,以获得模型数据,所述模型数据包括树信息、特征、标签和/或树的索引;将所述模型数据组装为所述树状结构数据。

在上述实现方式中,对模型文件的树结构数据进行解析确定树信息、特征、标签和/或树的索引等树状结构可视化展示所需要的信息,并组装成后续树状结构展示的基础树状结构数据,为后续树状结构的可视化展示提供了数据基础。

可选地,所述可视化渲染模块具体用于:通过所述d3.js的树结构布局,将所述d3.js的树模式应用至所述页面的页面容器中;基于所述指定json格式数据构造所述d3.js的节点和连线;定义每个节点的显示属性;基于所述d3.js的节点、连线和所述显示属性在所述页面进行树形展示和渲染。

在上述实现方式中,通过d3.js对指定json格式数据进行树状结构的可视化展示和渲染,能够将模型以及模型内部结构和内部参数显示出来,实现了基于指定json格式数据的树形机器学习模型的可视化展示,提高了树形机器学习模型的可视化展示完整性。

可选地,所述可视化渲染模块具体用于:对所述每个节点添加鼠标移入移除事件,所述鼠标移入移除事件用于在内容超长时进行内容展开显示。

在上述实现方式中,通过加入鼠标移入移除事件,能够在可视化展示时显示模型每个结点的决策原则、阈、特征、样本等更多的细节信息,从而提高可视化展示的数据完整性。

可选地,所述可视化渲染模块具体用于:对所述每个节点添加点击事件,所述点击事件用于在节点为父节点时收缩或展开下层结点。

在上述实现方式中,通过对节点添加点击事件,能够对模型进行不同角度,不同维度的可视化,且能够在不影响模型可视化显示的整体简洁性的同时能够容纳并展示更多内容,进一步提高了可视化展示的数据完整性。

本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。

本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种树形机器学习模型可视化方法的流程示意图。

图2为本申请实施例提供的一种模型训练获取模型文件的流程示意图。

图3为本申请实施例提供的一种模型训练步骤的流程示意图。

图4为本申请实施例提供的一种模型文件数据解析步骤的流程示意图。

图5为本申请实施例提供的一种可视化显示步骤的原理示意图。

图6为本申请实施例提供的一种可视化显示步骤的流程示意图。

图7为本申请实施例提供的一种随机森林节点显示属性的展示示意图。

图8为本申请实施例提供的一种树形机器学习模型可视化装置的模块示意图。

图标:20-树形机器学习模型可视化装置;21-模型文件获取模块;22-数据提取模块;23-可视化渲染模块。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。

本申请实施例提供了一种树形机器学习模型可视化方法,请参考图1,图1为本申请实施例提供的一种树形机器学习模型可视化方法的流程示意图,该树形机器学习模型可视化方法的具体步骤可以如下:

步骤s12:获取模型文件。

可选地,本实施例中进行可视化的模型文件可以是已经训练完成的树形机器学习模型,也是可以先训练获得树形机器学习模型。

请参考图2,图2为本申请实施例提供的一种模型训练获取模型文件的流程示意图,该步骤可以如下:

步骤s121:获取csv格式的模型训练数据。

其中,csv(comma-separatedvalues,逗号分隔值或字符分隔值),其文件以纯文本形式存储表格数据(数字和文本)。采用csv格式的模型训练数据进行后续模型训练,能够在后续模型训练时直接输入python环境,从而提高模型训练效率。

步骤s122:根据模型类型设置模型参数。

目前主流的树状模型有决策树、随机森林、xgboost、gbdt和catboost等,树状模型不同,其参数格式和形式也不同,可以基于不同的模型设置不同的模型参数。例如决策树有9个参数,criterion表示特征选择标准,splitter表示特征划分标准,max_depth表示决策树最大深度,min_impurity_decrease表示节点划分最小不纯度,min_samples_split表示内部节点再划分所需最小样本数,min_samples_leaf表示叶子节点最少样本数,max_leaf_nodes表示最大叶子节点数,min_impurity_split表示信息增益的阈值,min_weight_fraction_leaf表示叶子节点最小的样本权重和,class_weight表示类别权重。

步骤s123:基于模型训练数据和模型参数进行模型训练,以获得模型文件。

模型只有被训练后,才有模型文件,请参考图3,图3为本申请实施例提供的一种模型训练步骤的流程示意图,该模型训练步骤具体可以如下:

步骤s1231:利用python的文件读取函数read_csv读取模型训练数据。

可选地,模型训练数据可以是获取后存储于本地,本步骤从本地进行模型训练数据读取,该模型训练数据也可以是在其他服务器数据库中,本步骤也可以通过网络进行模型训练数据读取。

步骤s1232:将模型训练数据转换为dataframe格式数据,并提取dataframe格式数据中的特征x和标签列y。

其中,dataframe是python环境下一个以命名列方式组织的分布式数据集,其可以根据结构化的数据文件、hive表、外部数据库或者已经存在的rdd(resilientdistributeddataset,弹性分布式数据集)构造。dataframe格式数据可以按行读取、按列读取,因此采用dataframe格式有利于后续进行特征x和标签列y的提取。

其中,特征x通常表示模型输入特征数据,标签列y通常为训练集的标签。

步骤s1233:获取模型参数,基于模型参数构建模型。

具体地,基于模型参数构建模型可以通过如下示例代码进行:

model=randomforestclassifier(max_depth=max_depth,

min_samples_split=min_samples_split,random_state=0)。

步骤s1234:将特征x和标签列y代入model.fit函数对模型进行训练。

其中,model.fit函数的作用为模型拟合,可选地,代入特征x和标签列y的model.fit函数可以表示为model.fit(x,y)。

模型训练完后是一个模型文件,模型文件是一个黑盒子,如果没有可视化的手段,很难理解模型是怎样的,模型究竟是什么,到底是怎么决策的,不具有解释性,如果能把模型进行可视化,直观的看到模型的内部结构和模型决策过程,则对于理解模型以及对模型进行进一步优化很有用处。模型文件进行可视化之前,需要把模型进行解析,提取出模型的树状结构,组装成一定的json格式,才能方便对模型进行可视化,因此接下来执行步骤s14。

步骤s14:提取模型文件的树状结构数据,并将树状结构数据组成指定json格式数据。

具体地,请参考图4,图4为本申请实施例提供的一种模型文件数据解析步骤的流程示意图,该模型文件数据解析步骤具体可以如下:

步骤s141:使用model.estimators_获取模型文件中模型的树列表。

上述树列表为模型文件中树状结构列表框架。

步骤s142:基于树列表,采用递归方式对模型中的每个树进行解析,以获得模型数据。

上述模型数据包括树信息、特征、标签和/或树的索引等。

具体地,本实施例中的解析代码可以如下:

defanalysistree(tree,features,labels,agg,node_index=0):

iftree.children_left[node_index]==-1:#indicatesleaf

#agg['leaf']=agg.get('leaf',0)+1

agg['name']=agg.get('name',{})

agg['name']['leaf']=agg['name'].get('leaf',0)+1

#toavoidsettingtheflagwhenitwassettofalsebefore

ifagg.get('isleaf',true):#ifnotsetbeforesetflagtotrue

agg['isleaf']=true

else:#iffalsebeforesettofalse

agg['isleaf']=false

else:

feature=features[tree.feature[node_index]]

threshold=tree.threshold[node_index]

agg['name']=agg.get('name',{})

agg['name'][feature]=agg['name'].get(feature,0)+1

agg['isleaf']=false

left_index=tree.children_left[node_index]

right_index=tree.children_right[node_index]

children=agg.get('children',[{},{}])

agg['children']=[analysistree(tree,features,labels,children[0],right_index),

analysistree(tree,features,labels,children[1],left_index)]

returnagg。

步骤s143:将模型数据组装为树状结构数据。

该树状结构数据则可以作为本实施例中的模型数据。

示例性地,组装后的树状结构数据可以如下:

"chidren":[

{

"chidren":[

object{…},

object{…},

]

"isleaf":false,

"name":"特征a",

"rule":[

"特征a",

4.8500001430511475

]

},

object{…}

],

"isleaf":false,

"name":"特征b",

"rule":[

"特征b",

0.75

]。

模型是一个黑盒,特别是树状模型,不具有可解释性,模型的决策逻辑也不得而知,模型文件只是一堆参数,这些参数代表什么意义,有什么作用,需要一种好的手段把模型进行可视化,把模型内部结构和内部参数显示出来,能帮助更好的解释模型,因此本实施例通过步骤s16将模型进行可视化展示。

步骤s16:通过d3.js将指定json格式数据在页面进行树形展示和渲染。

请参考图5和图6,图5为本申请实施例提供的一种可视化显示步骤的原理示意图,图6为本申请实施例提供的一种可视化显示步骤的流程示意图,则步骤s16具体可以如下:

步骤s161:通过d3.js的树结构布局,将d3.js的树模式应用至页面的页面容器中。

d3(data-drivendocuments或d3.js)是一个javascript库,用于使用web标准将数据可视化。其中,d3.js的树结构布局可以是树(tree模式)对应的布局。

可选地,该页面容器可以是index.html,使用tree布局对应的tree.js对指定json格式数据(即图5中的data.js)中的树进行展示。

步骤s162:基于指定json格式数据构造d3.js的节点和连线。

上述节点为d3.js中的nodes,连线为d3.js中的links,d3.js会自动计算节点最终显示的位置。

步骤s163:定义每个节点的显示属性。

具体地,节点的显示属性可以包括自定义显示值、描述和样式等,例如决策树每个结点展示其特征、分裂点阈值、分类样本数和标签等数据等,或如下图7所示,图7为本申请实施例提供的一种随机森林节点显示属性的展示示意图,节点的显示属性对随机森林每个结点展示其特征列表、分类标签和特征阈值等。

可选地,本实施例中还可以对节点添加添加鼠标移入移除事件,用于在内容超长时进行内容展开显示,可以是以tip的方式显示,如显示模型每个结点的决策原则、阈、特征和样本等。

可选地,本实施例中还可以对节点添加点击事件,当其为父节点时,可以收缩或展开下层结点,方便对模型进行不同角度、不同维度的可视化。例如,对于子结点的椭圆半径设置:遍历每层结点个数,求每层结点最大半径以及最终半径,该最终半径min(半径,值长度/2)值长度,将中文字符全部转为2个英文字符,再求长度,该长度为str.length*14(假设字体为14px),结点点击展开和收缩的设置可以是点击时将结点child改为_child。

步骤s164:基于d3.js的节点和连线、显示属性在页面进行树形展示和渲染。

具体地,本实施例中采用tree.js对树的节点、连线和显示属性进行展示,使用tree.css对树进行渲染。

为了配合上述树形机器学习模型可视化方法,本申请实施例还提供了一种树形机器学习模型可视化装置20。

请参考图8,图8为本申请实施例提供的一种树形机器学习模型可视化装置的模块示意图。

树形机器学习模型可视化装置20包括:

模型文件获取模块21,用于获取模型文件;

数据提取模块22,用于提取模型文件的树状结构数据,并将树状结构数据组成指定json格式数据,指定json格式数据中包括树状结构数据的节点数据,节点数据包括每个节点是否为叶子结点、节点名称以及节点规则;

可视化渲染模块23,用于通过d3.js将指定json格式数据在页面进行树形展示和渲染。

可选地,模型文件获取模块21具体用于:获取csv格式的模型训练数据;根据模型类型设置模型参数;基于模型训练数据和模型参数进行模型训练,以获得模型文件。

可选地,模型文件获取模块21具体用于:利用python的文件读取函数read_csv读取模型训练数据;将模型训练数据转换为dataframe格式数据,并提取dataframe格式数据中的特征x和标签列y;获取模型参数,基于模型参数构建模型;将特征x和标签列y代入model.fit函数对模型进行训练。

可选地,数据提取模块22具体用于:使用model.estimators_获取模型文件中模型的树列表;基于树列表,采用递归方式对模型中的每个树进行解析,以获得模型数据,模型数据包括树信息、特征、标签和/或树的索引;将模型数据组装为树状结构数据。

可选地,可视化渲染模块23具体用于:通过d3.js的树结构布局,将d3.js的树模式应用至页面的页面容器中;基于指定json格式数据构造d3.js的节点和连线;定义每个节点的显示属性;基于d3.js的节点、连线和显示属性在页面进行树形展示和渲染。

可选地,可视化渲染模块23具体用于:对每个节点添加鼠标移入移除事件,鼠标移入移除事件用于在内容超长时进行内容展开显示。

可选地,可视化渲染模块23具体用于:对每个节点添加点击事件,点击事件用于在节点为父节点时收缩或展开下层结点。

本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的树形机器学习模型可视化方法中任一项所述方法中的步骤。

应当理解是,该电子设备可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)等具有逻辑计算功能的电子设备。

本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行树形机器学习模型可视化方法中的步骤。

综上所述,本申请实施例提供了一种树形机器学习模型可视化方法、装置、电子设备及存储介质,所述方法包括:获取模型文件;提取所述模型文件的树状结构数据,并将所述树状结构数据组成指定json格式数据,所述指定json格式数据中包括所述树状结构数据的节点数据,所述节点数据包括每个节点是否为叶子结点、节点名称以及节点规则;通过d3.js将所述指定json格式数据在页面进行树形展示和渲染。

在上述方法中,基于训练的模型,使用递归对模型文件进行解析,提取出需要可视化的字段,如是否叶子结点、结点的阈值、标签、样本和特征等,并把这些字段根据结点的顺序组装成json文件,前端使用d3的tree机制对数据进行解析和展示,从而达到模型的可视化。该套方案解决了树形机器学习模型可视化效果不好的问题,不只是一张静态图片展示,而是一个交互式的模型网页,用户可以托拉拽,鼠标移动到结点自动显示每个结点的属性,交互性较好,提高了模型可视化展示的完整性和效率。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

需要说明的是,在本文中,关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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