一种基于WBS树的项目相似度评估及分析方法转让专利

申请号 : CN202211423364.1

文献号 : CN115577696B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 汪军乔科杨翘楚宋路兵康雨嘉苏俊龙杨洁张果陈文宇沈国焱胡军军庞骁奕黎丁实

申请人 : 四川省公路规划勘察设计研究院有限公司

摘要 :

本发明涉及项目查询领域,提供了一种基于WBS树的项目相似度评估及分析方法,能客观、准确地评估各领域项目之间的相似度,有利于为待完成项目提供科学的参考依据。其中,相似度评估方法包括:首先,根据项目WBS树节点间及其关联节点间的任务字段的语义相似度,计算项目的节点相似度;然后,根据项目WBS树间节点的增减和替换,计算项目的结构相似度;最后,融合节点相似度和结构相似度,评估项目相似度。而相似度分析方法,则基于相似度评估结果,通过MDS多维尺度分析法,进行降维分析,对项目集合进行整体的相似性分析。其适用于存在项目库,且项目能按WBS进行分解的各类项目,尤其是工程建设领域。

权利要求 :

1.一种基于WBS树的项目相似度评估方法,其特征在于,包括以下步骤:S1、计算节点对的集成相似度:

遍历第一项目和第二项目的WBS树的各个节点,进行两两组合,形成节点对(ni,mj),获得节点对集合,其中,ni表示节点对中第一项目的节点,mj表示节点对中第二项目的节点;

遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj所构成节点对的任务字段之间的语义相似度,以及节点ni的关联节点和节点mj的关联节点所构成节点对的任务字段之间的语义相似度;节点ni的关联节点包括节点ni的父层节点、子层节点和同层节点;节点mj的关联节点包括节点mj的父层节点、子层节点和同层节点;

然后,融合各节点对的节点间的语义相似度和关联节点的语义相似度,获得各节点对的集成相似度,具体为:simintegration(ni,mj)=(simnodes(ni,mj)+ simpeers(ni,mj)+ simparents(ni,mj)+ simchildren(ni,mj))/4其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度,simnodes(ni,mj)表示节点ni和节点mj的任务字段之间的语义相似度,simpeers(ni,mj)表示节点ni和节点mj的同层相似度,simparents(ni,mj)表示节点ni和节点mj的父层相似度,simchildren(ni,mj)表示节点ni和节点mj的子层相似度;

S2、计算项目间的节点相似度:

根据各节点对的集成相似度,判定其是否满足预设的相似度匹配阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点标注为无匹配节点;然后,融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度;所述融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度,具体为:其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示 的节点数量,N2表示 的节点数量,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度;

S3、计算项目间的结构相似度:

定义其中一个项目为目标项目、另一个项目为参考项目,计算目标项目的节点替换得分和目标项目的节点增减得分;然后,融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度;

所述融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度,具体为:其中,  表示节点增减得分, 表示节点替换得分;

所述目标项目的节点替换得分表征:通过将匹配节点对中的目标项目节点,替换为匹配节点对中的参考项目节点,评估项目的差异;

所述目标项目的节点增减得分表征:通过将无匹配节点中,属于参考项目的节点增加到目标项目中,以及属于目标项目的节点进行删除,评估项目的差异;

S4、融合第一项目和第二项目WBS树之间的节点相似度和结构相似度,获得第一项目和第二项目之间的项目相似度,具体为:其中, 表示第一项目和第二项目WBS树之间的节点相似度, 

表示第一项目和第二项目WBS树之间的结构相似度;

步骤S1中,节点对的任务字段之间的语义相似度的计算,包括:

A1、将计算语义相似度所对应的节点对的两个节点,分别利用自然语言工具对其任务字段进行分词;

A2、计算分别以两个节点作为目标节点时的相似贡献度,相似贡献度的计算过程为:根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度;遍历目标节点的所有词语,获得目标节点各词语的语义相似度;然后,融合目标节点各词语的语义相似度,获得目标节点的相似贡献度;所述融合目标节点各词语的语义相似度,获得目标节点的相似贡献度,具体为:其中,simtask(taskt)表示目标节点的相似贡献度,taskt表示目标节点的任务字段的词语序列,taskc表示另一个节点的任务字段的词语序列,  表示taskt的第q个词语,max表示取最大值,Q为目标节点的任务字段的词语序列的词语数量;

A3、融合两个节点分别作为目标节点时的相似贡献度,获得该节点对的任务字段之间的语义相似度:其中, 表示以节点ni作为目标节点时的相似贡献度, 表示以

节点mj作为目标节点时的相似贡献度;

步骤S1中,所述计算每一个节点对(ni,mj)中,节点ni和节点mj的关联节点所构成节点对的任务字段之间的语义相似度,包括:首先,分别以父层、子层和同层作为当前层级,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;

然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度;

其中,节点ni和节点mj的子层和同层的关联节点的任务字段之间的语义相似度,包括:首先,分别以子层和同层作为当前层级,遍历当前层级的节点,进行两两组合,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;

然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;并按如下公式,融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度:其中,simlevel(ni,mj)表示节点ni和节点mj的当前层级的相似度;countlevel_match为满足于预设的当前层级的相似度阈值的节点对的数量, 和 分别为节点ni和节点mj在当前层级的节点总数;

其中,节点ni和节点mj的父层的关联节点的任务字段之间的语义相似度,包括:首先,以父层作为当前层级,并根据对应的WBS树,分别以节点ni和节点mj作为起点,向上逐级构建节点ni和节点mj的父层的关联节点对;并计算父层的关联节点对的任务字段之间的语义相似度;

然后,根据预设的父层相似度阈值,对父层的关联节点对进行筛选;按如下公式,融合满足于父层相似度阈值的父层关联节点对的语义相似度,获得父层相似度:其中,simlevel(ni,mj)表示节点ni和节点mj的父层相似度,上标k表示其为节点ni和节点mj的各级父层关联节点对中的第k层的关联节点对的任务字段间的语义相似度,K表示父节点对的数量。

2.如权利要求1所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤A2中,根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度,遍历目标节点的所有词语,获得目标节点各词语的语义相似度,包括:A21、利用自然语言工具,分别获得目标节点和另一个节点的所有词语的近似词集合;

