欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019112549510
申请人: 优网云计算有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种云计算模式下JSON数据可视化优化方法,其特征在于,所述方法包括以下步骤:

第一步、目标领域语料库的构建:把网络语料内容作为构建知识图谱的基础,使用网络语料词条信息作为原始语料内容,为构建知识图谱而对原始网络语料内容进行筛选,比较分析网络词条的网页内容,原始语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息与词条本身无关的冗余信息;对网络词条的内容进行过滤清洗,抽取标题与有效的正文内容,过滤内容包括:对词条的网页内容执行HTML标签/文本样式符号过滤、词条模板符号及非英文字符过滤、词条编辑信息过滤、图片信息过滤、链接信息过滤、页面专有标题属性名过滤以及数值过滤;

第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构;三元组中包括了两个有现实语义关系的实体和两个实体间的关系,可以用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系;

每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系,实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;

第三步:结合Word2vec,对语料库进行指导性二次预分组,使用DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系,其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系,通过计算语料库词汇的词向量,将语料库进行二次分组及其对应的词向量集进行二次分簇,使用DBSCAN聚类算法来抽取实体关系;

第四步、构建可视化模型树(VisualModel Tree,简称VT):对可视化框架各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息;

第五步,定义元数据树MDT与MST元结构树,并将REST服务返回的JSON数据转化为MDT;

然后,通过剪枝操作对MDT进行批量数据去重,生成MDT’;在MDT’的基础上,进行降维调整进一步抽取基本数据结构生成多个MST;最后,使用基于子图同构匹配算法,将每个元结构树MST与可视化模型树VT中每个的StructModel进行匹配,返回结果是以为元素构成的集合,其中M中的是MST中与可视化结构模型StructModeli匹配的数据片段,VTypei是可视化结构模型对应的可生成图形类型的集合;

第六步、基于网络语料知识图谱的数据可视化优化匹配方法:第五步中对MDT的剪枝操作、降维调整以及原结构树MST与可视化模型树(VT)中的StructModeli的匹配过程中都是以结构匹配为基础,在此基础上,通过第三步中构建的知识图谱中查询匹配出来的数据片段是否存在实际语义关联,根据查询结果优化第五步中的匹配算法,选取有效的维度组合,以提升自动化生成图形的精确率。

2.如权利要求1所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第二步的过程为:

2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名、地名、机构名词以及其它所有名称为标识的实体,该流程通过使用一些主流的命名实体识别系统来完成,其步骤包括:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体;

2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体;

2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)和词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取。

3.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第三步的流程如下:其中,DBSCAN算法是一种基于密度的噪声应用空间聚类算法,该算法根据样本的密度分布来考查样本间的可连接性,并基于可连接的样本来扩展聚类簇,以获得最终的聚类结果;

3.1、使用Word2vec将语料库W训练成词向量簇Cube:Word2vec是一种词向量工具,它将词表示成词的特征向量,Word2vec将词转换成数值形式,使用一个N维向量来表示,将语料库W嵌入一个向量空间后得到词向量簇Cube,每一个词向量离散地分布于其中,根据词向量相互关联程度的疏密,分布状态也呈现出不同的聚集情况,通过分析词向量的聚集状态可以获得词的关联性分布状态,按照不同的亲疏关系对词向量进行分组,以获取词之间的关系,即实体间关系;

3.2、对语料库进行两次指导性预先分组:由于DBSCAN聚类算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象或关键词为聚类中心,需要对语料库进行两次指导性预先分组;

3.3、在指导性分组的基础上,通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz,对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合中,通过DBSACN聚类算法对每个语料集合自动查找聚类中心,进行分簇,同时构建三元组。

4.如权利要求3所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述

3.2的步骤如下:

3.2.1、对语料库W及其对应的词向量簇Cube进行一次分组,步骤如下:

3.2.1.1、提取语料库W中根语料标签,形成核心实体;通过爬虫获取网络语料并提取语料库中根语料标签的第一层子分类标签,并生成第一层子分类标签集合Tag={t1,t2...ti...tn},其中(1<=i<=n),共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与核心实体组合,构成若n个三元组,并加入三元组集合TP;

3.2.1.2、将分类标签集合Tag中的每个标签ti对应的词向量作为簇心,计算词向量簇Cube中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中,此时语料库W被分为了n个语料集wi(1<=i<=n),语料集合wi对应的词向量簇为cubei;

3.2.2、对每个语料集合wi二次分组及其对应的词向量簇cubei进行二次分簇,按照第一次分组的步骤,其流程如下:

3.2.2.1、对于每个语料集合wi及其对应的簇心标签ti,提取簇心标签ti为二级核心实体,通过爬虫获取网络语料并提取簇心标签的第一层子分类标签,并生成分类标签集合其中(1<=j<=mi,1<=i<=n),表示当前标签ti共包含了mi个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与二级核心实体组合,构成mi个三元组并加入三元组集合TP;

3.2.2.2、将步骤3.2.2.1中的Tagi中的每个标签对应的词向量作为簇心,计算当前词向量簇cubei中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中,此时每个语料集合wi被再次分为了mi个语料集合wij,其中(1<=j<=mi,1<=i<=n),既原始语料集合W被分为了 个语料集合wij,wij对应的词向量簇为cubeij;

其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本 与 其中i,j=1,

2,…,m,表示样本数,n表示特征数,欧式距离的计算方式为:

3.2.3、结合TF-IDF算法,查找出每个语料集合wij中的关键词,利用关键词对语料集合wij进行再次分组;

上述指导性的预先分组过程中所构建的三元组均加入三元组集合TP中,所获得的每一个词向量簇记为cubez,其对应的语料集合记为wz,其中z为自然数,表示Cube集合中簇的数量及语料集W中语料集合的数量;cubez的簇心记为Centroidz,其对应的实体对象为Entityz。

5.如权利要求3所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述

3.3的流程如下:

3.3.1、通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz;

其中,步骤3.3.1中的DBSCAN聚类算法的执行流程如下:

3.3.1.1、在cubez中选取任意未访问过的样本p(即数据点p)为圆心,划出半径为ε的圆形邻域(即ε-邻域);

3.3.1.2、若ε-邻域中的样本数不小于minPts(邻域内最小样本数),则为p创建一个新的簇C,并将领域内的样本加入集合N;

3.3.1.3、对集合N内的样本p’重复步骤3.3.1.1和3.3.1.2,每次划分ε-邻域前都对p’的从属进行判断,若p’不属于任何簇,就将p’加入簇C;

3.3.1.4、当N中所有样本都被访问完毕,在cubez中选取另一未访问过的样本,并重复步骤3.3.1.1,直至cubez中的样本均被访问;

3.3.1.5、获得的聚类结果:簇集合;

3.3.2、对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合TP;

3.3.3、若聚类结果中最小簇的样本数量大于阈值Z时,将已获得的簇集合ClusDS作为输入,调整并减小(ε,minPts)值后,再次对每个簇进行聚类,执行步骤3.3.1与3.3.2;若聚类结果中最小簇的样本数量不大于阈值Z时,则查询出每个簇中各个样本所对应的实体Entityq,将其与所在簇的簇心所对应的实体EntityQ组合为多个三元组(EntityQ,R,Entityq);

其中,在DBSCAN聚类算法中,ε-邻域和minPts的大小是由cubez中的样本数量决定的,cubez样本数量越大,(ε,minPts)值越大,前期使用较大的邻域范围与邻域内最小样本数能够限制分簇数量,若使用较小的值,产生的大量细分组会导致信息过度分散,提取的簇心对应实体作为上层实体无法展现核心内容,递归调用DBSCAN算法时,按梯度递减调整(ε,minPts)值,减小邻域范围及最小样本数,依次对上一次聚类得到的簇再次进行分簇,缩小每个簇中的样本数量;

至此语料库W中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量。

6.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第四步的过程为:

4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;

(1)、VT::=

4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;