将另一个节点的所有词语及其近似词集合,构成待选词集合;

A22、提取目标节点的一个词语,作为当前的目标词,将目标词及其近似词集合构成目标词集合;

A23、将目标词集合中的每一个词语,与待选词集合的所有词语,利用自然语言工具,逐个进行语义相似度计算,并将计算获得的最大语义相似度,作为当前目标词的语义相似度;

A24、判断是否完成目标节点所有词语的遍历,若是则结束计算,否则,返回步骤A22。

3.如权利要求1所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤S1中,遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj的任务字段之间的语义相似度,以及节点ni和节点mj的关联节点的任务字段之间的语义相似度,包括:S11、提取一个节点对,计算该节点对的两个节点的任务字段之间的语义相似度;

S12、根据步骤S11获得的节点对的两个节点的任务字段之间的语义相似度,基于预设的节点筛选阈值进行判定,若满足于节点筛选阈值,则执行步骤S13,否则,对该节点对的关联节点的任务字段之间的语义相似度,保留初始值或按预设值进行赋值,并执行步骤S14;

S13、计算节点ni和节点mj的关联节点的任务字段之间的语义相似度;

S14、判定是否遍历完成所有节点对,若是,则完成遍历计算,否则,返回步骤S11。

4.如权利要求1所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤S2,包括:S21、根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度;

S22、根据各节点对的层级相似度,构建其集成相似度的权重,基于各节点对的集成相似度及其权重,计算获得各节点对加权后的集成相似度;

S23、根据各节点对加权后的集成相似度,判定其是否满足预设的匹配相似度阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点均标注为无匹配节点;

S24、融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度。

5.如权利要求4所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤S21中,根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度,包括:其中,simtaskDetail(ni,mj)表示节点ni和节点mj的层级相似度,L1表示第一项目WBS树的层级总数,L2表示第二项目WBS树的层级总数, 和 分别表示节点ni和节点mj在对应WBS树中的层级。

6.如权利要求1‑5任一项所述的一种基于WBS树的项目相似度评估方法,其特征在于,目标项目的节点替换得分,根据匹配节点对进行评估:定义1‑ simintegration(ni,mj)为匹配节点对的节点间的距离,并根据各个匹配节点对的节点间的距离的均值,评估目标项目的节点替换得分,其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度;

目标项目的节点增减得分,根据无匹配节点进行评估:根据无匹配节点的数量占比,评估目标项目的节点替换得分。

7.如权利要求6所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤S3中,目标项目的节点替换得分的计算,具体为:

其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示 的节点数量,N2表示 的节点数量,UM为无匹配节点的总数,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度。

8.如权利要求6所述的一种基于WBS树的项目相似度评估方法,其特征在于,步骤S3中,目标项目的节点增减得分的计算,具体为:其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示 的节点数量,N2表示 的节点数量,UM为无匹配节点的总数。

9.一种基于WBS树的项目相似度分析方法,其特征在于,包括以下步骤:S1、将待建项目和项目数据池中的已建项目,作为项目集合;

S2、采用如权利要求1 8任一项所述的相似度评估方法,计算项目集合中任意的两两项~目之间的相似度;

S3、根据项目集合中所有的两两项目之间的相似度,构建距离矩阵;

S4、基于距离矩阵,采用MDS多维尺度分析法,进行降维分析。

说明书 :

一种基于WBS树的项目相似度评估及分析方法

技术领域

[0001] 本发明涉及项目查询领域,具体涉及一种基于WBS树的项目相似度评估及分析方法。

背景技术

[0002] 已完成工程建设项目的数据与信息,对于即将新建的类似项目,具有较大的借鉴与参考价值,其经验知识可以被用来指导并解决新建项目中可能遇到的困难与挑战,辅助管理人员更好地进行相关决策。因此,如何更加准确、高效地评估不同建设项目之间的相似程度,从过去的项目数据池中,查询到与当前拟建项目相似程度较高的项目,进而实现项目经验知识的复用,是当前工程建设领域管理者所重点关注的研究领域。
[0003] 当前,由部分学者所提出的基于统计分析技术、基于知识管理系统以及基于过往案例集进行推理等方法均存在一定程度的不足,例如,查询与匹配相似项目的运算过程耗时较长,导致效率低下;相似度评估结果的精确度不足,导致最终搜寻到的项目文件与当前项目的相似度并不高;某些方法设置了严格的前提条件,例如要求项目存档文件严格遵循某种预定义格式等,导致方法难以落地实施;此外,现存的大部分搜寻方法或相似度评估方法一般都只考虑了工程项目中的一部分特征,而没有将整个工程项目所包含的要素全都纳入考虑,因此具有较强的主观性和局限性,缺乏客观性和全局性。

发明内容

[0004] 本发明所要解决的技术问题是:提出一种基于WBS树的项目相似度评估及分析方法,能客观、准确地评估和分析项目之间的相似度,进而能根据待完成项目与已完成项目库中各个项目的相似度,查询获得待完成项目的参考项目,为待完成项目提供科学的参考依据。
[0005] 本发明解决上述技术问题采用的技术方案是:
[0006] 一种基于WBS树的项目相似度评估方法,包括以下步骤:
[0007] S1、计算节点对的集成相似度:
[0008] 遍历第一项目和第二项目的WBS树的各个节点,进行两两组合,形成节点对(ni,mj),获得节点对集合,其中,ni表示节点对中第一项目的节点,mj表示节点对中第二项目的节点;
[0009] 遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj所构成节点对的任务字段之间的语义相似度,以及节点ni的关联节点和节点mj的关联节点所构成节点对的任务字段之间的语义相似度;
[0010] 然后,融合各节点对的节点间的语义相似度和关联节点的语义相似度,获得各节点对的集成相似度;
[0011] S2、计算项目间的节点相似度:
[0012] 根据各节点对的集成相似度,判定其是否满足预设的相似度匹配阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点标注为无匹配节点;然后,融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度;
[0013] S3、计算项目间的结构相似度:
[0014] 定义其中一个项目为目标项目、另一个项目为参考项目,计算目标项目的节点替换得分和目标项目的节点增减得分;然后,融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度;
[0015] 所述目标项目的节点替换得分表征:通过将匹配节点对中的目标项目节点,替换为匹配节点对中的参考项目节点,评估项目的差异;
[0016] 所述目标项目的节点增减得分表征:通过将无匹配节点中,属于参考项目的节点增加到目标项目中,以及属于目标项目的节点进行删除,评估项目的差异;
[0017] S4、融合第一项目和第二项目WBS树之间的节点相似度和结构相似度,获得第一项目和第二项目之间的项目相似度。
[0018] 具体的,步骤S1中,节点对的任务字段之间的语义相似度的计算,包括:
[0019] A1、将计算语义相似度所对应的节点对的两个节点,分别利用自然语言工具对其任务字段进行分词;
[0020] A2、计算分别以两个节点作为目标节点时的相似贡献度,相似贡献度的计算过程为:
[0021] 根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度;遍历目标节点的所有词语,获得目标节点各词语的语义相似度;然后,融合目标节点各词语的语义相似度,获得目标节点的相似贡献度;
[0022] A3、融合两个节点分别作为目标节点时的相似贡献度,获得该节点对的任务字段之间的语义相似度。
[0023] 进一步的,步骤A2中,根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度,遍历目标节点的所有词语,获得目标节点各词语的语义相似度,包括:
[0024] A21、利用自然语言工具,分别获得目标节点和另一个节点的所有词语的近似词集合;将另一个节点的所有词语及其近似词集合,构成待选词集合;
[0025] A22、提取目标节点的一个词语,作为当前的目标词,将目标词及其近似词集合构成目标词集合;
[0026] A23、将目标词集合中的每一个词语,与待选词集合的所有词语,利用自然语言工具,逐个进行语义相似度计算,并将计算获得的最大语义相似度,作为当前目标词的语义相似度;
[0027] A24、判断是否完成目标节点所有词语的遍历,若是则结束计算,否则,返回步骤A22。
[0028] 具体的,步骤A2中,融合目标节点各词语的语义相似度,获得目标节点的相似贡献度,具体为:
[0029]
[0030] 其中,simtask(taskt)表示目标节点的相似贡献度,taskt表示目标节点的任务字段的词语序列,taskc表示另一个节点的任务字段的词语序列, 表示taskt的第q个词语,max表示取最大值,Q为目标节点的任务字段的词语序列的词语数量;
[0031] 步骤A3中,融合两个节点分别作为目标节点时的相似贡献度,获得该节点对的任务字段之间的语义相似度,具体为:
[0032]
[0033] 其中, 表示以节点ni作为目标节点时的相似贡献度,表示以节点mj作为目标节点时的相似贡献度。
[0034] 具体的,步骤S1中,节点ni和节点mj的关联节点,包括其父层节点、子层节点和同层节点;步骤S1中,计算每一个节点对(ni,mj)中,节点ni和节点mj的关联节点的任务字段之间的语义相似度,包括:
[0035] 首先,分别以父层、子层和同层作为当前层级,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;
[0036] 然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度。
[0037] 具体的,步骤S1中,融合各节点对的节点间的语义相似度和关联节点的语义相似度,获得各节点对的集成相似度,具体为:
[0038] simintegration(ni,mj)=(simnodes(ni,mj)+ simpeers(ni,mj)+ simparents(ni,mj)+ simchildren(ni,mj))/4
[0039] 其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度,simnodes(ni,mj)表示节点ni和节点mj的任务字段之间的语义相似度,simpeers(ni,mj)表示节点ni和节点mj的同层相似度,simparents(ni,mj)表示节点ni和节点mj的父层相似度,simchildren(ni,mj)表示节点ni和节点mj的子层相似度。
[0040] 具体的,步骤S1中,计算每一个节点对(ni,mj)中,节点ni和节点mj的子层和同层的关联节点的任务字段之间的语义相似度,包括:
[0041] 首先,分别以子层和同层作为当前层级,遍历当前层级的节点,进行两两组合,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;
[0042] 然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;并按如下公式,融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度:
[0043]
[0044] 其中,simlevel(ni,mj)表示节点ni和节点mj的当前层级的相似度;countlevel_match为满足于预设的当前层级的相似度阈值的节点对的数量, 分别为节点ni和节点mj在当前层级的节点总数。
[0045] 具体的,步骤S1中,计算每一个节点对(ni,mj)中,节点ni和节点mj的父层的关联节点的任务字段之间的语义相似度,包括:
[0046] 首先,以父层作为当前层级,并根据对应的WBS树,分别以节点ni和节点mj作为起点,向上逐级构建节点ni和节点mj的父层的关联节点对;并计算父层的关联节点对的任务字段之间的语义相似度;
[0047] 然后,根据预设的父层相似度阈值,对父层的关联节点对进行筛选;按如下公式,融合满足于父层相似度阈值的父层关联节点对的语义相似度,获得父层相似度:
[0048]
[0049] 其中,simlevel(ni,mj)表示节点ni和节点mj的父层相似度,上标k表示其为节点ni和节点mj的各级父层关联节点对中的第k层的关联节点对的任务字段间的语义相似度,K表示父节点对的数量。
[0050] 进一步的,步骤S1中,遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj的任务字段之间的语义相似度,以及节点ni和节点mj的关联节点的任务字段之间的语义相似度,包括:
[0051] S11、提取一个节点对,计算该节点对的两个节点的任务字段之间的语义相似度;
[0052] S12、根据步骤S11获得的节点对的两个节点的任务字段之间的语义相似度,基于预设的节点筛选阈值进行判定,若满足于节点筛选阈值,则执行步骤S13,否则,对该节点对的关联节点的任务字段之间的语义相似度,保留初始值或按预设值进行赋值,并执行步骤S14;
[0053] S13、计算节点ni和节点mj的关联节点的任务字段之间的语义相似度;
[0054] S14、判定是否遍历完成所有节点对,若是,则完成遍历计算,否则,返回步骤S11。
[0055] 进一步的,步骤S2,包括:
[0056] S21、根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度;
[0057] S22、根据各节点对的层级相似度,构建其集成相似度的权重,基于各节点对的集成相似度及其权重,计算获得各节点对加权后的集成相似度;
[0058] S23、根据各节点对加权后的集成相似度,判定其是否满足预设的匹配相似度阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点均标注为无匹配节点;
[0059] S24、融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度。
[0060] 具体的,步骤S21中,根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度,包括:
[0061]
[0062] 其中,simtaskDetail(ni,mj)表示节点ni和节点mj的层级相似度,L1表示第一项目WBS树的层级总数,L2表示第二项目WBS树的层级总数, 分别表示节点ni和节点mj在对应WBS树中的层级。
[0063] 具体的,步骤S2中,融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度,具体为:
[0064]
[0065] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示的节点数量,N2表示 的节点数量,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度。
[0066] 进一步的,目标项目的节点替换得分,根据匹配节点对进行评估:定义1‑ simintegration(ni,mj)为匹配节点对的节点间的距离,并根据各个匹配节点对的节点间的距离的均值,评估目标项目的节点替换得分,其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度;
[0067] 目标项目的节点增减得分,根据无匹配节点进行评估:根据无匹配节点的数量占比,评估目标项目的节点替换得分。
[0068] 具体的,步骤S3中,目标项目的节点替换得分的计算,具体为:
[0069]
[0070] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示的节点数量,N2表示 的节点数量,UM为无匹配节点的总数,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度。
[0071] 具体的,步骤S3中,目标项目的节点增减得分的计算,具体为:
[0072]
[0073] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示的节点数量,N2表示 的节点数量,UM为无匹配节点的总数。
[0074] 具体的,步骤S3中,融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度,具体为:
[0075]
[0076] 其中, 表示节点增减得分, 表示节点替换得分。
[0077] 具体的,步骤S4中,融合第一项目和第二项目WBS树之间的节点相似度和结构相似度,获得第一项目和第二项目之间的项目相似度,具体为:
[0078]
[0079] 其中, 表示第一项目和第二项目WBS树之间的节点相似度, 表示第一项目和第二项目WBS树之间的结构相似度。
[0080] 另外,本发明还提供了一种基于WBS树的项目相似度分析方法,包括以下步骤:
[0081] S1、将待建项目和项目数据池中的已建项目,作为项目集合;
[0082] S2、采用如上所述的相似度评估方法,计算项目集合中任意的两两项目之间的相似度;
[0083] S3、根据项目集合中所有的两两项目之间的相似度,构建距离矩阵;
[0084] S4、基于距离矩阵,采用MDS多维尺度分析法,进行降维分析。
[0085] 本发明的有益效果是:
[0086] 本发明通过定量计算项目WBS树之间差异进行相似度评估,且项目WBS树之间的相似度,不仅考虑WBS树节点本身的相似度,还考虑WBS树节点的关联节点的相似度,以及节点替换、增减所导致的变化,以此综合计算出WBS树之间的相似度,因此,充分地考虑了可能导致差异的各个因素和环节,从而能够更加客观、准确地评价项目之间的相似性,以便选择相似度较高的项目作为参考项目。
[0087] 同时,本发明在相似度评估的基础上,采用多维尺度分析法,对当前项目库中的所有项目与待完成项目的整体相关性进行降维分析,将分析结果直接映射到三维空间中,形成点集,基于点与点之间的距离和相对位置关系,可以更加直观地展示项目间的相似性,以便于评价当前所采用的项目库在整体上与待完成项目是否有较好的匹配度。
[0088] 上述WBS,也即Work Breakdown Structure的首字母缩写,中文翻译为工作分解结构,其以可交付成果为导向,对项目要素进行的分组,归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义,是目前实施项目规划与分解的常用工具。创建项目WBS所形成的数据,其数据结构呈树结构,如图1所示,因此,也被称为项目的WBS树。
[0089] 因此,本发明的评估方法,适用于存在项目库,且项目能按WBS进行分解的各类项目,尤其是工程建设领域。当前的工程建设领域,为实现项目的科学管理与运营,通常采用BIM技术对项目全周期所涉及的要素进行数字化和信息化,包括项目WBS树的创建,并将相关数据储存于BIM数据池中,因此,本发明能够很方便的进行实施。