(2)、BASICATTRIBUTE::=<subtitle><attributes></p></div><div num="48"><p class="claim-text">4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);</p></div><div num="49"><p class="claim-text">(3)、DVSCHEMA::=<General><Topology><Map><Text></p></div><div num="50"><p class="claim-text">4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;</p></div><div num="51"><p class="claim-text">(4)、DVSCHEMA::=<General><Topology><Map><Text>::<VType><StructModel>;</p></div><div num="52"><p class="claim-text">4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。</p></div><div num="53"><p class="claim-text">7.如权利要求6所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述</p></div><div num="54"><p class="claim-text">4.4中,四种基础类别的VType属性的所属图形如下:</p></div><div num="55"><p class="claim-text">4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);</p></div><div num="56"><p class="claim-text">4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);</p></div><div num="57"><p class="claim-text">4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);</p></div><div num="58"><p class="claim-text">4.4.4、Text包括词云(WorldCloudChart)。</p></div><div num="59"><p class="claim-text">8.如权利要求6所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述</p></div><div num="60"><p class="claim-text">4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义如下:</p></div><div num="61"><p class="claim-text">4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;</p></div><div num="62"><p class="claim-text">(5)、Mapping::=<XAxis,YAxis,[ZAxis]><LegendName>(6)、StructModel::=<Root::<K_V><LegendNode>></p></div><div num="63"><p class="claim-text">4.5.2、Topology类型中的图形通常用于表示拓扑关系数据,树图与面积树图可用嵌套的键值对{key:value,children:{key:value}}来表示属性结构,Mapping结构如(7);网络图可用节点集合(Nodes)和边集合(Links)来表示图结构,Mapping结构如(8),其中source表示一条边link的起始节点,target表示该条边link的指向节点;根据Mapping结构可抽象出基础StructModel的结构如(9),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含两个子节点:键值对K_V和孩子节点children,children的子结构为键值对K_V;Root2包含两个子节点:节点集合Nodes和边集合Links,节点集合的子节点为关键字key和值value,其中value可以为空,边集合的子节点为起点source和目标target;</p></div><div num="64"><p class="claim-text">(7)、Mapping::=<K_V><children::<K_V>></p></div><div num="65"><p class="claim-text">(8)、Mapping::=<Nodes::<key,[value]><Links::<source><target>>(9)、StructModel::=<Root1::<K_V><children::<K_V>>><Root2::<Nodes::<key,[value]>,<Links::<source><target>>></p></div><div num="66"><p class="claim-text">4.5.3、Map类型中的图形通常用于表示地图信息,用键值对数组[{PlaceName:value}]或三元组数组[{lng,lat,value}]来表示地图信息,此类图形的Mapping结构如(10),其中PlaceName表示地名,lng表示纬度,lat表示经度;根据Mapping结构可抽象出基础StructModel的结构如(11),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含子子节点键值对K_V;Root2包含了三个子节点:经度lat,纬度lng,数值value;</p></div><div num="67"><p class="claim-text">(10)、Mapping::=<Data1::<PlaceName><value>><Data2::<lng><lat><value>>(11)、StructModel::=<Root1::<K_V>>,<Root2::<lng>,<lat>,<value>></p></div><div num="68"><p class="claim-text">4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;</p></div><div num="69"><p class="claim-text">(12)、Mapping::=<Keyword><frequency></p></div><div num="70"><p class="claim-text">(13)、StructModel::=<Root::<K_V>>。</p></div><div num="71"><p class="claim-text">9.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第五步的过程为:</p></div><div num="72"><p class="claim-text">5.1、定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;</p></div><div num="73"><p class="claim-text">5.1.1、根节点TRoot,MDT的根节点,即MDT的起始节点,根节点内部包含以下信息:</p></div><div num="74"><p class="claim-text">5.1.1.1、星标isMark:记录JSON数据中最外层结构是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述如(14)(15),isMark的数据类型为数字NUMBER,若JSON数据中“键-值”对中的值VALUE为数组ARRAY,则isMark=1,否则isMark=0;“#”为数据类型定义符,“::=”为赋值符,[A→condition⊕<B>:<C>]表示若A符合条件condition,则该式值为B,否则该式值为C;</p></div><div num="75"><p class="claim-text">(14)、“isMark”#<NUMBER></p></div><div num="76"><p class="claim-text">(15)、“isMark”::=〖“VALUE”→ARRAY⊕<1>:<0>〗</p></div><div num="77"><p class="claim-text">5.1.1.2、元素数量arrayNum:若当前节点的isMark为1,则记录数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述如(16)(17),arrayNum属性值为数字NUMBER类型,若JSON数据中“键-值”对中的值VALUE为ARRAY,则arrayNum等于VALUE数组的长度,否则arrayNum=0;</p></div><div num="78"><p class="claim-text">(16)、“arrayNum”#<NUMBER></p></div><div num="79"><p class="claim-text">(17)、“arrayNum”::=〖“VALUE”→ARRAY⊕<ARRAY.length>:<0>〗;</p></div><div num="80"><p class="claim-text">5.1.2、索引节点INode:代表JSON数据中每一个关键字KEY,但不包括JSON数据中最内层的“键-值”对的关键字,索引节点为非根节点、非叶子节点,索引节点内部包含以下信息:</p></div><div num="81"><p class="claim-text">5.1.2.1、节点名称name:name的数据类型为字符串STRING,name属性值为JSON数据中“键-值”对中的关键字KEY;name形式化定义表述如(18)(19);</p></div><div num="82"><p class="claim-text">(18)、“name”#<STRING></p></div><div num="83"><p class="claim-text">(19)、“name”::=<KEY></p></div><div num="84"><p class="claim-text">5.1.2.2、节点值类型vType:vType是JSON数据中“键-值”对中的值VALUE的数据类型,属性值为对象OBJECT、数组ARRAY、字符串STRING、数字NUMBER、TRUE、FALSE之一;vType形式化定义表述如(20);</p></div><div num="85"><p class="claim-text">(20)、“vType”::=[OBJECT|ARRAY|STRING|NUMBER|TRUE|FALSE]</p></div><div num="86"><p class="claim-text">5.1.2.3、星标(isMark):记录JSON数据中,以当前节点名称name作为关键字的“键-值”对中的值VALUE是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述同步骤5.1.1.1中的(14)(15);</p></div><div num="87"><p class="claim-text">5.1.2.4、元素数量arrayNum:若当前节点的isMark为1,则记录“键-值”对中的值VALUE的数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述同步骤</p></div><div num="88"><p class="claim-text">5.1.1.2中的(16)(17);</p></div><div num="89"><p class="claim-text">5.1.3、数据节点DNode:代表JSON数据中最内层的“键-值”对,存储为叶子节点,数据节点的内部包括以下信息:</p></div><div num="90"><p class="claim-text">5.1.3.1、节点名称name:保存JSON数据中“键-值”对中的关键字KEY,数据类型为字符串STRING;name形式化定义表述同步骤5.1.2.1中的(18)(19);</p></div><div num="91"><p class="claim-text">5.1.3.2、节点值nValue:nValue的数据类型为STRING,属性值为JSON数据中“键-值”对中的值VALUE;nValue形式化定义表述如(21)(22);</p></div><div num="92"><p class="claim-text">(21)、“nValue”#<STRING></p></div><div num="93"><p class="claim-text">(22)、“nValue”::=<VALUE></p></div><div num="94"><p class="claim-text">5.1.3.3、节点类型type:保存JSON数据中“键-值”对中的值VALUE的数据类型,为“str”、“num”或NULL,其中“str”代表type的数据类型为STRING,“num”代表type的数据类型为NUMBER,NULL表示type的属性值为空;type形式化定义表述如(23);</p></div><div num="95"><p class="claim-text">(23)、“type”::=[“str”|“num”|NULL];</p></div><div num="96"><p class="claim-text">5.2、按照步骤5.1元结构树MDT的定义,把REST服务所返回的JSON数据,转化成元数据树MDT;</p></div><div num="97"><p class="claim-text">5.3、对MDT进行剪枝操作批量数据去重生成MDT’,保留Web服务返回JSON数据的基本的数据结构信息,缩小模型体量:</p></div><div num="98"><p class="claim-text">5.3.1、将MDT的根节点TRoot存入队列Queue;</p></div><div num="99"><p class="claim-text">5.3.2、队列Queue中的第一个节点出队列,记录为V,读取节点V的isMark属性;</p></div><div num="100"><p class="claim-text">5.3.2.1、若节点V的isMark属性值为1,则保留V的第一个子节点,剪除其余的子节点及其子节点的子树结构,跳转至步骤5.3.2.4;</p></div><div num="101"><p class="claim-text">5.3.2.2、若V节点的isMark属性值为0,则不进行任何操作,跳转至步骤5.3.2.4;</p></div><div num="102"><p class="claim-text">5.3.2.3、若V节点为DNode,则不进行任何操作,跳转至步骤5.3.3;</p></div><div num="103"><p class="claim-text">5.3.2.4、将V节点的子节点加入队列Queue,跳转至步骤5.3.3;</p></div><div num="104"><p class="claim-text">5.3.3、队列Queue为空时,停止当前遍历;当队列Queue不为空时,跳转到步骤5.3.2;</p></div><div num="105"><p class="claim-text">5.3.4、输出MDT剪枝后生成的MDT’;</p></div><div num="106"><p class="claim-text">5.4、对减枝生成的MDT’进降维调整,生成原结构树MST:由多层嵌套结构的JSON数据转换为元数据树,经过剪枝后,其中仍然包含许多对于JSON可视化的冗余索引关系,其中,越接近于DNode的INode,其节点关键字信息与DNode中保存的数据信息的相关度越高,因此,需要使用降维操作来减少冗余的索引信息,降维调整的流程如下所示:</p></div><div num="107"><p class="claim-text">5.4.1、定义元结构树MST(MetaStructure_Tree)为元数据数MDT’降维调整后的结果,包括有子树根节点STRoot(Subtree_Root),子结构(Substruct),形式化表达如式(24);其中子结构Substruct由引导节点(Guide_Node,简称GNode)和数据节点(Leaf_Node,简称LNode)两部分构成如式(25);根节点STRoot内包含的属性同MDT的TRoot;引导节点GNode内包含的属性同MDT的INode;叶子节点LNode内包含的属性同MDT的DNode;同时也用深度(level)来表示节点在树结构中的层数,STRoot默认为第一层,即level=1;</p></div><div num="108"><p class="claim-text">(24)、MST::=<Subtree_Root><Substruct></p></div><div num="109"><p class="claim-text">(25)、Substruct::=<Guide_Node><Leaf_Node></p></div><div num="110"><p class="claim-text">5.4.2、使用降维调整算法,对MDT’进行降维操作生成MST:首先根据宽度优先搜索策略在MDT’中查找星标节点,对批量数据进行定位并将其存入集合,然后按照存入集合的顺序倒序开始查找包含Dnode节点的子树结构,对MDT'进行降维,截取基础数据创建MST,其流程如下所示:</p></div><div num="111"><p class="claim-text">5.4.2.1、将MDT'作为降维调整算法的输入数据;</p></div><div num="112"><p class="claim-text">5.4.2.2、对MDT'进行宽度优先搜索,查找星标节点N,并按序将它们存入集合</p></div><div num="113"><p class="claim-text">5.4.2.3、按照节点的存入顺序,在集合S中按倒序遍历节点(集合S中的节点用n表示),查找是否有其它节点与节点n有相同的父节点;</p></div><div num="114"><p class="claim-text">5.4.2.3.1、若不存在这样的节点,则在MDT中,将该节点n及其子结构存储为一颗子树,如式(26),将n作为子树的根节点,将n的子结构作为根节点的子结构,再创建一个只有STRoot的MST,将子树作为STRoot的子结构存入MST,如式(27),并将对应的子树从MDT'中剪除;</p></div><div num="115"><p class="claim-text">(26)、Subtree(n)::=<subtree_root→n><Substruct→n.Substruct>(27)、MST::=<Subtree_root><Substruct→Subtree(n)></p></div><div num="116"><p class="claim-text">5.4.2.3.2、若存在这样的节点,则将这些拥有同一父节点的星标节点(node*)存入集合Q,在集合Q中查找是否存在两个星标节点(node*)符合VT中NetworkChart的结构要求,</p></div><div num="117"><p class="claim-text">5.4.2.3.2.1、若存在,则将这两个节点的父节点及其父节点的子结构一并存储为一个子树,如式(28),并将子树存入一个空的MST,以子树的根节点为MST的STRoot,如式(29),再将对应的子树从MDT'中剪除;</p></div><div num="118"><p class="claim-text">(28)、Subtree(n)::=<subtree_root→n.parent><Substruct→n.parent.Substruct>(29)、MST::=<Substruct_Root→n.parent><Substruct→Subtree(n).Substruct></p></div><div num="119"><p class="claim-text">5.4.2.3.2.2、若不存在,则Q中的每个星标节点(node*),按照步骤5.4.2.3.1行操作;</p></div><div num="120"><p class="claim-text">5.4.2.4、对生成的MST进行遍历,将isMark=1且只有一个子节点的INode判断为冗余节点,定义如式(30),将这个冗余节点从MST中移除并由其子结构替代它在MST中的位置;</p></div><div num="121"><p class="claim-text">(30)、RNode::=(RNode∈INode)∧(INode::isMark==0)∧(INode::subArray.length==1)</p></div><div num="122"><p class="claim-text">5.4.2.5、输出所有生成的元结构树MST</p></div><div num="123"><p class="claim-text">5.5、基于子图同构的匹配(Match)算法,把步骤5.4中生成的每个MST与可视化模型树(VT)中的StructModeli进行依次比较,查询匹配的数据片段,在匹配过程中,预设了判断条件来判定两个节点的一致性:Fattr用于判断两个节点的isMark、type、arrayNum属性是否一致;Frela用于判断两个节点与各自的父子节点的结构是否一致,基于子图同构匹配(Match)方法的流程如下所示:</p></div><div num="124"><p class="claim-text">5.5.1、初始化第一个匹配目标节点s为StructModeli的根节点;</p></div><div num="125"><p class="claim-text">5.5.2、在当前MST中查找与s符合Fattr条件的节点,将存入集合P;</p></div><div num="126"><p class="claim-text">5.5.3、将集合P中的节点依次与s进行Frela条件判断;若节点p与s的结构一致,将p加入集合M;若结构不一致,则继续在P中查找比较,直至P遍历完;</p></div><div num="127"><p class="claim-text">5.5.4、比较集合M构成的数据结构片段与StructModeli的结构是否一致;若两者结构不一致,则将s的子节点设为下一个匹配目标节点,清空集合P,并重复步骤5.5.2)至步骤</p></div><div num="128"><p class="claim-text">5.5.4);若两者结构一致则输出集合M与StructModeli所对应的VTypei;</p></div><div num="129"><p class="claim-text">其中,当MST与VT中StructModeli中成功匹配时,将会返回m个匹配结果<M,VTypei>,每个匹配结果包含当前MST中与图形模型StructModeli匹配的数据结构片段集合M与该图形模型StructModeli对应可生成的图形类型的集合VTypei。</p></div><div num="130"><p class="claim-text">10.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第六步的步骤为:</p></div><div num="131"><p class="claim-text">6.1、当MST与VT中的图形模型成功匹配时,每个匹配成功的结果为<M,VTypei>,其中集合M中包含m个符合要求的数据片段(子树结构),每个数据片段中有两个节点分别对应于StructModel子结构中的LegendNode节点和K_V节点,即对应于可视化图形中的一组候选坐标轴/图例的属性组合结果;</p></div><div num="132"><p class="claim-text">6.2、结合构建的网络语料知识图谱吗,根据m个符合条件的数据片段中的属性组合,对匹配结果优化,过程如下:</p></div><div num="133"><p class="claim-text">6.2.1、步骤6.1中每个匹配数据片段中的属性组合以二元组的形式表示:P=(L::</p></div><div num="134"><p class="claim-text">name,A::name),将每个匹配结果Pi=(Li::name,Ai::name),转化为三元组形式Gi=(Li::name,R,Ai::name)放入集合S={G1,G2,…,Gm};</p></div><div num="135"><p class="claim-text">6.2.2、依次将集合S里Gi的三个参数与知识图谱的三元组结构进行如下映射F(Li::</p></div><div num="136"><p class="claim-text">name→head,R→relation,Ai::name→tail)映射成三元组(head,relation,tail),在构建语料知识图谱中匹配是否存在当前三元组(head,relation,tail),result为匹配结果为True或False,分别表示为1和0,首先在语料知识图谱中匹配头实体节点head和尾实体节点tail,然后匹配头实体节点和尾实体节点之间的关系relation,当且仅当头实体head,尾实体tail及关系relation都匹配成功,result为1;</p></div><div num="137"><p class="claim-text">6.2.3、集合S中的对象查询完成后,返回集合Q={(Gi,resulti)},并将Q用于判断当前符合条件的二元组是否存在语义关联,作为候选坐标轴/图例的属性组合匹配结果的判定,因此,只有结构匹配并且resulti为1时,才判定匹配成功,由此提高数据属性匹配的准确率,减少无实际意义图像的生成率。</p></div></span></div></div><div tabIndex="0" role="presentation" style="width:0;height:0;overflow:hidden;position:absolute;"></div></div><div role="tabpanel" aria-hidden="true" class="ant-tabs-tabpane ant-tabs-tabpane-inactive"></div><div role="tabpanel" aria-hidden="true" class="ant-tabs-tabpane ant-tabs-tabpane-inactive"></div><div role="tabpanel" aria-hidden="true" class="ant-tabs-tabpane ant-tabs-tabpane-inactive"></div><div role="tabpanel" aria-hidden="true" class="ant-tabs-tabpane ant-tabs-tabpane-inactive"></div></div><div tabIndex="0" role="presentation" style="width:0;height:0;overflow:hidden;position:absolute;"></div></div></div></div> <!----> <div class="right_content"><div class="right_content" style="width:;" data-v-0d880f8f><!----> <!----> <div class="command_box fourth" data-v-0d880f8f><div class="tit" data-v-0d880f8f><span data-v-0d880f8f><img src="/_nuxt/img/important.ff8246f.svg" alt data-v-0d880f8f></span> <span class="desc" data-v-0d880f8f>推荐专利</span></div> <a target="_blank" title="基于云计算和医疗大数据的任务处理优化系统" href="https://www.iprtt.com/sell/detail/2020105566251" class="items clearfix" data-v-0d880f8f><div title="基于云计算和医疗大数据的任务处理优化系统" class="title hand" data-v-0d880f8f>基于云计算和医疗大数据的任务处理优化系统</div> <div class="bottom" data-v-0d880f8f><div class="tips typeName invente" data-v-0d880f8f>发明专利</div> <div class="price1" data-v-0d880f8f><span data-v-0d880f8f>面议</span></div></div></a><a target="_blank" title="基于深度学习的计算机云数据优化方法及系统" href="https://www.iprtt.com/sell/detail/2024101985979" class="items clearfix" data-v-0d880f8f><div title="基于深度学习的计算机云数据优化方法及系统" class="title hand" data-v-0d880f8f>基于深度学习的计算机云数据优化方法及系统</div> <div class="bottom" data-v-0d880f8f><div class="tips typeName invente" data-v-0d880f8f>发明专利</div> <div class="price1" data-v-0d880f8f><span data-v-0d880f8f>面议</span></div></div></a><a target="_blank" title="一种基于云计算和大数据的任务处理优化系统" href="https://www.iprtt.com/sell/detail/2024108807046" class="items clearfix" data-v-0d880f8f><div title="一种基于云计算和大数据的任务处理优化系统" class="title hand" data-v-0d880f8f>一种基于云计算和大数据的任务处理优化系统</div> <div class="bottom" data-v-0d880f8f><div class="tips typeName invente" data-v-0d880f8f>发明专利</div> <div class="price1" data-v-0d880f8f><span data-v-0d880f8f>¥27000</span></div></div></a><a target="_blank" title="一种云计算数据中心的数据处理系统" href="https://www.iprtt.com/sell/detail/2022106609003" class="items clearfix" data-v-0d880f8f><div title="一种云计算数据中心的数据处理系统" class="title hand" data-v-0d880f8f>一种云计算数据中心的数据处理系统</div> <div class="bottom" data-v-0d880f8f><div class="tips typeName invente" data-v-0d880f8f>发明专利</div> <div class="price1" data-v-0d880f8f><span data-v-0d880f8f>¥59800</span></div></div></a></div> <div class="ques_box second img" data-v-0d880f8f><div class="btn" data-v-0d880f8f>我要求购</div></div> <div class="ques_box third" data-v-0d880f8f><div class="tit" data-v-0d880f8f>我不想找了,帮我找吧</div> <div class="form_box" data-v-0d880f8f><form class="ant-form ant-form-horizontal" data-v-0d880f8f><div class="ant-row ant-form-item" data-v-0d880f8f><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><textarea placeholder="请输入委托购买描述,100字以内" row="4" data-__meta="[object Object]" data-__field="[object Object]" id="buy_form_describe" class="ant-input" data-v-0d880f8f></textarea></span><!----></div></div></div> <div class="ant-row ant-form-item" data-v-0d880f8f><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><input placeholder="请输入联系电话" type="text" data-__meta="[object Object]" data-__field="[object Object]" id="buy_form_contact" class="ant-input" data-v-0d880f8f></span><!----></div></div></div> <div class="ant-row ant-form-item" data-v-0d880f8f><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><input placeholder="请输入姓名" type="text" data-__meta="[object Object]" data-__field="[object Object]" id="buy_form_name" class="ant-input" data-v-0d880f8f></span><!----></div></div></div> <div class="ant-row ant-form-item" data-v-0d880f8f><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><button type="button" class="box_btns ant-btn ant-btn-primary" data-v-0d880f8f><span>提 交</span></button></span><!----></div></div></div></form></div></div> <div class="ques_box first" data-v-0d880f8f><div class="tit" data-v-0d880f8f>您有专利需要变现?</div> <div class="btn" data-v-0d880f8f>我要出售</div> <div class="desc" data-v-0d880f8f>智能匹配需求,快速出售</div></div> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></div></div></div><div class="addPool_dialog"><!----> <!----></div></div></div></div> <div id="footer"><div class="mwidth"><div class="foottxt"><div class="footlogo fl"><a href="/" class="nuxt-link-active"><img src="/_nuxt/img/blogo.9684e5c.svg" alt="知嘟嘟" title="知嘟嘟专利交易平台" style="width:200px;height:64px;margin-top:0px;"></a></div> <div class="fr footmain"><div class="footnav1"><h3><a href="https://www.iprtt.com/" target="_blank">知嘟嘟</a></h3> <ul><li><a href="/sell/p1">专利商城</a></li> <li><a href="/purchase">专利求购</a></li></ul></div> <div class="footnav1"><h3>友情链接</h3> <ul><li><a target="_blank" href="https://www.iprdb.com">知嘟嘟专利检索</a></li> <li><a target="_blank" href="https://www.cnipa.gov.cn/">国家知识产权局</a></li></ul></div> <div class="footnav1"><h3>关于我们</h3> <ul><li><a href="/agreement/register">注册协议</a></li> <li><a href="/map">网站地图</a></li> <li><a href="/help">帮助中心</a></li> <li><a href="/about">关于我们</a></li></ul></div> <div class="footnav1 last1"><h3>联系我们</h3> <ul><li>13095918853</li> <li><div>地址:上海市松江区</div> <div>新桥镇莘砖公路518号5幢3层</div></li></ul></div> <div class="footnav1 last"><div class="qrcode"></div></div></div> <div class="clear"></div></div> <!----></div> <div class="copyright">Copyright © 2019 上海吉码数字技术有限公司 <a href="https://beian.miit.gov.cn/" target="_blank">备案号: 沪ICP备20016256号-1</a> <a href="https://tsm.miit.gov.cn/dxxzsp/" target="_blank">增值电信业务经营许可证:沪B2-20201290</a></div></div></div></div></div><script>window.__NUXT__=(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){m[0]={applicationNumber:"2020105566251",attachedImg:"https:\u002F\u002Fwww.iprdb.com\u002Fviewimg\u002FfnMSDw0PDRIMEgwMDBJUUFxaWE4SDw0PDQwNCAgLCw8IE1dNWg==",applicant:"孔德贵",patentStatusId:c,patentType:c,states:c,title:"基于云计算和医疗大数据的任务处理优化系统"};m[1]={applicationNumber:"2024101985979",attachedImg:"https:\u002F\u002Fwww.iprdb.com\u002Fviewimg\u002FfnMSDw0PCRIMEg4EElRQXFpYThIPDQ8JDA0MBAUIBAoTV01a",applicant:"北京星际浩瀚科技有限公司",patentStatusId:e,patentType:c,states:c,title:"基于深度学习的计算机云数据优化方法及系统"};m[2]={applicationNumber:"2024108807046",attachedImg:"https:\u002F\u002Fwww.iprdb.com\u002Fviewimg\u002FfnMSDw0PCRIMEgwKCxJUUFxaWE4SDw0PCQwNBQUNCg0JE1dNWg==",applicant:"山东有座信息科技有限公司",patentStatusId:c,patentType:c,states:c,title:"一种基于云计算和大数据的任务处理优化系统",price:27000};m[3]={applicationNumber:"2022106609003",attachedImg:"https:\u002F\u002Fwww.iprdb.com\u002Fviewimg\u002FfnMSDw0PDxIMEgwODxJUUFxaWE4SDw0PDwwNCwsNBA0NE1dNWg==",applicant:"鄂尔多斯市云泰互联科技有限公司",patentStatusId:e,patentType:c,states:c,title:"一种云计算数据中心的数据处理系统",price:59800};return {layout:"default",data:[{info:{applicationNumber:"2019112549510",attachedImg:"https:\u002F\u002Fwww.iprdb.com\u002Fviewimg\u002FfnMSDw0MBBIMEg8IDRJUUFxaWE4SDw0MBAwMDwgJBAgME1dNWg==",domain:"计算;推算;计数",applicantType:"企业",applicant:"优网云计算有限公司",agents:[{annualSales:d,isBroker:b,isCompany:b,isMember:b,statusDes:g,id:426449810251840,phone:"13336804447",code:1038,fullName:"133******4447",kind:h,levelExpired:"2025-01-15",headURL:i,weChatURL:"https:\u002F\u002Fimg.iprdb.cn\u002Fiprtt\u002Fuser\u002Fwechat\u002Fwechat_13336804447.jpg",score:j,workYear:e,status:k,userID:426441748206663,edges:{}},{annualSales:d,isBroker:b,isCompany:b,isMember:f,statusDes:g,id:441504353011779,phone:"13251975360",code:2188,fullName:"132******5360",kind:h,level:c,levelExpired:l,headURL:i,weChatURL:"https:\u002F\u002Fimg.iprdb.cn\u002Fiprtt\u002Fuser\u002Fwechat\u002Fwechat_13251975360.jpg",score:j,workYear:e,status:k,userID:437879238457408,edges:{}},{annualSales:d,isBroker:b,isCompany:b,isMember:f,statusDes:g,id:441504353011784,phone:"13251973082",code:2193,fullName:"132******3082",kind:h,level:c,levelExpired:l,headURL:i,weChatURL:"https:\u002F\u002Fimg.iprdb.cn\u002Fiprtt\u002Fuser\u002Fwechat\u002Fwechat_13251973082.jpg",score:j,workYear:e,status:k,edges:{}}],patentStatusId:e,patentType:c,states:c,summary:"一种云计算模式下JSON数据可视化优化方法,包括以下步骤:第一步、目标领域语料库的构;第二步、面向语料库的实体抽取;第三步:结合Word2vec,对语料库进行指导性二次预分组,使用DBSCAN聚类算法构建知识图谱;第四步、构建可视化模型树VT;第五步,定义元数据树MDT与MST元结构树,并将REST服务返回的JSON数据转化为MDT;第六步、第五步中对MDT的剪枝操作、降维调整以及原结构树MST与可视化模型树中的StructModeli的匹配过程中都是以结构匹配为基础,通过第三步中构建的知识图谱中查询匹配出来的数据片段是否存在实际语义关联,根据查询结果优化匹配算法,选取有效的维度组合,以提升自动化生成图形的精确率。",title:"一种云计算模式下JSON数据可视化优化方法",updatedAt:"2024-02-23",ipc:"G06F16\u002F22",claimsHtml:"\u003Cdiv num=\"1\"\u003E\u003Cp class=\"claim-text\"\u003E1.一种云计算模式下JSON数据可视化优化方法,其特征在于,所述方法包括以下步骤:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"2\"\u003E\u003Cp class=\"claim-text\"\u003E第一步、目标领域语料库的构建:把网络语料内容作为构建知识图谱的基础,使用网络语料词条信息作为原始语料内容,为构建知识图谱而对原始网络语料内容进行筛选,比较分析网络词条的网页内容,原始语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息与词条本身无关的冗余信息;对网络词条的内容进行过滤清洗,抽取标题与有效的正文内容,过滤内容包括:对词条的网页内容执行HTML标签\u002F文本样式符号过滤、词条模板符号及非英文字符过滤、词条编辑信息过滤、图片信息过滤、链接信息过滤、页面专有标题属性名过滤以及数值过滤;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"3\"\u003E\u003Cp class=\"claim-text\"\u003E第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构;三元组中包括了两个有现实语义关系的实体和两个实体间的关系,可以用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"4\"\u003E\u003Cp class=\"claim-text\"\u003E每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系,实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"5\"\u003E\u003Cp class=\"claim-text\"\u003E第三步:结合Word2vec,对语料库进行指导性二次预分组,使用DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系,其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系,通过计算语料库词汇的词向量,将语料库进行二次分组及其对应的词向量集进行二次分簇,使用DBSCAN聚类算法来抽取实体关系;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"6\"\u003E\u003Cp class=\"claim-text\"\u003E第四步、构建可视化模型树(VisualModel Tree,简称VT):对可视化框架各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"7\"\u003E\u003Cp class=\"claim-text\"\u003E第五步,定义元数据树MDT与MST元结构树,并将REST服务返回的JSON数据转化为MDT;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"8\"\u003E\u003Cp class=\"claim-text\"\u003E然后,通过剪枝操作对MDT进行批量数据去重,生成MDT’;在MDT’的基础上,进行降维调整进一步抽取基本数据结构生成多个MST;最后,使用基于子图同构匹配算法,将每个元结构树MST与可视化模型树VT中每个的StructModel进行匹配,返回结果是以\u003CM,VTypei\u003E为元素构成的集合,其中M中的是MST中与可视化结构模型StructModeli匹配的数据片段,VTypei是可视化结构模型对应的可生成图形类型的集合;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"9\"\u003E\u003Cp class=\"claim-text\"\u003E第六步、基于网络语料知识图谱的数据可视化优化匹配方法:第五步中对MDT的剪枝操作、降维调整以及原结构树MST与可视化模型树(VT)中的StructModeli的匹配过程中都是以结构匹配为基础,在此基础上,通过第三步中构建的知识图谱中查询匹配出来的数据片段是否存在实际语义关联,根据查询结果优化第五步中的匹配算法,选取有效的维度组合,以提升自动化生成图形的精确率。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"10\"\u003E\u003Cp class=\"claim-text\"\u003E2.如权利要求1所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第二步的过程为:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"11\"\u003E\u003Cp class=\"claim-text\"\u003E2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名、地名、机构名词以及其它所有名称为标识的实体,该流程通过使用一些主流的命名实体识别系统来完成,其步骤包括:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"12\"\u003E\u003Cp class=\"claim-text\"\u003E2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"13\"\u003E\u003Cp class=\"claim-text\"\u003E2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)和词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"14\"\u003E\u003Cp class=\"claim-text\"\u003E3.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第三步的流程如下:其中,DBSCAN算法是一种基于密度的噪声应用空间聚类算法,该算法根据样本的密度分布来考查样本间的可连接性,并基于可连接的样本来扩展聚类簇,以获得最终的聚类结果;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"15\"\u003E\u003Cp class=\"claim-text\"\u003E3.1、使用Word2vec将语料库W训练成词向量簇Cube:Word2vec是一种词向量工具,它将词表示成词的特征向量,Word2vec将词转换成数值形式,使用一个N维向量来表示,将语料库W嵌入一个向量空间后得到词向量簇Cube,每一个词向量离散地分布于其中,根据词向量相互关联程度的疏密,分布状态也呈现出不同的聚集情况,通过分析词向量的聚集状态可以获得词的关联性分布状态,按照不同的亲疏关系对词向量进行分组,以获取词之间的关系,即实体间关系;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"16\"\u003E\u003Cp class=\"claim-text\"\u003E3.2、对语料库进行两次指导性预先分组:由于DBSCAN聚类算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象或关键词为聚类中心,需要对语料库进行两次指导性预先分组;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"17\"\u003E\u003Cp class=\"claim-text\"\u003E3.3、在指导性分组的基础上,通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz,对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合中,通过DBSACN聚类算法对每个语料集合自动查找聚类中心,进行分簇,同时构建三元组。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"18\"\u003E\u003Cp class=\"claim-text\"\u003E4.如权利要求3所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"19\"\u003E\u003Cp class=\"claim-text\"\u003E3.2的步骤如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"20\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.1、对语料库W及其对应的词向量簇Cube进行一次分组,步骤如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"21\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.1.1、提取语料库W中根语料标签,形成核心实体;通过爬虫获取网络语料并提取语料库中根语料标签的第一层子分类标签,并生成第一层子分类标签集合Tag={t1,t2...ti...tn},其中(1<=i<=n),共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与核心实体组合,构成若n个三元组,并加入三元组集合TP;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"22\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.1.2、将分类标签集合Tag中的每个标签ti对应的词向量作为簇心,计算词向量簇Cube中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中,此时语料库W被分为了n个语料集wi(1<=i<=n),语料集合wi对应的词向量簇为cubei;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"23\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.2、对每个语料集合wi二次分组及其对应的词向量簇cubei进行二次分簇,按照第一次分组的步骤,其流程如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"24\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.2.1、对于每个语料集合wi及其对应的簇心标签ti,提取簇心标签ti为二级核心实体,通过爬虫获取网络语料并提取簇心标签的第一层子分类标签,并生成分类标签集合其中(1<=j<=mi,1<=i<=n),表示当前标签ti共包含了mi个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与二级核心实体组合,构成mi个三元组并加入三元组集合TP;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"25\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.2.2、将步骤3.2.2.1中的Tagi中的每个标签对应的词向量作为簇心,计算当前词向量簇cubei中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中,此时每个语料集合wi被再次分为了mi个语料集合wij,其中(1<=j<=mi,1<=i<=n),既原始语料集合W被分为了 个语料集合wij,wij对应的词向量簇为cubeij;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"26\"\u003E\u003Cp class=\"claim-text\"\u003E其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本 与 其中i,j=1,\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"27\"\u003E\u003Cp class=\"claim-text\"\u003E2,…,m,表示样本数,n表示特征数,欧式距离的计算方式为:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"28\"\u003E\u003Cp class=\"claim-text\"\u003E3.2.3、结合TF-IDF算法,查找出每个语料集合wij中的关键词,利用关键词对语料集合wij进行再次分组;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"29\"\u003E\u003Cp class=\"claim-text\"\u003E上述指导性的预先分组过程中所构建的三元组均加入三元组集合TP中,所获得的每一个词向量簇记为cubez,其对应的语料集合记为wz,其中z为自然数,表示Cube集合中簇的数量及语料集W中语料集合的数量;cubez的簇心记为Centroidz,其对应的实体对象为Entityz。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"30\"\u003E\u003Cp class=\"claim-text\"\u003E5.如权利要求3所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"31\"\u003E\u003Cp class=\"claim-text\"\u003E3.3的流程如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"32\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1、通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"33\"\u003E\u003Cp class=\"claim-text\"\u003E其中,步骤3.3.1中的DBSCAN聚类算法的执行流程如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"34\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1.1、在cubez中选取任意未访问过的样本p(即数据点p)为圆心,划出半径为ε的圆形邻域(即ε-邻域);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"35\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1.2、若ε-邻域中的样本数不小于minPts(邻域内最小样本数),则为p创建一个新的簇C,并将领域内的样本加入集合N;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"36\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1.3、对集合N内的样本p’重复步骤3.3.1.1和3.3.1.2,每次划分ε-邻域前都对p’的从属进行判断,若p’不属于任何簇,就将p’加入簇C;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"37\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1.4、当N中所有样本都被访问完毕,在cubez中选取另一未访问过的样本,并重复步骤3.3.1.1,直至cubez中的样本均被访问;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"38\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.1.5、获得的聚类结果:簇集合;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"39\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.2、对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合TP;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"40\"\u003E\u003Cp class=\"claim-text\"\u003E3.3.3、若聚类结果中最小簇的样本数量大于阈值Z时,将已获得的簇集合ClusDS作为输入,调整并减小(ε,minPts)值后,再次对每个簇进行聚类,执行步骤3.3.1与3.3.2;若聚类结果中最小簇的样本数量不大于阈值Z时,则查询出每个簇中各个样本所对应的实体Entityq,将其与所在簇的簇心所对应的实体EntityQ组合为多个三元组(EntityQ,R,Entityq);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"41\"\u003E\u003Cp class=\"claim-text\"\u003E其中,在DBSCAN聚类算法中,ε-邻域和minPts的大小是由cubez中的样本数量决定的,cubez样本数量越大,(ε,minPts)值越大,前期使用较大的邻域范围与邻域内最小样本数能够限制分簇数量,若使用较小的值,产生的大量细分组会导致信息过度分散,提取的簇心对应实体作为上层实体无法展现核心内容,递归调用DBSCAN算法时,按梯度递减调整(ε,minPts)值,减小邻域范围及最小样本数,依次对上一次聚类得到的簇再次进行分簇,缩小每个簇中的样本数量;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"42\"\u003E\u003Cp class=\"claim-text\"\u003E至此语料库W中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"43\"\u003E\u003Cp class=\"claim-text\"\u003E6.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第四步的过程为:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"44\"\u003E\u003Cp class=\"claim-text\"\u003E4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"45\"\u003E\u003Cp class=\"claim-text\"\u003E(1)、VT::=\u003CBASICATTRIBUTE\u003E\u003CDVSCHEMA\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"46\"\u003E\u003Cp class=\"claim-text\"\u003E4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"47\"\u003E\u003Cp class=\"claim-text\"\u003E(2)、BASICATTRIBUTE::=\u003Ctitle\u003E\u003Csubtitle\u003E\u003Cattributes\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"48\"\u003E\u003Cp class=\"claim-text\"\u003E4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"49\"\u003E\u003Cp class=\"claim-text\"\u003E(3)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"50\"\u003E\u003Cp class=\"claim-text\"\u003E4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"51\"\u003E\u003Cp class=\"claim-text\"\u003E(4)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E::\u003CVType\u003E\u003CStructModel\u003E;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"52\"\u003E\u003Cp class=\"claim-text\"\u003E4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"53\"\u003E\u003Cp class=\"claim-text\"\u003E7.如权利要求6所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"54\"\u003E\u003Cp class=\"claim-text\"\u003E4.4中,四种基础类别的VType属性的所属图形如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"55\"\u003E\u003Cp class=\"claim-text\"\u003E4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"56\"\u003E\u003Cp class=\"claim-text\"\u003E4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"57\"\u003E\u003Cp class=\"claim-text\"\u003E4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"58\"\u003E\u003Cp class=\"claim-text\"\u003E4.4.4、Text包括词云(WorldCloudChart)。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"59\"\u003E\u003Cp class=\"claim-text\"\u003E8.如权利要求6所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"60\"\u003E\u003Cp class=\"claim-text\"\u003E4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"61\"\u003E\u003Cp class=\"claim-text\"\u003E4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"62\"\u003E\u003Cp class=\"claim-text\"\u003E(5)、Mapping::=\u003CXAxis,YAxis,[ZAxis]\u003E\u003CLegendName\u003E(6)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003CLegendNode\u003E\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"63\"\u003E\u003Cp class=\"claim-text\"\u003E4.5.2、Topology类型中的图形通常用于表示拓扑关系数据,树图与面积树图可用嵌套的键值对{key:value,children:{key:value}}来表示属性结构,Mapping结构如(7);网络图可用节点集合(Nodes)和边集合(Links)来表示图结构,Mapping结构如(8),其中source表示一条边link的起始节点,target表示该条边link的指向节点;根据Mapping结构可抽象出基础StructModel的结构如(9),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含两个子节点:键值对K_V和孩子节点children,children的子结构为键值对K_V;Root2包含两个子节点:节点集合Nodes和边集合Links,节点集合的子节点为关键字key和值value,其中value可以为空,边集合的子节点为起点source和目标target;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"64\"\u003E\u003Cp class=\"claim-text\"\u003E(7)、Mapping::=\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"65\"\u003E\u003Cp class=\"claim-text\"\u003E(8)、Mapping::=\u003CNodes::\u003Ckey,[value]\u003E\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E(9)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003E\u003CRoot2::\u003CNodes::\u003Ckey,[value]\u003E,\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"66\"\u003E\u003Cp class=\"claim-text\"\u003E4.5.3、Map类型中的图形通常用于表示地图信息,用键值对数组[{PlaceName:value}]或三元组数组[{lng,lat,value}]来表示地图信息,此类图形的Mapping结构如(10),其中PlaceName表示地名,lng表示纬度,lat表示经度;根据Mapping结构可抽象出基础StructModel的结构如(11),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含子子节点键值对K_V;Root2包含了三个子节点:经度lat,纬度lng,数值value;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"67\"\u003E\u003Cp class=\"claim-text\"\u003E(10)、Mapping::=\u003CData1::\u003CPlaceName\u003E\u003Cvalue\u003E\u003E\u003CData2::\u003Clng\u003E\u003Clat\u003E\u003Cvalue\u003E\u003E(11)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003E,\u003CRoot2::\u003Clng\u003E,\u003Clat\u003E,\u003Cvalue\u003E\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"68\"\u003E\u003Cp class=\"claim-text\"\u003E4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"69\"\u003E\u003Cp class=\"claim-text\"\u003E(12)、Mapping::=\u003CKeyword\u003E\u003Cfrequency\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"70\"\u003E\u003Cp class=\"claim-text\"\u003E(13)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003E。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"71\"\u003E\u003Cp class=\"claim-text\"\u003E9.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第五步的过程为:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"72\"\u003E\u003Cp class=\"claim-text\"\u003E5.1、定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"73\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.1、根节点TRoot,MDT的根节点,即MDT的起始节点,根节点内部包含以下信息:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"74\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.1.1、星标isMark:记录JSON数据中最外层结构是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述如(14)(15),isMark的数据类型为数字NUMBER,若JSON数据中“键-值”对中的值VALUE为数组ARRAY,则isMark=1,否则isMark=0;“#”为数据类型定义符,“::=”为赋值符,[A→condition⊕\u003CB\u003E:\u003CC\u003E]表示若A符合条件condition,则该式值为B,否则该式值为C;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"75\"\u003E\u003Cp class=\"claim-text\"\u003E(14)、“isMark”#\u003CNUMBER\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"76\"\u003E\u003Cp class=\"claim-text\"\u003E(15)、“isMark”::=〖“VALUE”→ARRAY⊕\u003C1\u003E:\u003C0\u003E〗\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"77\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.1.2、元素数量arrayNum:若当前节点的isMark为1,则记录数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述如(16)(17),arrayNum属性值为数字NUMBER类型,若JSON数据中“键-值”对中的值VALUE为ARRAY,则arrayNum等于VALUE数组的长度,否则arrayNum=0;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"78\"\u003E\u003Cp class=\"claim-text\"\u003E(16)、“arrayNum”#\u003CNUMBER\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"79\"\u003E\u003Cp class=\"claim-text\"\u003E(17)、“arrayNum”::=〖“VALUE”→ARRAY⊕\u003CARRAY.length\u003E:\u003C0\u003E〗;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"80\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.2、索引节点INode:代表JSON数据中每一个关键字KEY,但不包括JSON数据中最内层的“键-值”对的关键字,索引节点为非根节点、非叶子节点,索引节点内部包含以下信息:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"81\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.2.1、节点名称name:name的数据类型为字符串STRING,name属性值为JSON数据中“键-值”对中的关键字KEY;name形式化定义表述如(18)(19);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"82\"\u003E\u003Cp class=\"claim-text\"\u003E(18)、“name”#\u003CSTRING\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"83\"\u003E\u003Cp class=\"claim-text\"\u003E(19)、“name”::=\u003CKEY\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"84\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.2.2、节点值类型vType:vType是JSON数据中“键-值”对中的值VALUE的数据类型,属性值为对象OBJECT、数组ARRAY、字符串STRING、数字NUMBER、TRUE、FALSE之一;vType形式化定义表述如(20);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"85\"\u003E\u003Cp class=\"claim-text\"\u003E(20)、“vType”::=[OBJECT|ARRAY|STRING|NUMBER|TRUE|FALSE]\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"86\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.2.3、星标(isMark):记录JSON数据中,以当前节点名称name作为关键字的“键-值”对中的值VALUE是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述同步骤5.1.1.1中的(14)(15);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"87\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.2.4、元素数量arrayNum:若当前节点的isMark为1,则记录“键-值”对中的值VALUE的数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述同步骤\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"88\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.1.2中的(16)(17);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"89\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.3、数据节点DNode:代表JSON数据中最内层的“键-值”对,存储为叶子节点,数据节点的内部包括以下信息:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"90\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.3.1、节点名称name:保存JSON数据中“键-值”对中的关键字KEY,数据类型为字符串STRING;name形式化定义表述同步骤5.1.2.1中的(18)(19);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"91\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.3.2、节点值nValue:nValue的数据类型为STRING,属性值为JSON数据中“键-值”对中的值VALUE;nValue形式化定义表述如(21)(22);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"92\"\u003E\u003Cp class=\"claim-text\"\u003E(21)、“nValue”#\u003CSTRING\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"93\"\u003E\u003Cp class=\"claim-text\"\u003E(22)、“nValue”::=\u003CVALUE\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"94\"\u003E\u003Cp class=\"claim-text\"\u003E5.1.3.3、节点类型type:保存JSON数据中“键-值”对中的值VALUE的数据类型,为“str”、“num”或NULL,其中“str”代表type的数据类型为STRING,“num”代表type的数据类型为NUMBER,NULL表示type的属性值为空;type形式化定义表述如(23);\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"95\"\u003E\u003Cp class=\"claim-text\"\u003E(23)、“type”::=[“str”|“num”|NULL];\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"96\"\u003E\u003Cp class=\"claim-text\"\u003E5.2、按照步骤5.1元结构树MDT的定义,把REST服务所返回的JSON数据,转化成元数据树MDT;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"97\"\u003E\u003Cp class=\"claim-text\"\u003E5.3、对MDT进行剪枝操作批量数据去重生成MDT’,保留Web服务返回JSON数据的基本的数据结构信息,缩小模型体量:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"98\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.1、将MDT的根节点TRoot存入队列Queue;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"99\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.2、队列Queue中的第一个节点出队列,记录为V,读取节点V的isMark属性;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"100\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.2.1、若节点V的isMark属性值为1,则保留V的第一个子节点,剪除其余的子节点及其子节点的子树结构,跳转至步骤5.3.2.4;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"101\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.2.2、若V节点的isMark属性值为0,则不进行任何操作,跳转至步骤5.3.2.4;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"102\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.2.3、若V节点为DNode,则不进行任何操作,跳转至步骤5.3.3;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"103\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.2.4、将V节点的子节点加入队列Queue,跳转至步骤5.3.3;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"104\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.3、队列Queue为空时,停止当前遍历;当队列Queue不为空时,跳转到步骤5.3.2;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"105\"\u003E\u003Cp class=\"claim-text\"\u003E5.3.4、输出MDT剪枝后生成的MDT’;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"106\"\u003E\u003Cp class=\"claim-text\"\u003E5.4、对减枝生成的MDT’进降维调整,生成原结构树MST:由多层嵌套结构的JSON数据转换为元数据树,经过剪枝后,其中仍然包含许多对于JSON可视化的冗余索引关系,其中,越接近于DNode的INode,其节点关键字信息与DNode中保存的数据信息的相关度越高,因此,需要使用降维操作来减少冗余的索引信息,降维调整的流程如下所示:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"107\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.1、定义元结构树MST(MetaStructure_Tree)为元数据数MDT’降维调整后的结果,包括有子树根节点STRoot(Subtree_Root),子结构(Substruct),形式化表达如式(24);其中子结构Substruct由引导节点(Guide_Node,简称GNode)和数据节点(Leaf_Node,简称LNode)两部分构成如式(25);根节点STRoot内包含的属性同MDT的TRoot;引导节点GNode内包含的属性同MDT的INode;叶子节点LNode内包含的属性同MDT的DNode;同时也用深度(level)来表示节点在树结构中的层数,STRoot默认为第一层,即level=1;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"108\"\u003E\u003Cp class=\"claim-text\"\u003E(24)、MST::=\u003CSubtree_Root\u003E\u003CSubstruct\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"109\"\u003E\u003Cp class=\"claim-text\"\u003E(25)、Substruct::=\u003CGuide_Node\u003E\u003CLeaf_Node\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"110\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2、使用降维调整算法,对MDT’进行降维操作生成MST:首先根据宽度优先搜索策略在MDT’中查找星标节点,对批量数据进行定位并将其存入集合,然后按照存入集合的顺序倒序开始查找包含Dnode节点的子树结构,对MDT'进行降维,截取基础数据创建MST,其流程如下所示:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"111\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.1、将MDT'作为降维调整算法的输入数据;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"112\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.2、对MDT'进行宽度优先搜索,查找星标节点N,并按序将它们存入集合\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"113\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.3、按照节点的存入顺序,在集合S中按倒序遍历节点(集合S中的节点用n表示),查找是否有其它节点与节点n有相同的父节点;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"114\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.3.1、若不存在这样的节点,则在MDT中,将该节点n及其子结构存储为一颗子树,如式(26),将n作为子树的根节点,将n的子结构作为根节点的子结构,再创建一个只有STRoot的MST,将子树作为STRoot的子结构存入MST,如式(27),并将对应的子树从MDT'中剪除;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"115\"\u003E\u003Cp class=\"claim-text\"\u003E(26)、Subtree(n)::=\u003Csubtree_root→n\u003E\u003CSubstruct→n.Substruct\u003E(27)、MST::=\u003CSubtree_root\u003E\u003CSubstruct→Subtree(n)\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"116\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.3.2、若存在这样的节点,则将这些拥有同一父节点的星标节点(node*)存入集合Q,在集合Q中查找是否存在两个星标节点(node*)符合VT中NetworkChart的结构要求,\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"117\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.3.2.1、若存在,则将这两个节点的父节点及其父节点的子结构一并存储为一个子树,如式(28),并将子树存入一个空的MST,以子树的根节点为MST的STRoot,如式(29),再将对应的子树从MDT'中剪除;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"118\"\u003E\u003Cp class=\"claim-text\"\u003E(28)、Subtree(n)::=\u003Csubtree_root→n.parent\u003E\u003CSubstruct→n.parent.Substruct\u003E(29)、MST::=\u003CSubstruct_Root→n.parent\u003E\u003CSubstruct→Subtree(n).Substruct\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"119\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.3.2.2、若不存在,则Q中的每个星标节点(node*),按照步骤5.4.2.3.1行操作;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"120\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.4、对生成的MST进行遍历,将isMark=1且只有一个子节点的INode判断为冗余节点,定义如式(30),将这个冗余节点从MST中移除并由其子结构替代它在MST中的位置;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"121\"\u003E\u003Cp class=\"claim-text\"\u003E(30)、RNode::=(RNode∈INode)∧(INode::isMark==0)∧(INode::subArray.length==1)\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"122\"\u003E\u003Cp class=\"claim-text\"\u003E5.4.2.5、输出所有生成的元结构树MST\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"123\"\u003E\u003Cp class=\"claim-text\"\u003E5.5、基于子图同构的匹配(Match)算法,把步骤5.4中生成的每个MST与可视化模型树(VT)中的StructModeli进行依次比较,查询匹配的数据片段,在匹配过程中,预设了判断条件来判定两个节点的一致性:Fattr用于判断两个节点的isMark、type、arrayNum属性是否一致;Frela用于判断两个节点与各自的父子节点的结构是否一致,基于子图同构匹配(Match)方法的流程如下所示:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"124\"\u003E\u003Cp class=\"claim-text\"\u003E5.5.1、初始化第一个匹配目标节点s为StructModeli的根节点;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"125\"\u003E\u003Cp class=\"claim-text\"\u003E5.5.2、在当前MST中查找与s符合Fattr条件的节点,将存入集合P;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"126\"\u003E\u003Cp class=\"claim-text\"\u003E5.5.3、将集合P中的节点依次与s进行Frela条件判断;若节点p与s的结构一致,将p加入集合M;若结构不一致,则继续在P中查找比较,直至P遍历完;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"127\"\u003E\u003Cp class=\"claim-text\"\u003E5.5.4、比较集合M构成的数据结构片段与StructModeli的结构是否一致;若两者结构不一致,则将s的子节点设为下一个匹配目标节点,清空集合P,并重复步骤5.5.2)至步骤\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"128\"\u003E\u003Cp class=\"claim-text\"\u003E5.5.4);若两者结构一致则输出集合M与StructModeli所对应的VTypei;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"129\"\u003E\u003Cp class=\"claim-text\"\u003E其中,当MST与VT中StructModeli中成功匹配时,将会返回m个匹配结果<M,VTypei>,每个匹配结果包含当前MST中与图形模型StructModeli匹配的数据结构片段集合M与该图形模型StructModeli对应可生成的图形类型的集合VTypei。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"130\"\u003E\u003Cp class=\"claim-text\"\u003E10.如权利要求1或2所述的一种云计算模式下JSON数据可视化优化方法,其特征在于,所述第六步的步骤为:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"131\"\u003E\u003Cp class=\"claim-text\"\u003E6.1、当MST与VT中的图形模型成功匹配时,每个匹配成功的结果为<M,VTypei>,其中集合M中包含m个符合要求的数据片段(子树结构),每个数据片段中有两个节点分别对应于StructModel子结构中的LegendNode节点和K_V节点,即对应于可视化图形中的一组候选坐标轴\u002F图例的属性组合结果;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"132\"\u003E\u003Cp class=\"claim-text\"\u003E6.2、结合构建的网络语料知识图谱吗,根据m个符合条件的数据片段中的属性组合,对匹配结果优化,过程如下:\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"133\"\u003E\u003Cp class=\"claim-text\"\u003E6.2.1、步骤6.1中每个匹配数据片段中的属性组合以二元组的形式表示:P=(L::\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"134\"\u003E\u003Cp class=\"claim-text\"\u003Ename,A::name),将每个匹配结果Pi=(Li::name,Ai::name),转化为三元组形式Gi=(Li::name,R,Ai::name)放入集合S={G1,G2,…,Gm};\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"135\"\u003E\u003Cp class=\"claim-text\"\u003E6.2.2、依次将集合S里Gi的三个参数与知识图谱的三元组结构进行如下映射F(Li::\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"136\"\u003E\u003Cp class=\"claim-text\"\u003Ename→head,R→relation,Ai::name→tail)映射成三元组(head,relation,tail),在构建语料知识图谱中匹配是否存在当前三元组(head,relation,tail),result为匹配结果为True或False,分别表示为1和0,首先在语料知识图谱中匹配头实体节点head和尾实体节点tail,然后匹配头实体节点和尾实体节点之间的关系relation,当且仅当头实体head,尾实体tail及关系relation都匹配成功,result为1;\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv num=\"137\"\u003E\u003Cp class=\"claim-text\"\u003E6.2.3、集合S中的对象查询完成后,返回集合Q={(Gi,resulti)},并将Q用于判断当前符合条件的二元组是否存在语义关联,作为候选坐标轴\u002F图例的属性组合匹配结果的判定,因此,只有结构匹配并且resulti为1时,才判定匹配成功,由此提高数据属性匹配的准确率,减少无实际意义图像的生成率。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E",descriptionHTML:"\u003Ch3 class=\"subhead\"\u003E一种云计算模式下JSON数据可视化优化方法\u003C\u002Fh3\u003E\u003Ch3 class=\"sub-head\"\u003E技术领域\u003C\u002Fh3\u003E\u003Cdiv\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0001] 本发明涉及一种云计算模式下JSON数据可视化优化方法。\u003C\u002Fdiv\u003E\u003Ch3 class=\"sub-head\"\u003E背景技术\u003C\u002Fh3\u003E\u003Cdiv\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0002] 云计算(Cloud Computing)是一种基于互联网的计算模式,其中,SaaS(软件即服务)是云计算的一种重要模式,把数据资源和功能通过云服务封装交付给用户使用。随着2000年REST(Representational State Transfer)架构风格的提出,REST服务逐渐成为软件即服务的一种重要实现技术架构。多样化的数据服务交叉融合了经济、医疗、体育、生活等多个领域,催生了巨量的数据。JSON(JavaScript Object Notation)是近年来流行的一种轻量级的数据交换格式,易于机器解析和生成。\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0003] 数据可视化通过交互式可视化界面及数据-图像转换技术来辅助用户对数据进行分析理解。可视化的基础是数据,而网络数据时代的数据是多源异构的(multi-source heterogeneous),这带来了数据源集成,数据编排的问题。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0004] 众多领域的数据服务供应商提供了大量REST服务,各个服务有各自不同结构的数据响应方式与JSON响应格式,这为数据获取,数据解析带来了困难;因此,通过减少人为干预,自动化解析、编排异构的服务数据,使数据自动可视化,具有重要的现实意义。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0005] 知识图谱由Google公司于2012年6月正式提出,是一种基于图的数据结构。知识图谱是一种结构化的语义知识库,以图的形式来展现现实世界中各个实体及其相互之间的关系,并用形式化的方式来进行描述。知识图谱以“实体-关系-实体”或“实体-属性-属性值”的三元组表达形式存储,这些数据将构成可观的实体关系网络,即知识的“图谱”。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0006] 目前,虽然已经存在一些JSON的数据可视化建模方法,但这些方法的数据自动可视化效率较低,或者自动化生成的可视化图形存在大量的冗余图形,不利于用户理解与分析。知识图谱拥有高效的信息检索能力,强大的语义关系构建能力以及可视化呈现能力,将知识图谱与数据可视化相结合能更有效找出隐藏在数据背后的规律。\u003C\u002Fdiv\u003E\u003Ch3 class=\"sub-head\"\u003E发明内容\u003C\u002Fh3\u003E\u003Cdiv\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0007] 本发明提出一种云计算模式下JSON数据可视化优化方法,利用网络语料构建网络语料库,对语料库中进行实体抽取,结合DBSCAN算法进行关系抽取构建知识图谱。对常见的可视化图形进行分析建模归纳构建可视化模型树VT,将Web服务返回的JSON数据构建成元数据树MDT;使用剪枝操作、降维调整以及基于子图同构匹配算法优化JSON数据的数据结构与可视化模型的结构匹配过程,获得符合条件的数据片段。通过查询知识图谱获取该数据片段中的属性组合是否存在语义关联,来进一步优化Web数据的可视化工作,提升有效图形生成的概率。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0008] 为了实现上述发明,采用的技术方案如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0009] 一种云计算模式下JSON数据可视化优化方法,所述方法包括以下步骤:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0010] 第一步、目标领域语料库的构建:把网络语料内容作为构建知识图谱的基础,使用网络语料词条信息作为原始语料内容,为构建知识图谱而对原始网络语料内容进行筛选。比较分析网络词条的网页内容,原始语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息与词条本身无关的冗余信息;对网络词条的内容进行过滤清洗,抽取标题与有效的正文内容。过滤内容包括:对词条的网页内容执行HTML标签\u002F文本样式符号过滤、词条模板符号及非英文字符过滤、词条编辑信息过滤、图片信息过滤、链接信息过滤、页面专有标题属性名过滤以及数值过滤;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0011] 第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构;三元组中包括了两个有现实语义关系的实体和两个实体间的关系,可以用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系;每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系。实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0012] 第三步:结合Word2vec,对语料库进行指导性二次预分组,使用DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系,其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系,通过计算语料库词汇的词向量,将语料库进行二次分组及其对应的词向量集进行二次分簇,使用DBSCAN聚类算法来抽取实体关系\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0013] 第四步、构建可视化模型树(VisualModel Tree,简称VT):对可视化框架各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0014] 第五步,定义元数据树MDT与MST元结构树,并将REST服务返回的JSON数据转化为MDT;然后,通过剪枝操作对MDT进行批量数据去重,生成MDT’;在MDT’的基础上,进行降维调整进一步抽取基本数据结构生成多个MST;最后,使用基于子图同构匹配算法,将每个元结构树MST与可视化模型树VT中每个的StructModel进行匹配,返回结果是以\u003CM,VTypei\u003E为元素构成的集合,其中M中的是MST中与可视化结构模型StructModeli匹配的数据片段,VTypei是可视化结构模型对应的可生成图形类型的集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0015] 第六步、基于网络语料知识图谱的数据可视化优化匹配方法:第五步中对MDT的剪枝操作、降维调整以及原结构树MST与可视化模型树(VT)中的StructModeli的匹配过程中都是以结构匹配为基础。在此基础上,通过第三步中构建的知识图谱中查询匹配出来的数据片段是否存在实际语义关联,根据查询结果优化第五步中的匹配算法,选取有效的维度组合,以提升自动化生成图形的精确率(Precision)。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0016] 进一步,所述第二步的过程为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0017] 2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名、地名、机构名词以及其它所有名称为标识的实体,该流程通过使用一些主流的命名实体识别系统来完成,其步骤包括:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0018] 2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0019] 2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)和词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0020] 所述第三步的流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0021] 其中,DBSCAN算法是一种基于密度的噪声应用空间聚类算法,该算法根据样本的密度分布来考查样本间的可连接性,并基于可连接的样本来扩展聚类簇,以获得最终的聚类结果;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0022] 3.1、使用Word2vec将语料库W训练成词向量簇Cube:Word2vec是一种词向量工具,它将词表示成词的特征向量,Word2vec将词转换成数值形式,使用一个N维向量来表示,将语料库W嵌入一个向量空间后得到词向量簇Cube,每一个词向量离散地分布于其中,根据词向量相互关联程度的疏密,分布状态也呈现出不同的聚集情况,通过分析词向量的聚集状态可以获得词的关联性分布状态,按照不同的亲疏关系对词向量进行分组,以获取词之间的关系,即实体间关系;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0023] 3.2、对语料库进行两次指导性预先分组:由于DBSCAN聚类算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象或关键词为聚类中心,需要对语料库进行两次指导性预先分组;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0024] 3.3、在指导性分组的基础上,通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz,对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合中,通过DBSACN聚类算法对每个语料集合自动查找聚类中心,进行分簇,同时构建三元组。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0025] 所述3.2的步骤如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0026] 3.2.1、对语料库W及其对应的词向量簇Cube进行一次分组,步骤如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0027] 3.2.1.1、提取语料库W中根语料标签,形成核心实体;通过爬虫获取网络语料并提取语料库中根语料标签的第一层子分类标签,并生成第一层子分类标签集合Tag={t1,t2...ti...tn},其中(1<=i<=n),共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与核心实体组合,构成若n个三元组,并加入三元组集合TP。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0028] 3.2.1.2、将分类标签集合Tag中的每个标签ti对应的词向量作为簇心,计算词向量簇Cube中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中。此时语料库W被分为了n个语料集wi(1<=i<=n),语料集合wi对应的词向量簇为cubei。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0029] 3.2.2、对每个语料集合wi二次分组及其对应的词向量簇cubei进行二次分簇,按照第一次分组的步骤,其流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0030] 3.2.2.1、对于每个语料集合wi及其对应的簇心标签ti,提取簇心标签ti为二级核心实体。通过爬虫获取网络语料并提取簇心标签的第一层子分类标签,并生成分类标签集合 其中(1<=j<=mi,1<=i<=n),表示当前标签ti共包含了mi个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与二级核心实体组合,构成mi个三元组并加入三元组集合TP。\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0031] 3.2.2.2、将步骤3.2.2.1中的Tagi中的每个标签对应的词向量作为簇心,计算当前词向量簇cubei中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中。此时每个语料集合wi被再次分为了mi个语料集合wij,其中(1<=j<=mi,1<=i<=n),既原始语料集合W被分为了 个语料集合wij,wij对应的词向量簇为cubeij。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0032] 其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本 与 其中i,j=1,2,...,m,表示样本数,n表示特征数,欧式距离的计算方式为:\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0033]\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0034] 3.2.3、结合TF-IDF算法,查找出每个语料集合wij中的关键词,利用关键词对语料集合wij进行再次分组。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0035] 上述指导性的预先分组过程中所构建的三元组均加入三元组集合TP中,所获得的每一个词向量簇记为cubez,其对应的语料集合记为wz,其中z为自然数,表示Cube集合中簇的数量及语料集W中语料集合的数量;cubez的簇心记为Centroidz,其对应的实体对象为Entityz。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0036] 所述3.3的流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0037] 3.3.1、通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0038] 其中,步骤3.3.1中的DBSCAN聚类算法的执行流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0039] 3.3.1.1、在cubez中选取任意未访问过的样本p(即数据点p)为圆心,划出半径为ε的圆形邻域(即ε-邻域);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0040] 3.3.1.2、若ε-邻域中的样本数不小于minPts(邻域内最小样本数),则为p创建一个新的簇C,并将领域内的样本加入集合N;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0041] 3.3.1.3、对集合N内的样本p’重复步骤3.3.1.1和3.3.1.2,每次划分ε-邻域前都对p’的从属进行判断,若p’不属于任何簇,就将p’加入簇C;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0042] 3.3.1.4、当N中所有样本都被访问完毕,在cubez中选取另一未访问过的样本,并重复步骤3.3.1.1,直至cubez中的样本均被访问;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0043] 3.3.1.5、获得的聚类结果:簇集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0044] 3.3.2、对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合TP;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0045] 3.3.3、若聚类结果中最小簇的样本数量大于阈值Z时,将已获得的簇集合ClusDS作为输入,调整并减小(ε,minPts)值后,再次对每个簇进行聚类,执行步骤3.3.1与3.3.2;若聚类结果中最小簇的样本数量不大于阈值Z时,则查询出每个簇中各个样本所对应的实体Entityq,将其与所在簇的簇心所对应的实体EntityQ组合为多个三元组(EntityQ,R,Entityq);\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0046] 其中,在DBSCAN聚类算法中,ε-邻域和minPts的大小是由cubez中的样本数量决定的,cubez样本数量越大,(ε,minPts)值越大,前期使用较大的邻域范围与邻域内最小样本数能够限制分簇数量,若使用较小的值,产生的大量细分组会导致信息过度分散,提取的簇心对应实体作为上层实体无法展现核心内容,递归调用DBSCAN算法时,按梯度递减调整(ε,minPts)值,减小邻域范围及最小样本数,依次对上一次聚类得到的簇再次进行分簇,缩小每个簇中的样本数量;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0047] 至此语料库W中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0048] 所述第四步的过程为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0049] 4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0050] (1)、VT::=\u003CBASICATTRIBUTE\u003E\u003CDVSCHEMA\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0051] 4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0052] (2)、BASICATTRIBUTE::=\u003Ctitle\u003E\u003Csubtitle\u003E\u003Cattributes\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0053] 4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0054] (3)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0055] 4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0056] (4)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E::\u003CVType\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0057] \u003CStructModel\u003E;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0058] 4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0059] 所述4.4中,四种基础类别的VType属性的所属图形如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0060] 4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0061] 4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0062] 4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0063] 4.4.4、Text包括词云(WorldCloudChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0064] 所述4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0065] 4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0066] (5)、Mapping::=\u003CXAxis,YAxis,[ZAxis]\u003E\u003CLegendName\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0067] (6)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003CLegendNode\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0068] 4.5.2、Topology类型中的图形通常用于表示拓扑关系数据,树图与面积树图可用嵌套的键值对{key:value,children:{key:value}}来表示属性结构,Mapping结构如(7);网络图可用节点集合(Nodes)和边集合(Links)来表示图结构,Mapping结构如(8),其中source表示一条边link的起始节点,target表示该条边link的指向节点;根据Mapping结构可抽象出基础StructModel的结构如(9),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含两个子节点:键值对K_V和孩子节点children,children的子结构为键值对K_V;Root2包含两个子节点:节点集合Nodes和边集合Links,节点集合的子节点为关键字key和值value,其中value可以为空,边集合的子节点为起点source和目标target;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0069] (7)、Mapping::=\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0070] (8)、Mapping::=\u003CNodes::\u003Ckey,[value]\u003E\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E[0071] (9)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003E\u003CRoot2::\u003CNodes::\u003Ckey,[value]\u003E,\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0072] 4.5.3、Map类型中的图形通常用于表示地图信息,用键值对数组[{PlaceName:value}]或三元组数组[{lng,lat,value}]来表示地图信息,此类图形的Mapping结构如(10),其中PlaceName表示地名,lng表示纬度,lat表示经度;根据Mapping结构可抽象出基础StructModel的结构如(11),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含子子节点键值对K_V;Root2包含了三个子节点:经度lat,纬度lng,数值value;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0073] (10)、Mapping::=\u003CData1::\u003CPlaceName\u003E\u003Cvalue\u003E\u003E\u003CData2::\u003Clng\u003E\u003Clat\u003E\u003Cvalue\u003E\u003E[0074] (11)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003E,\u003CRoot2::\u003Clng\u003E,\u003Clat\u003E,\u003Cvalue\u003E\u003E[0075] 4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0076] (12)、Mapping::=\u003CKeyword\u003E\u003Cfrequency\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0077] (13)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003E。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0078] 所述第五步的过程为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0079] 5.1、定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0080] 5.2、按照步骤5.1元结构树MDT的定义,把REST服务所返回的JSON数据,转化成元数据树MDT。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0081] 5.3、对MDT进行剪枝操作批量数据去重生成MDT’,保留Web服务返回JSON数据的基本的数据结构信息,缩小模型体量:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0082] 5.3.1、将MDT的根节点TRoot存入队列Queue;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0083] 5.3.2、队列Queue中的第一个节点出队列,记录为V,读取节点V的isMark属性。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0084] 5.3.2.1、若节点V的isMark属性值为1,则保留V的第一个子节点,剪除其余的子节点及其子节点的子树结构,跳转至步骤5.3.2.4;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0085] 5.3.2.2、若V节点的isMark属性值为0,则不进行任何操作,跳转至步骤5.3.2.4;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0086] 5.3.2.3、若V节点为DNode,则不进行任何操作,跳转至步骤5.3.3;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0087] 5.3.2.4、将V节点的子节点加入队列Queue,跳转至步骤5.3.3。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0088] 5.3.3、队列Queue为空时,停止当前遍历;当队列Queue不为空时,跳转到步骤5.3.2;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0089] 5.3.4、输出MDT剪枝后生成的MDT’。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0090] 5.4、对减枝生成的MDT’进降维调整,生成原结构树MST:由多层嵌套结构的JSON数据转换为元数据树,经过剪枝后,其中仍然包含许多对于JSON可视化的冗余索引关系,其中,越接近于DNode的INode,其节点关键字信息与DNode中保存的数据信息的相关度越高,因此,需要使用降维操作来减少冗余的索引信息,降维调整的流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0091] 5.4.1、定义元结构树MST(MetaStructure_Tree)为元数据数MDT’降维调整后的结果,包括有子树根节点STRoot(Subtree_Root),子结构(Substruct),形式化表达如式(24);其中子结构Substruct由引导节点(Guide_Node,简称GNode)和数据节点(Leaf_Node,简称LNode)两部分构成如式(25);根节点STRoot内包含的属性同MDT的TRoot;引导节点GNode内包含的属性同MDT的INode;叶子节点LNode内包含的属性同MDT的DNode;同时也用深度(level)来表示节点在树结构中的层数,STRoot默认为第一层,即level=1;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0092] (24)、MST::=\u003CSubtree_Root\u003E\u003CSubstruct\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0093] (25)、Substruct::=\u003CGuide_Node\u003E\u003CLeaf_Node\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0094] 5.4.2、使用降维调整算法,对MDT’进行降维操作生成MST:首先根据宽度优先搜索策略在MDT’中查找星标节点,对批量数据进行定位并将其存入集合,然后按照存入集合的顺序倒序开始查找包含Dnode节点的子树结构,对MDT′进行降维,截取基础数据创建MST,其流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0095] 5.4.2.1、将MDT′作为降维调整算法的输入数据。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0096] 5.4.2.2、对MDT′进行宽度优先搜索,查找星标节点N,并按序将它们存入集合[0097] 5.4.2.3、按照节点的存入顺序,在集合S中按倒序遍历节点(集合S中的节点用n表示),查找是否有其它节点与节点n有相同的父节点。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0098] 5.4.2.3.1、若不存在这样的节点,则在MDT中,将该节点n及其子结构存储为一颗子树,如式(26),将n作为子树的根节点,将n的子结构作为根节点的子结构,再创建一个只有STRoot的MST,将子树作为STRoot的子结构存入MST,如式(27),并将对应的子树从MDT′中剪除;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0099] (26)、Subtree(n)::=\u003Csubtree_root→n\u003E\u003CSubstruct→n.Substruct\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0100] (27)、MST::=\u003CSubtree_root\u003E\u003CSubstruct→Subtree(n)\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0101] 5.4.2.3.2、若存在这样的节点,则将这些拥有同一父节点的星标节点(node*)存入集合Q,在集合Q中查找是否存在两个星标节点(node*)符合VT中NetworkChart的结构要求,\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0102] 5.4.2.3.2.1、若存在,则将这两个节点的父节点及其父节点的子结构一并存储为一个子树,如式(28),并将子树存入一个空的MST,以子树的根节点为MST的STRoot,如式(29),再将对应的子树从MDT′中剪除;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0103] (28)、Subtree(n)::=\u003Csubtree_root→n.parent\u003E\u003CSubstruct→n.parent.Substruct\u003E\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0104] (29)、MST::=\u003CSubstruct_Root→n.parent\u003E\u003CSubstruct→Subtree(n).Substruct\u003E\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0105] 5.4.2.3.2.2、若不存在,则Q中的每个星标节点(node*),按照步骤5.4.2.3.1行操作。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0106] 5.4.2.4、对生成的MST进行遍历,将isMark=1且只有一个子节点的INode判断为冗余节点,定义如式(30),将这个冗余节点从MST中移除并由其子结构替代它在MST中的位置;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0107] (30)、RNode::=(RNode∈INode)∧(INode::isMark==0)∧(INode::subArray.length==1)\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0108] 5.4.2.5、输出所有生成的元结构树MST\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0109] 5.5、基于子图同构的匹配(Match)算法,把步骤5.4中生成的每个MST与可视化模型树(VT)中的StructModeli进行依次比较,查询匹配的数据片段。在匹配过程中,预设了判断条件来判定两个节点的一致性:Fattr用于判断两个节点的isMark、type、arrayNum属性是否一致;Frela用于判断两个节点与各自的父子节点的结构是否一致,基于子图同构匹配(Match)方法的流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0110] 5.5.1、初始化第一个匹配目标节点s为StructModeli的根节点;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0111] 5.5.2、在当前MST中查找与s符合Fattr条件的节点,将存入集合P;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0112] 5.5.3、将集合P中的节点依次与s进行Frela条件判断;若节点p与s的结构一致,将p加入集合M;若结构不一致,则继续在P中查找比较,直至P遍历完;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0113] 5.5.4、比较集合M构成的数据结构片段与StructModeli的结构是否一致;若两者结构不一致,则将s的子节点设为下一个匹配目标节点,清空集合P,并重复步骤5.5.2)至步骤5.5.4);若两者结构一致则输出集合M与StructModeli所对应的VTypei;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0114] 其中,当MST与VT中StructModeli中成功匹配时,将会返回m个匹配结果\u003CM,VTypei\u003E,每个匹配结果包含当前MST中与图形模型StructModeli匹配的数据结构片段集合M与该图形模型StructModeli对应可生成的图形类型的集合VTypei。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0115] 本发明的有益效果主要表现在:在JSON数据生成可视化图形时,可以通过本方法对常见可视化框架可视化图形进行分析归纳建模,将JSON数据构建成可视化模型树,使用剪枝操作、降维调整以及基于子图同构匹配算法优化JSON数据的数据结构与可视化模型的结构匹配,减少JSON自动可视化过程中的干扰信息,提高模型匹配效率。利用网络语料数据构建一个网络语料知识图谱,减少了冗余图形生成,提高了有效图形的生成率。同时,在数据自动可视化过程中减少人工参与筛选图形的工作,简化了Web数据可视化流程。\u003C\u002Fdiv\u003E\u003Ch3 class=\"sub-head\"\u003E附图说明\u003C\u002Fh3\u003E\u003Cdiv\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0116] 图1示出了语料库分组及词向量集合分簇流程图。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0117] 图2示出了基于DBSACN算法的知识图谱构建流程图。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0118] 图3示出了可视模型树VT的结构图。\u003C\u002Fdiv\u003E\u003Ch3 class=\"sub-head\"\u003E具体实施方式\u003C\u002Fh3\u003E\u003Cdiv\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0119] 下面结合附图对本发明作进一步描述。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0120] 参照图1~图3,基于DBSCAN聚类算法的知识图谱关系抽取与REST服务可视化融合方法,包括以下步骤:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0121] 第一步、目标领域语料库的构建:以网络语料(例如维基百科Wikipedia)的语料内容作为构建知识图谱的基础,提升领域语料库内容的文本质量及内容的全面性,使用网络语料词条信息作为原始语料内容,为构建知识图谱对原始网络语料内容进行筛选,分析词条的网页内容发现,语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息等与词条本身无关的冗余信息,对目标词条语料进行过滤清洗,抽取标题与有效的正文内容。过滤内容包括:对目标词条的网页内容执行HTML标签\u002F文本样式符号过滤(例如删除\u003Chl\u003Etext\u003C\u002Fhl\u003E,\u003Cp\u003Etext\u003Cp\u003E,\u003Cdiv\u003Etext\u003C\u002Fdiv\u003E等HTML标签,并且保留text文本;删除span{font-color:#effefe;}等样式符号),词条编辑信息过滤(例如删除[edit]标签),图片信息过滤(例如删除\u003Cimg src=’...’\u002F\u003E图片标签),链接信息过滤(例如删除\u003Ca href=″...″title=″..″\u003Etext\u003C\u002Fa\u003E超链接标签\u003Ca\u003E,并保留文本信息),页面专有标题\u002F属性名过滤(例如删除Further reading,External links等专有标题和属性名)及数值过滤(例如删除20,30等数值);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0122] 例如,利用维基百科(Wikipedia)网络语料库,通过爬虫获取维基百科竞技体育(Athletic sports)网页内容,过滤筛选后获取得包含竞技体育(Athletic sports)及其子分类的词条语料内容;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0123] 第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构,三元组中包括了两个有现实语义关系的实体和两个实体间的关系,可以用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系,每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系。实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0124] 2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名,地名,机构名词以及其它所有名称为标识的实体,该流程可通过使用一些主流的命名实体识别系统来完成,如Standtord NER能够将文本中的实体按类标记出来,能够识别包括Time,Location,Person,Date,Organization,Money,Percent等七类属性,使用它作为工具对语料库内容进行命名实体识别,识别出的命名实体标注了它的类型属性,其主要流程为:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0125] 2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体,以维基百科(Wikipedia)中词条“National Basketball Association(NBA)”的信息框(Info Box)为例,它以表格的形式构成,第1行第1列的内容为“Sport”,第1行第2列内容为“Basketball”,第2行第1列的内容为“Founded”,第2行第2列内容为“June 6,1946;73 years ago”等,提取第一列内容“Sport”,“Founded”分别与词条“National Basketball Association(NBA)”构建三元组;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0126] 2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)、词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0127] 2.3.1、单词拆分:使用正则表达式设计拆分规则模式,根据空格、符号、段落对语料库内容进行单词拆分,获取单词文本;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0128] 2.3.2、词性标注:为获取语料库中的名词,首先需要对文本词汇进行词性标注。词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术,许多单词可能同时含有多个词性,拥有多种意义,而其词性的选择取决于上下文意义。将已进行命名实体标注的语料库作为标注对象文本进行词性标注,根据标注结果查找出名词对象,并在语料库中剔除非名词对象,但不包括非名词的词条名称,此时语料库中保留的是每个词条中的命名实体、名词对象及原有标点,并且所有内容仍然保持原有文本顺序;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0129] 2.3.3、停用词过滤:停用词这一名称来源于Stop Word,指代在信息检索中为了节省存储空间和提高搜索效率,在处理自然语言文本时自动过滤掉的字或词,对于一个给定的目的,任何一类词语都可以被选作停用词,在本发明中停用词主要包括两类:一类是人类语言中包含的功能词(Function Words),常为冠词、连词、副词或介词等,这类功能词使用非常普遍,出现频率极高,但又没有确切的实际含义,如a、an、the、which、on等等;;另一类为实词(Content Words),这里指一部分有实际具体意义但又无明确指代或指向的词,如want、welcome、enough、consider、indeed等,在自然语言处理中,已有了停用词表(Stop Word List),将停用词表作为参照字典,通过单词比对从语料库中删除停用词,进一步精简语料库内容,确保保留语料中无停用词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0130] 2.3.4、词干提取:词干化提取是一种去除形态词缀得到对应词根的过程,是英语等西方语言特有的处理过程,同一个英文单词有单数和复数的变形(如apple和apples)、ing和ed等时态的变形(如doing和did)、人称代词对应不同谓语的变形(如like和likes)等,这些词虽然形式上有一些细微差别,但是都对应着相同的词根,在计算相关性的情况下应该作为相同的词来进行处理,这时就需要进行词干化处理,波特词干算法(Porter Stemming Algorithm)是一种主流的词干提取算法,其核心理念是根据形态词缀的类型,对单词进行分类处理还原,除了部分特殊的变形,大多数的单词变形是有一定规律的,依照规律将变形分为6种类别,词干的提取步骤如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0131] 2.3.4.1、依照单词变形类别,针对每一种情况进行词缀去除与单词复原,获得语料库中名词对象的词干信息,以减少同词不同形的情况。6种不同单词变形如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0132] 2.3.4.1.1、复数、以ed和ing结尾的单词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0133] 2.3.4.1.2、单词中包含元音,并以y结尾的单词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0134] 2.3.4.1.3、双后缀的单词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0135] 2.3.4.1.4、以-ic,-ful,-ness,-ative等为后缀的单词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0136] 2.3.4.1.5、\u003Cc\u003Evcvc\u003Cv\u003E情形下,-ant,-ence等后缀的单词(c为辅音,v为元音);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0137] 2.3.4.1.6、\u003Cc\u003Evc\u003Cv\u003E元音辅音间有超过1对vc的情形下,以e结尾的单词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0138] 2.3.4.2、将还原为词干的名词对象创建为名词实体,并在语料库中更新名词对象,用词干形式来表示;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0139] 第三步:结合Word2vec,对语料库进行指导性二次预分组,使用DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系,其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系,参照图1,通过计算语料库词汇的词向量,将语料库进行二次分组及其对应的词向量集合进行二次分簇;参照图2,使用DBSCAN聚类算法来抽取实体关系,其流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0140] 其中,DBSCAN算法是一种基于密度的噪声应用空间聚类算法,该算法根据样本的密度分布来考查样本间的可连接性,并基于可连接的样本来扩展聚类簇,以获得最终的聚类结果;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0141] 3.1、使用Word2vec将语料库W训练成词向量簇Cube:Word2vec是一种词向量工具,它将词表示成词的特征向量,Word2vec将词转换成数值形式,使用一个N维向量来表示。将语料库W嵌入一个向量空间后得到词向量簇Cube,每一个词向量离散地分布于其中,根据词向量相互关联程度的疏密,分布状态也呈现出不同的聚集情况。通过分析词向量的聚集状态可以获得词的关联性分布状态,按照不同的亲疏关系对词向量进行分组,以获取词之间的关系,即实体间关系;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0142] 3.2、对语料库进行两次指导性预先分组:由于DBSCAN聚类算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象或关键词为聚类中心,需要对语料库进行两次指导性预先分组,其步骤如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0143] 3.2.1、对语料库W及其对应的词向量簇Cube进行一次分组,步骤如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0144] 3.2.1.1、提取语料库W中根语料标签,形成核心实体;通过爬虫获取网络语料并提取语料库中根语料标签的第一层子分类标签,并生成第一层子分类标签集合Tag={t1,t2...ti...tn},其中(1<=i<=n),共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与核心实体组合,构成n个三元组,并加入三元组集合TP;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0145] 3.2.1.2、将分类标签集合Tag中的每个标签ti对应的词向量作为簇心,计算词向量簇Cube中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中,此时语料库W被分为了n个语料集wi(1<=i<=n),语料集合wi对应的词向量簇为cubei;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0146] 3.2.2、对每个语料集合wi及其对应的词向量簇cubei进行二次分组,按照第一次分组的步骤,其流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0147] 3.2.2.1、对于每个语料集合wi及其对应的簇心标签ti,提取簇心标签ti为二级核心实体,通过爬虫获取网络语料并提取簇心标签的第一层子分类标签,并生成分类标签集合 其中(1<=j<=mi,1<=i<=n),表示当前标签ti共包含了mi个子分类标签,每个标签都有一个对应的实体和词向量,并且将这些实体都与二级核心实体组合,构成mi个三元组并加入三元组集合TP;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0148] 3.2.2.2、将步骤3.2.2.1中的Tagi中的每个标签对应的词向量作为簇心,计算当前词向量簇cubei中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个簇心所对应的簇中。此时每个语料集合wi被再次分为了mi个语料集合wij,其中(1<=j<=mi,1<=i<=n),既原始语料集合W被分为了 个语料集合wij,wij对应的词向量簇为cubeij;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0149] 其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本 与 其中i,j=1,2,...,m,表示样本数,n表示特征数,欧式距离的计算方式为:\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0150]\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0151] 例如,首先对构建的竞技体育(Athletic sports)语料库W实体数据集进行一次指导性预分类,将先前爬取的竞技体育(Athletic sports)维基百科语料标签第一层子分类标签提取出来,形成标签集合Tag={“Association football”,“Baseball”“Badminton”,“Basketball”,“Beach soccer”,...},其中共包含了n=55个子分类标签,每个标签都有一个对应的实体和Word2vec训练出来的词向量,并且这些实体都与核心实体“Athletic sports”相连,构成55个三元组。再将这些标签对象作为质心,计算数据集中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个质心所对应的类中,此时,获得了以赛事种类为质心的55个簇,即55个分组数据集,同时语料库W也被分为了55个语料集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0152] 然后以簇心标签tx=“Association football”以及对应的语料集合wx以为例,进行二次分组,按照第一次分组的步骤获取“Association football”的子分类标签,其子分类标签Tagx包括“competition”、“club”、“player”、“country”、“venues”、“referee”、“manager”,然后为这七个标签构建实体,与“Association football”组合构成三元组,加入三元组集合TP。然后按照第一次分组的步骤,以这些标签对应的词向量为簇心,将以“Association football”为簇心的语料集中的样本以欧氏距离为依据进行再次分组,从而生成新的分簇,及其对应的语料集合,此时,簇心标签为“Association football”的语料集合wx被分为7个簇,即7个分组数据集,同时语料集合wx也被分为了7个语料集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0153] 3.2.3、结合TF-IDF算法,查找出每个语料集合wij中的关键词,利用关键词对语料集合wij进行再次分组;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0154] 3.2.3.1、利用TF-IDF算法,查找出每个语料集合wij中的关键词;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0155] 其中,步骤3.2.3中TF-IDF算法是一种用于评估一个词对指定文档的重要性的数值统计方法,词频TF(Term Frequency)指给定词在给定文档中出现的频率,其计算公式为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0156]\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0157] nx,y指文档y中术语x出现的次数,∑knk,y指文档y中总的词汇数,逆向文档频率IDF(Inverse Document Frequency)是用于评估单词或术语提供的信息量,即该术语在整个文档中是否常见,其计算公式为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0158]\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0159] N指文档的总数,nx指出现术语x的文档数量,文本中每一个词条作为一个文档,最后共同计算TF与IDF的值,获得TF-IDT的公式为:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0160] TF-IDFx,y=TFx,y×IDFx\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0161] 3.2.3.2、对每个语料集合wij的关键词进行人工筛选,去除与当前语料集合的核心实体相关性低的关键词,保留相关性最高的部分关键词,保留关键词数量与提取出的所有关键词的整体质量相关;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0162] 3.2.3.3、将每个语料集合中提取出的并通过筛选的关键词所对应的实体与当前语料集合的核心实体构建三元组,加入三元组集合TP,然后以这些关键词的词向量为簇心,再一次进行欧氏距离计算,对每个语料集合wij及其对应的词向量cubeij进行分组;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0163] 3.2.3.4、以这些关键词为每个语料集合wij中的质心,再进行一次集合中的数据点到各个质心的欧氏距离计算,并对数据点进行分类。原语料库此时已经被划分为多个语料集合wz;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0164] 上述指导性的预先分组过程中所构建的三元组均加入三元组集合TP中,所获得的每一个词向量簇记为cubez,其对应的语料集合记为wz,其中z为自然数,表示Cube集合中簇的数量及语料集W中语料集合的数量;cubez的簇心记为Centroidz,其对应的实体对象为Entityz;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0165] 例如,通过TF-IDF计算查找出每个语料集合中的关键词,例如“Association football”类别下的“competition”分簇所对应的语料集合中,有“score”,“winner″foul”,“pass”,“goal”,“shot”等关键词,但也有些词汇虽然出现频繁但与“competition”的关联性并不强,如“phase″list″year″body″finals”等。所以对于每个语料集合的关键词需要人工介入筛选,去除与当前簇心所对应的实体相关性低的关键词,而保留相关性较高的部分关键词,将每个语料集合中筛选出的关键词所对应的实体,与当前簇心所对应的实体进行组合,构建以后者为头实体的三元组。然后以这些关键词的词向量为簇心,再一次进行欧氏距离计算,对词向量簇和语料集合进行分组;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0166] 3.3、在指导性分组的基础上,通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz,对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合中,通过DBSACN聚类算法对每个语料集合自动查找聚类中心,进行分簇,同时构建三元组,流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0167] 3.3.1、通过DBSCAN聚类算法对Cube中的每一个词向量簇cubez进行分簇并计算cubez的聚类中心Centroidz;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0168] 其中,步骤3.3.1中的DBSCAN聚类算法的执行流程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0169] 3.3.1.1、在cubez中选取任意未访问过的样本p(即数据点p)为圆心,划出半径为ε的圆形邻域(即ε-邻域);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0170] 3.3.1.2、若ε-邻域中的样本数不小于minPts(邻域内最小样本数),则为p创建一个新的簇C,并将领域内的样本加入集合N;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0171] 3.3.1.3、对集合N内的样本p’重复步骤3.3.1.1和3.3.1.2,每次划分ε-邻域前都对p’的从属进行判断,若p’不属于任何簇,就将p’加入簇C;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0172] 3.3.1.4、当N中所有样本都被访问完毕,在cubez中选取另一未访问过的样本,并重复步骤3.3.1.1,直至cubez中的样本均被访问;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0173] 3.3.1.5、获得的聚类结果:簇集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0174] 3.3.2、对每一个新生成的词向量簇Ck计算簇心Centroidk,根据词向量对象与实体对象间的映射关系,查找出Centroidz与Centroidk所对应的实体Entityz与Entityk,以Entityz为头实体,Entityk为尾实体,默认实体关联为R,构建三元组(Entityz,R,Entityk),并加入三元组集合TP;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0175] 3.3.3、若聚类结果中最小簇的样本数量大于阈值Z时,将已获得的簇集合ClusDS作为输入,调整并减小(ε,minPts)值后,再次对每个簇进行聚类,执行步骤3.3.1与3.3.2;若聚类结果中最小簇的样本数量不大于阈值Z时,则查询出每个簇中各个样本所对应的实体Entityq,将其与所在簇的簇心所对应的实体EntityQ组合为多个三元组(EntityQ,R,Entityq);\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0176] 其中,在DBSCAN聚类算法中,ε-邻域和minPts的大小是由cubez中的样本数量决定的,cubez样本数量越大,(ε,minPts)值越大。前期使用较大的邻域范围与邻域内最小样本数能够限制分簇数量,若使用较小的值,产生的大量细分组会导致信息过度分散,提取的簇心对应实体作为上层实体无法展现核心内容。递归调用DBSCAN算法时,按梯度递减调整(ε,minPts)值,减小邻域范围及最小样本数,依次对上一次聚类得到的簇再次进行分簇,缩小每个簇中的样本数量;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0177] 至此语料库W中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0178] 例如,原竞技体育(Athletic sports)语料库此时已经被划分为多个语料集合,接下来通过DBSCAN聚类算法自动查找聚类中心,进行分簇,同时构建三元组,指定k的大小由语料集合的大小决定,越大的集合k值越大。最后计算得到的质心所对应的实体将与上一层分组时的质心所对应的实体构建三元组。然后将新的分组作为数据集合,再次调用DBSCAN算法,重复上述操作,直至每个分组仅含有小于10个数据点(此时阈值Z=10),最终每个分组中的数据点所对应的实体与当前质心所对应的实体构建三元组,至此竞技体育(Athletic sports)语料库中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,但自动聚类所查找出的质心与分簇情况有时可能会产生相关性较弱的实体关联,因此最终还需要人工的校对筛查,去除相关性极低的实体关联;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0179] 第四步、构建可视化模型树(VisualModel Tree,简称VT):对可视化框架中各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0180] 4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0181] (1)、VT::=\u003CBASICATTRIBUTE\u003E\u003CDVSCHEMA\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0182] 4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0183] (2)、BASICATTRIBUTE::=\u003Ctitle\u003E\u003Csubtitle\u003E\u003Cattributes\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0184] 4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0185] (3)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0186] 4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0187] (4)、DVSCHEMA::=\u003CGeneral\u003E\u003CTopology\u003E\u003CMap\u003E\u003CText\u003E::\u003CVType\u003E\u003CStructModel\u003E[0188] 步骤4.4中,四种基础类别的VType属性的所属图形如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0189] 4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0190] 4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0191] 4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0192] 4.4.4、Text包括词云(WorldCloudChart);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0193] 4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0194] 所述4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0195] 4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0196] (5)、Mapping::=\u003CXAxis,YAxis,[ZAxis]\u003E\u003CLegendName\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0197] (6)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003CLegendNode\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0198] 4.5.2、Topology类型中的图形通常用于表示拓扑关系数据,树图与面积树图可用嵌套的键值对{key:value,children:{key:value}}来表示属性结构,Mapping结构如(7);网络图可用节点集合(Nodes)和边集合(Links)来表示图结构,Mapping结构如(8),其中source表示一条边link的起始节点,target表示该条边link的指向节点;根据Mapping结构可抽象出基础StructModel的结构如(9),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含两个子节点:键值对K_V和孩子节点children,children的子结构为键值对K_V;Root2包含两个子节点:节点集合Nodes和边集合Links,节点集合的子节点为关键字key和值value,其中value可以为空,边集合的子节点为起点source和目标target;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0199] (7)、Mapping::=\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0200] (8)、Mapping::=\u003CNodes::\u003Ckey,[value]\u003E\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E[0201] (9)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003Cchildren::\u003CK_V\u003E\u003E\u003E\u003CRoot2::\u003CNodes::\u003Ckey,[value]\u003E,\u003CLinks::\u003Csource\u003E\u003Ctarget\u003E\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0202] 4.5.3、Map类型中的图形通常用于表示地图信息,用键值对数组[{PlaceName:value}]或三元组数组[{lng,lat,value}]来表示地图信息,此类图形的Mapping结构如(10),其中PlaceName表示地名,lng表示纬度,lat表示经度;根据Mapping结构可抽象出基础StructModel的结构如(11),StructModel有两个子结构,Root1和Root2分别为两个子结构的临时根节点,Root1包含子子节点键值对K_V;Root2包含了三个子节点:经度lat,纬度lng,数值value;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0203] (10)、Mapping::=\u003CData1::\u003CPlaceName\u003E\u003Cvalue\u003E\u003E\u003CData2::\u003Clng\u003E\u003Clat\u003E\u003Cvalue\u003E\u003E[0204] (11)、StructModel::=\u003CRoot1::\u003CK_V\u003E\u003E,\u003CRoot2::\u003Clng\u003E,\u003Clat\u003E,\u003Cvalue\u003E\u003E[0205] 4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0206] (12)、Mapping::=\u003CKeyword\u003E\u003Cfrequency\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0207] (13)、StructModel::=\u003CRoot::\u003CK_V\u003E\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0208] 第五步,定义元数据树MDT与MST元结构树,并将REST服务返回的JSON数据转化为MDT;然后,通过剪枝操作对MDT进行批量数据去重,生成MDT’;在MDT’的基础上,进行降维调整进一步抽取基本数据结构生成多个MST;最后,使用基于子图同构匹配算法,将每个元结构树MST与可视化模型树VT中每个的StructModel进行匹配,返回结果是以\u003CM,VTypei\u003E为元素构成的集合,其中M中的是MST中与可视化结构模型StructModeli匹配的数据片段,VTypei是可视化结构模型对应的可生成图形类型的集合;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0209] 5.1、定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0210] 5.1.1、根节点TRoot,MDT的根节点,即MDT的起始节点,根节点内部包含以下信息:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0211] 5.1.1.1、星标isMark:记录JSON数据中最外层结构是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述如(14)(15),isMark的数据类型为数字NUMBER,若JSON数据中“键-值”对中的值VALUE为数组ARRAY,则isMark=1,否则isMark=0;“#”为数据类型定义符,“::=”为赋值符, 表示若A符合条件condition,则该式值为B,否则该式值为C;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0212] (14)、“isMark”#\u003CNUMBER\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0213] (15)、\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0214] 5.1.1.2、元素数量arrayNum:若当前节点的isMark为1,则记录数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述如(16)(17),arrayNum属性值为数字NUMBER类型,若JSON数据中“键-值”对中的值VALUE为ARRAY,则arrayNum等于VALUE数组的长度,否则arrayNum=0;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0215] (16)、“arrayNum”#\u003CNUMBER\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0216] (17)、\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0217] 5.1.2、索引节点INode:代表JSON数据中每一个关键字KEY,但不包括JSON数据中最内层的“键-值”对的关键字,索引节点为非根节点、非叶子节点。索引节点内部包含以下信息:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0218] 5.1.2.1、节点名称name:name的数据类型为字符串STRING,name属性值为JSON数据中“键-值”对中的关键字KEY;name形式化定义表述如(18)(19);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0219] (18)、“name”#\u003CSTRING\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0220] (19)、“name”::=\u003CKEY\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0221] 5.1.2.2、节点值类型vType:vType是JSON数据中“键-值”对中的值VALUE的数据类型,属性值为对象OBJECT、数组ARRAY、字符串STRING、数字NUMBER、TRUE、FALSE之一;vType形式化定义表述如(20);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0222] (20)、“vType”::=[OBJECT|ARRAY|STRING|NUMBER|TRUE|FALSE]\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0223] 5.1.2.3、星标(isMark):记录JSON数据中,以当前节点名称name作为关键字的“键-值”对中的值VALUE是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述同步骤5.1.1.1中的(14)(15);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0224] 5.1.2.4、元素数量arrayNum:若当前节点的isMark为1,则记录“键-值”对中的值VALUE的数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述同步骤5.1.1.2中的(16)(17)。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0225] 5.1.3、数据节点DNode:代表JSON数据中最内层的“键-值”对,存储为叶子节点。数据节点的内部包括以下信息:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0226] 5.1.3.1、节点名称name:保存JSON数据中“键-值”对中的关键字KEY,数据类型为字符串STRING;name形式化定义表述同步骤5.1.2.1中的(18)(19);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0227] 5.1.3.2、节点值nValue:nValue的数据类型为STRING,属性值为JSON数据中“键-值”对中的值VALUE;nValue形式化定义表述如(21)(22);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0228] (21)、“nValue”#\u003CSTRING\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0229] (22)、“nValue”::=\u003CVALUE\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0230] 5.1.3.3、节点类型type:保存JSON数据中“键-值”对中的值VALUE的数据类型,为“str”、“num”或NULL,其中“str”代表type的数据类型为STRING,“num”代表type的数据类型为NUMBER,NULL表示type的属性值为空;type形式化定义表述如(23);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0231] (23)、“type”::=[“str”|“num”|NULL]。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0232] 5.2、按照步骤5.1元结构树MDT的定义,把REST服务所返回的JSON数据,转化成元数据树MDT。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0233] 5.3、对MDT进行剪枝操作批量数据去重生成MDT’,保留Web服务返回JSON数据的基本的数据结构信息,缩小模型体量:-\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0234] 5.3.1、将MDT的根节点TRoot存入队列Queue;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0235] 5.3.2、队列Queue中的第一个节点出队列,记录为V,读取节点V的isMark属性。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0236] 5.3.2.1、若节点V的isMark属性值为1,则保留V的第一个子节点,剪除其余的子节点及其子节点的子树结构,跳转至步骤5.3.2.4;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0237] 5.3.2.2、若V节点的isMark属性值为0,则不进行任何操作,跳转至步骤5.3.2.4;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0238] 5.3.2.3、若V节点为DNode,则不进行任何操作,跳转至步骤5.3.3;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0239] 5.3.2.4、将V节点的子节点加入队列Queue,跳转至步骤5.3.3。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0240] 5.3.3、队列Queue为空时,停止当前遍历;当队列Queue不为空时,跳转到步骤5.3.2;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0241] 5.3.4、输出MDT剪枝后生成的MDT’。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0242] 5.4、对减枝生成的MDT’进降维调整,生成原结构树MST:由多层嵌套结构的JSON数据转换为元数据树,经过剪枝后,其中仍然包含许多对于JSON可视化的冗余索引关系,其中,越接近于DNode的INode,其节点关键字信息与DNode中保存的数据信息的相关度越高,因此,需要使用降维操作来减少冗余的索引信息,降维调整的具体流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0243] 5.4.1、定义元结构树MST(MetaStructure_Tree)为元数据数MDT’降维调整后的结果,包括有子树根节点STRoot(Subtree_Root),子结构(Substruct),形式化表达如式(24);其中子结构Substruct由引导节点(Guide_Node,简称GNode)和数据节点(Leaf_Node,简称LNode)两部分构成如式(25);根节点STRoot内包含的属性同MDT的TRoot;引导节点GNode内包含的属性同MDT的INode;叶子节点LNode内包含的属性同MDT的DNode;同时也用深度(level)来表示节点在树结构中的层数,STRoot默认为第一层,即level=1;\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0244] (24)、MST::=\u003CSubtree_Root\u003E\u003CSubstruct\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0245] (25)、Substruct::=\u003CGuide_Node\u003E\u003CLeaf_Node\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0246] 5.4.2、使用降维调整算法,对MDT’进行降维操作生成MST:首先根据宽度优先搜索策略在MDT’中查找星标节点,对批量数据进行定位并将其存入集合。然后按照存入集合的顺序倒序开始查找包含Dnode节点的子树结构,对MDT′进行降维,截取基础数据创建MST,其具体流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0247] 5.4.2.1、将MDT′作为降维调整算法的输入数据;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0248] 5.4.2.2、对MDT′进行宽度优先搜索,查找星标节点N,并按序将它们存入集合[0249] 5.4.2.3、按照节点的存入顺序,在集合S中按倒序遍历节点(集合S中的节点用n表示),查找是否有其它节点与节点n有相同的父节点;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0250] 5.4.2.3.1、若不存在这样的节点,则在MDT中,将该节点n及其子结构存储为一颗子树,如式(26),将n作为子树的根节点,将n的子结构作为根节点的子结构,。再创建一个只有STRoot的MST,将子树作为STRoot的子结构存入MST,如式(27),并将对应的子树从MDT′中剪除;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0251] (26)、Subtree(n)::=\u003Csubtree_root→n\u003E\u003CSubstruct→n.Substruct\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0252] (27)、MST::=\u003CSubtree_root\u003E\u003CSubstruct→Subtree(n)\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0253] 5.4.2.3.2、若存在这样的节点,则将这些拥有同一父节点的星标节点(node*)存入集合Q,在集合Q中查找是否存在两个星标节点(node*)符合VT中NetworkChart的结构要求。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0254] 5.4.2.3.2.1、若存在,则将这两个节点的父节点及其父节点的子结构一并存储为一个子树,如式(28),并将子树存入一个空的MST,以子树的根节点为MST的STRoot,如式(29),再将对应的子树从MDT′中剪除;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0255] (28)、Subtree(n)::=\u003Csubtree_root→n.parent\u003E\u003CSubstruct→n.parent.Substruct\u003E\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0256] (29)、MST::=\u003CSubstruct_Root→n.parent\u003E\u003CSubstruct→Subtree(n).Substruct\u003E\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0257] 5.4.2.3.2.2、若不存在,则Q中的每个星标节点(node*),按照步骤5.4.2.3.1行操作。\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0258] 5.4.2.4、对生成的MST进行遍历,将isMark=1且只有一个子节点的INode判断为冗余节点Redundant_Node(RNode),定义如式(30),将这个冗余节点从MST中移除并由其子结构替代它在MST中的位置;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0259] (30)、RNode::=(RNode∈INode)∧(INode::isMark==0)∧(INode::subArray.length==1)\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0260] 5.4.2.5、输出所有生成的元结构树MST\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0261] 5.5、基于子图同构的匹配(Match)算法,把步骤5.4中生成的每个MST与可视化模型树(VT)中的StructModeli进行依次比较,查询匹配的数据片段。在匹配过程中,预设了判断条件来判定两个节点的一致性:Fattr用于判断两个节点的isMark、type、arrayNum属性是否一致;Frela用于判断两个节点与各自的父子节点的结构是否一致,基于子图同构匹配(Match)方法的具体流程如下所示:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0262] 5.5.1、初始化第一个匹配目标节点s为StructModeli的根节点;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0263] 5.5.2、在当前MST中查找与s符合Fattr条件的节点,将存入集合P;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0264] 5.5.3、将集合P中的节点依次与s进行Frela条件判断;若节点p与s的结构一致,将p加入集合M;若结构不一致,则继续在P中查找比较,直至P遍历完;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0265] 5.5.4、比较集合M构成的数据结构片段与StructModeli的结构是否一致;若两者结构不一致,则将s的子节点设为下一个匹配目标节点,清空集合P,并重复步骤5.5.2)至步骤5.5.4);若两者结构一致则输出集合M与StructModeli所对应的VTypei;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0266] 其中,当MST与VT中StructModeli中成功匹配时,将会返回m个匹配结果\u003CM,VTypei\u003E,每个匹配结果包含当前MST中与图形模型StructModeli匹配的数据结构片段集合M与该图形模型StructModeli对应可生成的图形类型的集合VTypei;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0267] 第六步、基于网络语料知识图谱的数据可视化优化匹配方法:第五步中对MDT的剪枝操作、降维调整以及原结构树MST与可视化模型树(VT)中的StructModeli的匹配过程中都是以结构匹配为基础。在此基础上,通过第三步中构建的知识图谱中查询匹配出来的数据片段是否存在实际语义关联,根据查询结果优化第五步中的匹配算法,选取有效的维度组合,以提升自动化生成图形的精确率(Precision);\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0268] 6.1、当MST与VT中的图形模型成功匹配时,每个匹配成功的结果为\u003CM,VTypei\u003E,其中集合M中包含m个符合要求的数据片段(子树结构),每个数据片段中有两个节点分别对应于StructModel子结构中的LegendNode节点和K_V节点,即对应于可视化图形中的一组候选坐标轴\u002F图例的属性组合结果;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0269] 6.2、结合构建的网络语料知识图谱吗,根据m个符合条件的数据片段中的属性组合,对匹配结果优化,过程如下:\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0270] 6.2.1、步骤6.1中每个匹配数据片段中的属性组合以二元组的形式表示:P=(L::name,A::name)。将每个匹配结果Pi=(Li::name,Ai::name),转化为三元组形式Gi=(Li::\u003Cbr\u003Ename,R,Ai::name)放入集合S={G1,G2,...,Gm};\u003Cbr\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0271] 6.2.2、依次将集合S里Gi的三个参数与知识图谱的三元组结构进行如下映射F(Li::name→head,R→relation,Ai::name→tail)映射成三元组(head,relation,tail),在构建语料知识图谱中匹配是否存在当前三元组(head,relation,tail),result为匹配结果为True或False,分别表示为1和0,首先在语料知识图谱中匹配头实体节点head和尾实体节点tail,然后匹配头实体节点和尾实体节点之间的关系relation。当且仅当头实体head,尾实体tail及关系relation都匹配成功,result为1;\u003C\u002Fdiv\u003E\u003Cdiv class=\"sub-text\"\u003E[0272] 6.2.3、集合S中的对象查询完成后,返回集合Q={(Gi,resulti)},并将Q用于判断当前符合条件的二元组是否存在语义关联,作为候选坐标轴\u002F图例的属性组合匹配结果的判定,因此,只有结构匹配并且resulti为1时,才判定匹配成功,由此提高数据属性匹配的准确率,减少无实际意义图像的生成率。\u003C\u002Fdiv\u003E",importantProductList:m},recommentList1:m}],fetch:{},error:n,state:{sUrl:"https:\u002F\u002Fwww.iprtt.com\u002Fapi\u002F",sUrlNB:"https:\u002F\u002Fwww.iprtt.com\u002Fnb\u002F",url:"https:\u002F\u002Fwww.iprtt.com\u002F",ryToken:a,uuid:a,nickName:a,imShow:b,counter:d,appkey:"tdrvipkstyst5",token:a,flag:a,once:b,init:b,connect:b,imgUrl:a,people:{},mini:f,isLoggedIn:f,loadingCount:d,isNew:b,freshen:b,poolMsg:[],signIn:"1",mCharge:b,memberPrice:d,searchKey:a,isSearch:b,searchKey1:a,isSearch1:b,searchKey2:a,isSearch2:b,searchKey3:a,isSearch3:b,headerKey:a,selBtn:"sell",channel:a,domain:{},mpath:[f,b,b,b],sellFilter:{},user:{user:{},connectCode:a,token:a,roleRight:a},common:{},order:{userInfo:{},patentInfo:{},firstAddr:{},addressList:[],generalPoint:a,vatPoint:a,invoiceList:[],normalList:[],specialList:[]},home:{countInfo:{},elitePtentList:[],questionList:[],sellList:[],purchaseList:[]},product:{userInfo:{},productCount:a,demandCount:a,info:{},price:a,recommentList:[],recommentList1:[],productInfo:{}},purchase:{recommentList:[],domainList:[],data:[]},online:{recommentList:[],domainList:[],patentList:[]},operation:{resList:[],information:{},domainList:[],patentList:[],data:[],userList:[],total:a},operation1:{resList:[],information:{},domainList:[]},payment:{},authentication:{},wallet:{},patentCollect:{},patentProduct:{},patentDemand:{},patentOrder:{},myPurchase:{},fee:{},article:{},newManage:{},contact:{},member:{},colleage:{},tech:{token:a}},serverRendered:f,routePath:"\u002Fsell\u002Fdetail\u002F2019112549510",config:{_app:{basePath:"\u002F",assetsPath:"\u002F_nuxt\u002F",cdnURL:n}}}}("",false,1,0,2,true,"已认证","platform","http:\u002F\u002Fimg.iprdb.cn\u002Fiprtt\u002Fuser\u002Fheadwx\u002Ffemale.jpg",60,"pass","2025-07-03",Array(4),null));</script><script src="/_nuxt/284323c.js" defer></script><script src="/_nuxt/2996364.js" defer></script><script src="/_nuxt/1364b87.js" defer></script><script src="/_nuxt/a9f3648.js" defer></script><script src="/_nuxt/6268d57.js" defer></script><script src="/_nuxt/a0ac791.js" defer></script> </body> </html>