附图说明

[0090] 图1为WBS树的示例;
[0091] 图2为本发明基于WBS树的项目相似度评估方法的流程示意图;
[0092] 图3为本发明父节点的任务字段间的父层语义相似度计算的示意图;
[0093] 图4为本发明同级节点的任务字段间的同层语义相似度计算的示意图;
[0094] 图5为本发明子节点的任务字段间的子层语义相似度计算的示意图;
[0095] 图6(a)、(b)、(c)为实施例中的待建项目WBS树与三种不同BIM池的相似度分析结果。

具体实施方式

[0096] 如图1所示,WBS树,是对项目要素进行的分组,其每个节点均包含两个属性,分别是节点的编码,如图中的1和1.1,以及节点的任务,如项目名称和A组。比较和度量两个WBS树之间的相似度,首先需要考虑如何度量WBS树节点上的任务的相似度,发明人认为需要考虑两方面的问题:
[0097] 一、同一种任务可能会存在不同的文字表达方式,带有一定的主观性,因此,需要比较两个任务字段的语义是否相似,而不是比较字段是否完全相同;
[0098] 二、即便两个节点的任务字段语义相似,也并不一定属于同一种任务。例如任务字段同为“混凝土浇筑”的两个节点,有可能其中一个是梁的混凝土浇筑,而另一个是桩基的混凝土浇筑,因此还需要结合与其关联的节点的任务内容进行考虑。
[0099] 因此,本发明的评估方法,从语义层面、节点层面以及节点的关联节点层面,共三个层面对节点的相似度进行评估;同时,如图2所示,在节点相似度评估的基础上,还从节点的替换、增减层面,对项目的结构相似度进行评估,因此,能够更加客观、准确地评价项目之间的相似性。
[0100] 任务字段语义特征提取以及语义相似度的计算,可以采用任意的现有方案,比如:现有较为成熟的能进行语义分析的自然语言工具。自然语言工具,是利用计算机来对人类语言进行识别、理解、处理等的人工智能技术,可以对词汇、短语、句子之间的相似度进行较为科学准确的度量,比如Bert预训练模型、NLTK等。当然,根据需要,也可以基于项目的词库、文本库、知识库等文本库,采用RNN、LSTM等深度神经网络模型,构建项目领域专属的语义分析自然语言工具。
[0101] 而相似度计算,其实质是计算两个向量的距离,距离越近则相似度越大,常用的包括:欧式距离、Tanimoto系数、余弦相似度等,具体的相似度计算的方式,可以根据自然语言工具输出的格式以及实际需要进行选择。
[0102] 综上所述,本发明的一种基于WBS树的项目相似度评估及分析方法,其核心在于评估的过程,而不在于语义特征提取及基于语义特征提取的相似度计算。以下结合实施例进行进一步的描述。
[0103] 实施例:
[0104] S1、计算节点对的集成相似度
[0105] 本步骤中,遍历第一项目和第二项目的WBS树的各个节点,进行两两组合,形成节点对(ni,mj),获得节点对集合,其中,ni表示节点对中第一项目的节点,mj表示节点对中第二项目的节点;然后,遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj所构成节点对的任务字段之间的语义相似度,以及节点ni的关联节点和节点mj的关联节点所构成节点对的任务字段之间的语义相似度;最后,融合各节点对的节点间的语义相似度和关联节点的语义相似度,获得各节点对的集成相似度。
[0106] 上述步骤中,计算任务字段之间的语义相似度,包括:
[0107] a1、将计算语义相似度所对应的节点对的两个节点,分别利用自然语言工具对其任务字段进行分词;
[0108] a2、计算分别以两个节点作为目标节点时的相似贡献度,相似贡献度的计算过程为:
[0109] 根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度;遍历目标节点的所有词语,获得目标节点各词语的语义相似度;然后,融合目标节点各词语的语义相似度,获得目标节点的相似贡献度;
[0110] a3、融合两个节点分别作为目标节点时的相似贡献度,获得该节点对的任务字段之间的语义相似度。
[0111] 考虑到同一种任务可能会存在不同的文字表达方式,但其语义相似,为了科学合理地计算两个相似度,进一步的,步骤a2中,根据分词获得的词语,利用自然语言工具,将目标节点的每一个词语,与另一个节点的所有词语,逐个进行语义相似度计算,并以计算获得的最大语义相似度,作为目标节点的该词语的语义相似度,遍历目标节点的所有词语,获得目标节点各词语的语义相似度,包括:
[0112] a21、利用自然语言工具,分别获得目标节点和另一个节点的所有词语的近似词集合;将另一个节点的所有词语及其近似词集合,构成待选词集合;
[0113] a22、提取目标节点的一个词语,作为当前的目标词,将目标词及其近似词集合构成目标词集合;
[0114] a23、将目标词集合中的每一个词语,与待选词集合的所有词语,利用自然语言工具,逐个进行语义相似度计算,并将计算获得的最大语义相似度,作为当前目标词的语义相似度;
[0115] a24、判断是否完成目标节点所有词语的遍历,若是则结束计算,否则,返回步骤A22。
[0116] 在实施例中,自然语言工具采用NLTK,调用其WordNet组件进行程序开发,以实现任务字段之间语义相似度的计算。由于NLTK不支持中文输入,因此,首先,调用python的多语种翻译库translate中Translator函数,将任务字段统一译为英文字段,由于翻译过程本身包含了分词过程,因此,这里采用任务字段的单词进行相似度计算。对于没有自然分词的语言,比如汉语,若直接利用自然语言工具进行相似度计算,则应通过自然语言工具进行分词。
[0117] 下面以两个任务字段task1和task2为例,说明目标节点任务字段task1的单词的相似度计算过程:
[0118] 1)调用synsets接口,分别获得目标节点任务字段task1和另一个节点任务字段task2的所有词语的近似词集合;将另一个节点的所有词语及其近似词集合,构成待选词集合synsets2;
[0119] 2)提取目标节点的一个词语 ,作为当前的目标词,将目标词 及其近似词集合构成目标词集合 ;
[0120] 3)遍历 集合中每个单词 ,逐个与synsets2中的单词 ,采用wup_similarity函数,进行相似度计算,找到遍历计算过程中所能获得的最大的相似性值,以其作为 和task2的相似度,并记作 。
[0121] 项目相似度,其值的取值范围可以设定为大于0且小于或等于1。若设定为非大于0且小于或等于1时,项目相似度的区分度可能更大;但,项目的WBS树的节点数并不总是相等的,因此,设定为大于0且小于或等于1,容易进行项目间的比较。
[0122] 实施例中,采用WordNet中的语义相似度判函数wup_similarity,其输出为大于0并小于或等于1的分数,而要满足项目相似度值的取值范围为大于0且小于或等于1,最好的,在实施例的各步骤中,对相似度的融合,采用平均值的方式、或者计数并计算数量占比的方式,可以确保各步骤融合计算的结果的值的取值范围也为大于0且小于或等于1。
[0123] 具体的讲,步骤a2中,融合目标节点各词语的语义相似度,获得目标节点的相似贡献度,具体为:
[0124]
[0125] 其中,simtask(taskt)表示目标节点的相似贡献度,taskt表示目标节点的任务字段的词语序列,taskc表示另一个节点的任务字段的词语序列, 表示taskt的第q个词语,max表示取最大值,Q为目标节点的任务字段的词语序列的词语数量;
[0126] 步骤a3中,融合两个节点分别作为目标节点时的相似贡献度,获得该节点对的任务字段之间的语义相似度,具体为:
[0127]
[0128] 其中, 表示以节点ni作为目标节点时的相似贡献度, 表示以节点mj作为目标节点时的相似贡献度。
[0129] 如前所述,在现有机器学习中,自然语言工具、相似度计算、融合方式均不是惟一的,针对其他的自然语言工具以及相似度计算方式和融合方式,若其值不满足大于0且小于或等于1,而又要满足项目相似度值的取值范围为大于0且小于或等于1,则可以在任意的步骤,通过增加归一化计算,对其值进行归整,使其符合取值范围的设定。
[0130] 节点的关联节点,也即与节点相连的节点,根据划分的不同,可以是邻居节点并限定其跳数,但考虑到,WBS为树结构,因此,最好的,采用父层、子层和同层的划分方式。同时,受项目领域的影响,节点的父层、子层和同层的影响并不一致,因此,关联节点可以包括父层、子层和同层中的一种或多种。
[0131] 实施例中,从全面考虑的角度出发,在本步骤中,节点ni和节点mj的关联节点,包括其父层节点、子层节点和同层节点。
[0132] 且在本步骤中,计算每一个节点对(ni,mj)中,节点ni和节点mj的关联节点的任务字段之间的语义相似度,包括:
[0133] 首先,分别以父层、子层和同层作为当前层级,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;
[0134] 然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度。
[0135] 上述计算方式,首先构建当前层级的关联节点对,以节点对的方式进行筛选和计算,因此,关联节点中,第一项目和第二项目参与计算的节点数量相同,以第一项目为目标项目,还是以第二项目为目标项目,并不影响最终的计算结果;同时,首先经过筛选,然后进行融合,在等权重的条件下,更能体现节点间的相似程度。
[0136] 由于实施例中的关联节点包括父层节点、子层节点和同层节点,因此,如前所述,为确保其计算结果的值的取值范围也为大于0且小于或等于1,在本实施例中,以平均值的方式,融合各节点对的节点间的语义相似度和关联节点的语义相似度,获得各节点对的集成相似度,具体为:
[0137] simintegration(ni,mj)=(simnodes(ni,mj)+ simpeers(ni,mj)+ simparents(ni,mj)+ simchildren(ni,mj))/4
[0138] 其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度,simnodes(ni,mj)表示节点ni和节点mj的任务字段之间的语义相似度,simpeers(ni,mj)表示节点ni和节点mj的同层相似度,simparents(ni,mj)表示节点ni和节点mj的父层相似度,simchildren(ni,mj)表示节点ni和节点mj的子层相似度。
[0139] 上述的计算,是在各节点、各层级权重相同的前提下,进行的计算;但从项目出发,父层节点、子层节点和同层节点的影响并不完全一致,通常情形下,父层的影响更大;且父层节点可以仅为节点的上层节点,也可以包括逐层向上直至根节点,而且层级差距越大,影响越小,子节点同理。因此,为了兼顾各层级影响的不同,又避免大量赋值权重导致的困难,且满足于上述的取值范围的要求,在实施例中,融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度simlevel(ni,mj)时,针对子层节点和同层节点,采用计数并计算占比的方式进行;而针对父层节点,则采用加权平均的方式进行。当然,作为简化父层节点也可以采用计数并计算占比的方式;而从丰富信息的角度,子层节点和同层节点也可以采用平均值或加权平均值的方式。
[0140] 其中,计数并计算占比的方式,具体为:
[0141] 首先,分别以子层和同层作为当前层级,遍历当前层级的节点,进行两两组合,构建当前层级的关联节点对;并计算当前层级的关联节点对的任务字段之间的语义相似度;
[0142] 然后,根据预设的当前层级的相似度阈值,对当前层级的关联节点对进行筛选;并按如下公式,融合满足于当前层级相似度阈值的当前层级关联节点对的语义相似度,获得当前层级的相似度:
[0143]
[0144] 其中,simlevel(ni,mj)表示节点ni和节点mj的当前层级的相似度;countlevel_match为满足于预设的当前层级的相似度阈值的节点对的数量, 分别为节点ni和节点mj在当前层级的节点总数。
[0145] 加权平均的方式,具体为:
[0146] 首先,以父层作为当前层级,并根据对应的WBS树,分别以节点ni和节点mj作为起点,向上逐级构建节点ni和节点mj的父层的关联节点对;并计算父层的关联节点对的任务字段之间的语义相似度;
[0147] 然后,根据预设的父层相似度阈值,对父层的关联节点对进行筛选;按如下公式,融合满足于父层相似度阈值的父层关联节点对的语义相似度,获得父层相似度:
[0148]
[0149] 其中,simlevel(ni,mj)表示节点ni和节点mj的父层相似度,上标k表示其为节点ni和节点mj的各级父层关联节点对中的第k层的关联节点对的任务字段间的语义相似度,K表示父节点对的数量。
[0150] 上述加权平均的方式,是在平均值的基础上,考虑了层级影响,以层级作为权重进行的计算。相对于平均值,其能反应出更多的信息。且由于上述k为相对值,因此,以第一或者第二项目作为计算基础,并不影响最终结果。
[0151] 综上,在本实施例中,各层级的相似度的计算,具体的:
[0152] 一、如图5所示,节点对(ni,mj)的子层相似度的计算,包括:
[0153] 首先,遍历节点ni和mj的子层节点,进行两两组合,形成子层节点对;
[0154] 然后,计算每一个子层节点对的任务字段间的语义相似度,并筛选出满足于预设子层相似度阈值的子层节点对;
[0155] 最后,按如下公式,计算子层相似度:
[0156]
[0157] 其中,simchildren(ni,mj)表示节点ni和mj的子层相似度,countchildren_match为满足于预设子层相似度阈值的子层节点对的数量, 分别为节点ni和mj的子节点数量;
[0158] 二、如图4所示,节点对(ni,mj)的同层相似度的计算,包括:
[0159] 首先,遍历节点ni和mj的同层节点,进行两两组合,形成同层节点对;
[0160] 然后,计算每一个同层节点对的任务字段间的语义相似度,并筛选出满足于预设同层相似度阈值的同层节点对;
[0161] 最后,按如下公式,计算同层相似度:
[0162]
[0163] 其中,simpeers(ni,mj)表示节点ni和mj的同层相似度,countpeers_match为满足于预设同层相似度阈值的同层节点对的数量, 分别为节点ni和mj的同层节点数量。
[0164] 三、如图3所示,节点对(ni,mj)的父层相似度的计算,包括:
[0165] 首先,根据对应的WBS树,分别以节点ni和节点mj作为起点,向上逐级构建节点ni和节点mj的父层的关联节点对;并计算父层的关联节点对的任务字段之间的语义相似度,直至其不满足于预设的父层相似度阈值,停止计算;
[0166] 然后,融合节点ni和节点mj各级父节点对的任务字段间的语义相似度,获得节点对(ni,mj)的父层相似度,具体为:
[0167]
[0168] 其中,simlevel(ni,mj)表示节点ni和节点mj的父层相似度,上标k表示其为节点ni和节点mj的各级父层节点对中的第k层的父层节点对的任务字段间的语义相似度,K表示父节点对的数量。且在实施例中,K=Lc‑Ln,Lc表示在不满足于预设父层相似度阈值时,父层节点对中目标项目的父层节点在目标项目WBS树的层级数,Ln表示目标项目WBS树的层级的总数。如图3所示,第1层满足阈值,将其纳入计算,继续往上搜索,第2层不满足于阈值,第2层即为临界层级Lc,再往上的层级就不纳入计算。
[0169] 由于本步骤计算较多,因此,为了降低计算负载,遍历节点对集合,计算每一个节点对(ni,mj)中,节点ni和节点mj的任务字段之间的语义相似度,以及节点ni和节点mj的关联节点的任务字段之间的语义相似度,包括:
[0170] S11、提取一个节点对,计算该节点对的两个节点的任务字段之间的语义相似度;
[0171] S12、根据步骤S11获得的节点对的两个节点的任务字段之间的语义相似度,基于预设的节点筛选阈值进行判定,若满足于节点筛选阈值,则执行步骤S13,否则,对该节点对的关联节点的任务字段之间的语义相似度,保留初始值或按预设值进行赋值,并执行步骤S14;
[0172] S13、计算节点ni和节点mj的关联节点的任务字段之间的语义相似度;
[0173] S14、判定是否遍历完成所有节点对,若是,则完成遍历计算,否则,返回步骤S11。
[0174] 上述步骤,也即在满足一定的阈值时,保留真值,而不满足时,直接赋值,其赋值可以是初始值也可为预设值,上述筛选表明了该节点对的节点是否相似,若不相似,则其关联节点可以忽略,不在进行计算。在实施例中,采用设定值进行赋值,且赋值为0。
[0175] 由于本发明的计算,需要遍历第一项目和第二项目的WBS树的各个节点,进行两两组合,形成节点对(ni,mj),因此,遍历的过程,本身就包含了关联节点,因此,也可以先完成遍历计算,再提取节点对相似度进行融合的方式。
[0176] S2、计算项目间的节点相似度
[0177] 本步骤中,根据各节点对的集成相似度,判定其是否满足预设的相似度匹配阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点标注为无匹配节点;然后,融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度。
[0178] 考虑到在S1计算过程中,节点ni和节点mj为随机组合,基于节点对的集成相似度,节点ni对应的集成相似度最大值的映射节点mj可能不止一个,因此,考虑结合节点间的任务细化程度,来更进一步地评价节点间的相似程度。而某一节点的任务细化程度与该节点在其WBS树中的层级数密切相关,WBS树中层级越低的节点,所对应的任务的细化程度越高,因此,若节点ni和节点mj在其对应的WBS树中的层级差距越大,则影响应越小,因此,进一步的,本步骤的计算,按如下步骤进行计算:
[0179] S21、根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度;
[0180] S22、根据各节点对的层级相似度,构建其集成相似度的权重,基于各节点对的集成相似度及其权重,计算获得各节点对加权后的集成相似度;
[0181] S23、根据各节点对加权后的集成相似度,判定其是否满足预设的匹配相似度阈值,将满足的节点对标注为匹配节点对,并将剩余的第一项目和第二项目WBS树的节点均标注为无匹配节点;
[0182] S24、融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度。
[0183] 具体的,步骤S21中,根据节点ni和节点mj分别在对应WBS树中的层级,计算每一个节点对(ni,mj)的层级相似度,包括:
[0184]
[0185] 其中,simtaskDetail(ni,mj)表示节点ni和节点mj的层级相似度,L1表示第一项目WBS树的层级总数,L2表示第二项目WBS树的层级总数, 分别表示节点ni和节点mj在对应WBS树中的层级。
[0186] 在本实施例中,由于加权后的集成相似度,会导致相似度的值,不符合前述取值范围的要求,因此,上述加权后的集成相似度,在本实施例中,仅用于筛选,而不用于融合。
[0187] 因此,为简化计算过程,将各节点对的层级相似度simtaskDetail(ni,mj),作为其集成相似度的权重,并以相乘的方式,基于各节点对的集成相似度及其权重,计算获得各节点对加权后的集成相似度。而为了确保获得的节点相似度符合取值范围的要求,融合匹配节点对的集成相似度,获得第一项目和第二项目WBS树之间的节点相似度,具体为:
[0188]
[0189] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示的节点数量,N2表示 的节点数量,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度。
[0190] S3、计算项目间的结构相似度
[0191] 本步骤中,定义其中一个项目为目标项目、另一个项目为参考项目,计算目标项目的节点替换得分和目标项目的节点增减得分;然后,融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度;
[0192] 所述节点替换得分表征:通过将匹配节点对中的目标项目节点,替换为匹配节点对中的参考项目节点,评估项目的差异;
[0193] 所述节点增减得分表征:通过将无匹配节点中,属于参考项目的节点增加到目标项目中,以及属于目标项目的节点进行删除,评估项目的差异。
[0194] 结构相似度评估的基本理念,是通过将一个WBS树,通过节点增减、替换方式变更为另一个WBS树的结构形态,从而评估项目间的差异,也即相似度;差异越小,则说明两个WBS树的结构形态越相似。
[0195] 进一步的讲,目标项目的节点替换得分,根据匹配节点对进行评估:定义1‑ simintegration(ni,mj)为匹配节点对的节点间的距离,并根据各个匹配节点对的节点间的距离的均值,评估目标项目的节点替换得分,其中,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度;目标项目的节点增减得分,根据无匹配节点进行评估:根据无匹配节点的数量占比,评估目标项目的节点替换得分。
[0196] 结合上述取值范围的要求,具体的讲,在本实施例中,节点替换得分的计算,具体为:
[0197]
[0198] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示 的节点数量,N2表示 的节点数量,UM为无匹配节点的总数,MappedNodes表示匹配节点对的集合,simintegration(ni,mj)表示节点对(ni,mj)的集成相似度。
[0199] 目标项目的节点增减得分的计算,具体为:
[0200]
[0201] 其中, 表示第一项目的WBS树, 表示第二项目的WBS树,N1表示的节点数量,N2表示 的节点数量,UM为无匹配节点的总数。
[0202] 上述目标项目的节点替换得分和目标项目的节点增减得分,表征了两个项目WBS之间的差异性,且取值范围均为大于0且小于或等于1,因此,用1减去两者的均值,即可获得两个项目WBS之间的相似度,且取值范围符合前述取值范围的要求。具体的讲,融合目标项目的节点替换得分和目标项目的节点增减得分,获得第一项目和第二项目WBS树之间的结构相似度,具体为:
[0203]
[0204] 其中, 表示节点增减得分, 表示节点替换得分。
[0205] S4、计算项目间的项目相似度
[0206] 本步骤,融合第一项目和第二项目WBS树之间的节点相似度和结构相似度,获得第一项目和第二项目之间的项目相似度。
[0207] 由于前序获得的计算结果的取值范围均为大于0且小于或等于1,因此,在实施例中,通过平均的方式结合完成融合,具体为:
[0208]
[0209] 其中, 表示第一项目和第二项目WBS树之间的节点相似度, 表示第一项目和第二项目WBS树之间的结构相似度。
[0210] 总体的项目相似度,计算结果大于0且小于或等于1,0代表两者完全不相似,1则代表两者一模一样。
[0211] 上述各步骤中的阈值,可根据项目情况,按实际进行设置,其设置的目的在于帮助排除一些相似度相对较低的计算结果,以此提高计算效率。由于实施例中,各步骤的计算结果均值0 1之间,因此,各步骤的阈值也在0 1之间,其取值可由项目领域和实际需求进行设~ ~定,一般在0.5 0.8之间,阈值越大则排除越多,比较越严格。
~
[0212] 实际工程建设项目制作WBS树过程中,可能需要对BIM数据池中的多个过往类似工程项目的WBS树进行参考和借鉴。基于上述方法,可以基于待建项目初步拟定的、待完善的WBS树,依次计算其与已完成的BIM数据池中的WBS树的相似度,并按照相似度计算结果的高低进行排序,优先选取库中与待建项目相似程度较高项目的WBS树进行参考。
[0213] 为了进一步的方便本发明评估方法是实施,在上述评估方法的基础上,本发明还提出了一种基于上述评估方法的项目相似度分析方法,包括以下步骤:
[0214] S1、将待建项目和项目数据池中的已建项目,作为项目集合;
[0215] S2、采用如上所述的相似度评估方法,计算项目集合中任意的两两项目之间的相似度;
[0216] S3、根据项目集合中所有的两两项目之间的相似度,构建距离矩阵;
[0217] S4、基于距离矩阵,采用MDS(multidimensional scaling)多维尺度分析法,进行降维分析。
[0218] 上述距离矩阵,可以是现有任意的距离计算方法,但如前所述,在本实施例中,采用1‑相似度的方式,表示距离。
[0219] 具体的讲,在本实施例中,基于Matlab编写程序实现,具体实现过程如下:
[0220] 一、基于待建项目和BIM数据池中的已建项目,作为项目集合,计算两两项目间的相似度;
[0221] 二、基于项目间的项目相似度值,将任意两个项目WBS数之间的距离值设置为:
[0222]
[0223] 假设待分析的项目为m个,其包含一个待建项目以及BIM数据池中所有项目,构建距离矩阵为:
[0224]
[0225] 三、构造矩阵C,C中每个元素cij与距离矩阵中每个元素dij的关系如下:
[0226]
[0227]
[0228] 四、将矩阵C,采用特征分解法,调用eig函数,获得其特征值和特征向量,然后对有特征值进行排序;然后,选取最大的3个特征值,建立对角阵,并利用所选取的3列的特征向量合成m*3的矩阵U;
[0229] 五、基于以及U计算所需的降维结果X:
[0230]
[0231] 六、最终降维结果X为m*3矩阵,X中每行的3个元素可映射为3D空间中的点,利用内置函数scatter3(x,y,z),即可将所有点呈现在三维空间中。
[0232] 如图6所示,所有项目两两间的项目相似性,被映射到三维空间中,通过点与点之间的距离以及相对位置关系,可以直观地对不同项目WBS树之间的相似度进行可视化,距离越近的点相似程度越高。
[0233] 因此,通过本发明的分析方法,可以看出拟建项目的WBS树与所采用的BIM数据池中所有项目的WBS树的整体相对关系。
[0234] 如图6(a)中所示,拟建项目的WBS树映射点位于BIM数据池中所有WBS树映射点集的边缘,两者之间的相似度普遍较低,说明当前采用的BIM数据池中的工程项目在整体上与拟建项目的差别较大,两者在某些方面存在根本性差异,可以考虑更换其它与拟建项目工程特征更相似的BIM数据池,以便获得更好的工程经验参考。
[0235] 图6(c)则为最为理想的情况,拟建项目WBS树映射点刚好位于BIM数据池中WBS树映射点集的中心位置,说明此BIM数据池中的工程项目整体上与拟建工程项目较为相似,两者WBS树的相似度普遍较高,当前的BIM数据池十分适用于为拟建项目提供工程经验参考,而与拟建项目WBS树映射点距离较近的若干映射点所对应的工程项目,可能会在多个不同的角度与层面对拟建项目具有较好的工程经验参考价值。
[0236] 如图6(b)所出现的情况介于图6(a)和图6(c)之间,拟建项目WBS树映射点被包裹于BIM数据池中WBS树映射点集的范围内,但既不在其边缘,也不在其中心位置。这种情况相对较为普遍常见,用户可根据拟建项目WBS树映射点距离BIM数据池中WBS树映射点集的中心位置的距离,以及对拟建项目与BIM数据池中项目整体相似度的要求的高低,结合实际情况,决定是否采用当前BIM数据池来为拟建项目提供工程经验参考。
[0237] 尽管这里参照本发明的实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。