面向可视化需求的基于知识图谱的Web数据优化方法
技术领域
本发明涉及一种面向可视化需求的基于知识图谱的Web数据优化方法。
背景技术
面向服务的计算(Service-Oriented Computing,SOC)是当前工业界与学术界都备受关注的一种针对分布式系统的计算范型。在SOC计算模式的发展推动下,Web服务得到了进一步的普及与应用。随着2000年REST(Representational State Transfer)架构风格的提出,REST服务逐渐成为Web服务的重要组成部分。REST服务简单、轻量、快速的特点促使它在Internet上盛行,并保持可观的指数增长,同时也带动了服务数量的增长。多样化的数据服务交叉融合了经济、医疗、体育、生活等多个领域,催生了巨量的数据。但是无论面对怎样的数据,人类获取数据的根本目的仍然在于获得数据中的有效信息。
数据可视化通过交互式可视化界面及数据-图像转换技术来辅助用户对数据进行分析理解。可视化的基础是数据,而网络数据时代的数据是多源异构的(multi-sourceheterogeneous),这带来了数据源集成,数据编排的问题;众多领域的数据服务供应商提供了大量服务,各个服务有各自不同结构的数据响应方式与响应格式,这为数据获取,数据解析带来了困难;随着多媒体技术与可视化技术的发展,人们不再满足于普通的表单数据,而追求更直观、丰富的数据展示形式与更便捷、高效的数据处理工具。因此,通过减少人为干预,自动化解析、编排异构的服务数据,使数据自动可视化,具有重要的现实意义。
知识图谱由Google公司于2012年6月正式提出,是一种基于图的数据结构。知识图谱是一种结构化的语义知识库,以图的形式来展现现实世界中各个实体及其相互之间的关系,并用形式化的方式来进行描述。知识图谱的基本组成单元的通用表示形式是实体、“实体-关系-实体”三元组,以及实体的“属性-值”对。知识图谱以“实体-关系-实体”或“实体-属性-属性值”的三元组表达形式存储,这些数据将构成可观的实体关系网络,即知识的“图谱”。
目前,虽然已经存在一些面向REST服务的数据可视化建模方法,但这些方法的数据自动可视化效率较低,或者自动化生成的可视化图形存在大量的冗余图形,不利于用户理解与分析。知识图谱拥有高效的信息检索能力,强大的语义关系构建能力以及可视化呈现能力,将知识图谱与数据可视化相结合能更有效找出隐藏在数据背后的规律。
发明内容
本发明提出了一种面向可视化需求的基于知识图谱的Web数据优化方法,对常见可视化图形分析归纳建模,将Web数据的结构与可视化模型的结构进行结构匹配,获得符合要求的候选坐标轴/图例的属性组合。利用网络语料构建知识图谱,并通过查询知识图谱获取该属性组合是否存在语义关联,来进一步优化Web数据的可视化工作,提升有效图形生成的概率。
为了实现上述发明,采用的技术方案如下:
一种面向可视化需求的基于知识图谱的Web数据优化方法,所述方法包括以下步骤:
第一步、目标领域语料库的构建:把网络语料内容作为构建知识图谱的基础,使用网络语料词条信息作为原始语料内容,为构建知识图谱而对原始网络语料内容进行筛选,比较分析网络词条的网页内容,原始语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息等与词条本身无关的冗余信息,对网络词条的内容进行过滤清洗,抽取标题与有效的正文内容。过滤内容包括:对词条的网页内容执行HTML标签/文本样式符号过滤、词条模板符号及非英文字符过滤、词条编辑信息过滤、图片信息过滤、链接信息过滤、页面专有标题属性名过滤以及数值过滤;
第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构,三元组中包括了两个有现实语义关系的实体和两个实体间的关系,用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系;每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系;
第三步:结合Word2vec,将语料库进行二次预分组,使用k-means聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系,其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系,通过计算语料库词汇的词向量,将语料库进行二次分组,使用k-means聚类算法来抽取实体关系;
第四步、构建可视化模型树(VisualModel Tree,简称VT):对各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息;
第五步、基于网络语料知识图谱的数据可视化优化匹配方法:定义M-JSON为RESTWeb服务返回的JSON的原型结构;将Web数据原型结构M-JSON与可视化模型树VT中的每个StructModel依据数据结构进行匹配,返回的结果是符合条件的候选坐标轴/图例的属性组合构成的集合;在结构匹配的基础上,利用第三步中构建的知识图谱,查询匹配出来的候选坐标轴/图例的属性组合否存在实际语义关联,根据查询结果优化匹配,选取有效的维度组合,以提升自动化生成图形的精确率(Precision)。进一步,所述第二步中,实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;
2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名、地名、机构名词以及其它所有名称为标识的实体。该流程可通过使用一些主流的命名实体识别系统来完成,其步骤包括:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体;
2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体;
2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)和词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取。
再进一步,所述2.3的过程如下:
2.3.1、单词拆分:使用正则表达式设计拆分规则模式,根据空格、符号、段落对语料库内容进行单词拆分,获取单词文本;
2.3.2、词性标注:为获取语料库中的名词,首先需要对文本词汇进行词性标注,词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术,许多单词可能同时含有多个词性,拥有多种意义,而其词性的选择取决于上下文意义,将已进行命名实体标注的语料库作为标注对象文本进行词性标注,根据标注结果查找出名词对象,并在语料库中剔除非名词对象,但不包括非名词的词条名称,此时语料库中保留的是每个词条中的命名实体、名词对象及原有标点,并且所有内容仍然保持原有文本顺序;
2.3.3、停用词过滤:停用词这一名称来源于Stop Word,指代在信息检索中为了节省存储空间和提高搜索效率,在处理自然语言文本时自动过滤掉的字或词,对于一个给定的目的,任何一类词语都可以被选作停用词,停用词包括两类:一类是人类语言中包含的功能词(Function Words),这类功能词使用非常普遍,出现频率极高,但又没有确切的实际含义;另一类为实词(Content Words),这里指一部分有实际具体意义但又无明确指代或指向的词;在自然语言处理中,已有了停用词表(Stop Word List),将停用词表作为参照字典,通过单词比对从语料库中删除停用词,进一步精简语料库内容,确保保留语料中无停用词;
2.3.4、词干提取:词干化提取是一种去除形态词缀得到对应词根的过程,是英语等西方语言特有的处理过程;同一个英文单词有单数和复数的变形、时态的变形、人称代词对应不同谓语的变形。这些词虽然形式上有一些细微差别,但是都对应着相同的词根,在计算相关性的情况下应该作为相同的词来进行处理,这时就需要进行词干化处理;波特词干算法(Porter Stemming Algorithm)是一种主流的词干提取算法,其核心理念是根据形态词缀的类型,对单词进行分类处理还原。除了部分特殊的变形,大多数的单词变形是有一定规律的,依照规律将形变分为6种类别。
再进一步,所述2.3.4中,词干的提取步骤如下:
2.3.4.1、依照单词变形类别,针对每一种情况进行词缀去除与单词复原,获得语料库中名词对象的词干信息,以减少同词不同形的情况,6种不同单词变形如下:
2.3.4.1.1、复数、以ed和ing结尾的单词;
2.3.4.1.2、单词中包含元音,并以y结尾的单词;
2.3.4.1.3、双后缀的单词;
2.3.4.1.4、以-ic,-ful,-ness,-ative等为后缀的单词;
2.3.4.1.5、<c>vcvc<v>情形下,-ant,-ence等后缀的单词(c为辅音,v为元音);
2.3.4.1.6、<c>vc<v>元音辅音间有超过1对vc的情形下,以e结尾的单词;
2.3.4.2、将还原为词干的名词对象创建为名词实体,并在语料库中更新名词对象,用词干形式来表示。
所述第三步中,知识图谱的构建流程如下:
3.1、使用Word2vec训练词向量:Word2vec是一种词向量工具,它将词表示成词的特征向量。使用Word2vec将词转换成数值形式,使用一个N维向量来表示。
3.2、将语料库进行两次预先分组:由于k-means算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象为聚类中心,不能直接使用k-means聚类,要对语料库进行两次预先分组;
3.3、通过k-means聚类算法对小语料集合自动查找聚类中心,进行分簇,同时构建三元组,步骤如下:
3.3.1、根据小语料集合的大小决定k的大小,集合越大k值越大。
3.3.2、经过k-means聚类计算得到的质心所对应的实体将与上一层分组时的质心所对应的实体构建三元组。
其中,步骤3.3.2中k-means算法是一种无监督聚类算法,使用语料库经过Word2vec所训练出来的词向量来代表每一个词。将每个小语料集合作为数据集,使用k-means聚类算法进行聚类计算。k-means聚类的步骤如下:
3.3.2.1、选取数据集中的k个对象作为初始中心,每个对象代表一个聚类中心;
3.3.2.2、词向量样本中的对象,根据它们与这些聚类中心的欧氏距离,将它们分到距离它们最近的聚类中心所对应的类;
3.3.2.3、更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
3.3.2.4、判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回3.3.2.2;
3.3.3、将新的分组作为数据集合,再次调用k-means算法,重复步骤3.3.1~3.3.3,直至每个分组仅含有小于某个阈值Z的元素数量;
3.3.4、将每个分组中的数据点所对应的实体与当前质心所对应的实体构建三元组;
至此语料库中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱,由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量。
所述3.2的步骤如下:
3.2.1、对语料库一次分组,步骤如下:
3.2.1.1、将先前获取的目标领域标签的第一层子分类标签提取出来,目标领域标签形成核心实体,并生成第一层子分类标签集合Tag,其中共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且这些实体都与核心实体相连,构成n个三元组;
3.2.1.2、将第一层子分类标签对象作为质心,计算语料库数据集中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个质心所对应的类中,获得了以第一层子分类标签为质心的n个簇,即n个分组数据集,同时语料库也被分为了n个语料集合;
其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本
与
其中i,j=1,2,…,m,表示样本数,n表示特征数,欧式距离的计算方式为:
3.2.2、结合TF-IDF算法,对语料库二次分组,其步骤如下:
3.2.2.1、通过计算TF-IDF查找出每个语料集合中的关键词。
其中,步骤3.2.2中TF-IDF算法是一种用于评估一个词对指定文档的重要性的数值统计方法,词频TF(Term Frequency)指给定词在给定文档中出现的频率,其计算公式为:
nx,y指文档y中术语x出现的次数,∑knk,y指文档y中总的词汇数,逆向文档频率IDF(Inverse Document Frequency)是用于评估单词或术语提供的信息量,即该术语在整个文档中是否常见,其计算公式为:
N指文档的总数,nx指出现术语x的文档数量,文本中每一个词条作为一个文档,最后共同计算TF与IDF的值,获得TF-IDF的公式为:
TF-IDFx,y=TFx,y×IDFx
3.2.2.2、对每个语料集合的关键词进行人工筛选,去除与当前语料集合的核心实体相关性低的关键词,保留相关性最高的部分关键词,保留关键词数量与提取出的所有关键词的整体质量相关;
3.2.2.3、将每个语料集合中提取出的并通过筛选的关键词所对应的实体与当前语料集合的核心实体构建三元组,以这些关键词为每个语料集合中的质心,再进行一次集合中的数据点到各个质心的欧氏距离计算,并对数据点进行分类,原语料库此时已经被划分为多个小语料集合。
所述第四步的步骤如下:
4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;
(1)、VT::=<BASICATTRIBUTE><DVSCHEMA>
4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;
(2)、BASICATTRIBUTE::=<title><subtitle><attributes>
4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);
(3)、DVSCHEMA::=<General><Topology><Map><Text>
4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;
(4)、DVSCHEMA::=<General><Topology><Map><Text>::<VType>
<StructModel>。
所述4.4中,四种基础类别的VType属性的所属图形如下:
4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);
4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);
4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);
4.4.4、Text包括词云(WorldCloudChart);
4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。
所述4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义如下:
4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;
(5)、Mapping::=<XAxis,YAxis,[ZAxis]><LegendName>
(6)、StructModel::=<Root::<K_V><LegendNode>>
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;
(7)、Mapping::=<K_V><children::<K_V>>
(8)、Mapping::=<Nodes::<key,[value]><Links::<source><target>>
(9)、StructModel::=<Root1::<K_V><children::<K_V>>><Root2::<Nodes::<key,[value]>,<Links::<source><target>>>
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;
(10)、Mapping::=<Data1::<PlaceName><value>><Data2::<lng>
<lat><value>>
(11)、StructModel::=<Root1::<K_V>>,<Root2::<lng>,<lat>,<value>>
4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;
(12)、Mapping::=<Keyword><frequency>
(13)、StructModel::=<Root::<K_V>>。
所述第五步的步骤如下:
5.1、将Web数据原型结构M-JSON与可视化模型树VT的StructModel依据数据结构进行匹配,M-JSON中匹配出m个符合条件的候选坐标轴/图例的属性组合结果,其中每个组合结果表示为一个含键值对L和一个属性名A组成的二元组。其中L和A分别与步骤4.5.1中的LegendNode和K_V对应;
5.2、结合构建的网络语料知识图谱对m个符合条件的属性组合进行匹配优化,过程如下:
5.2.1、步骤5.1中每个匹配结果以二元组的形式来表示:P=(L::nameA::name),将每个匹配结果Pi=(Li::name,Ai::name),转化为三元组形式Gi=(Li::name,R,Ai::name)放入集合S={G1,G2,...,Gm};
5.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;
5.2.3、集合S中的对象查询完成后,返回集合Q={(Gi,resulti)},并将Q用于判断当前符合条件的二元组是否存在语义关联,作为候选坐标轴/图例的属性组合匹配结果的判定,因此,只有结构匹配并且resulti为1时,才判定匹配成功。由此提高数据属性匹配的准确率,减少无实际意义图像的生成率。
本发明的有益效果主要表现在:在Web数据可视化生成图形时,可以通过本方法利用网络语料数据构建一个网络语料知识图谱,对常见可视化图形进行分析归纳建模,优化Web数据原型结构与常用的可视化图形模型匹配过程,减少了冗余图形生成,提高了有效图形的生成率。同时,在数据自动可视化过程中减少人工参与筛选图形的工作,简化了Web数据可视化流程。
附图说明
图1示出了基于k-means算法的知识图谱构建流程图。
图2示出了可视模型树VT的结构图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种面向可视化需求的基于知识图谱的Web数据优化方法,包括以下步骤:
第一步、目标领域语料库的构建:以网络语料(例如维基百科Wikipedia)的语料内容作为构建知识图谱的基础,提升领域语料库内容的文本质量及内容的全面性,使用网络语料词条信息作为原始语料内容,为构建知识图谱对原始网络语料内容进行筛选,分析词条的网页内容,发现语料内容中除了标题和正文信息外,还包含了HTML标签,词条本身的编辑信息,网页链接信息等与词条本身无关的冗余信息,对目标词条语料进行过滤清洗,抽取标题与有效的正文内容。过滤内容包括:对目标词条的网页内容执行HTML标签/文本样式符号过滤(例如删除<h1>text</h1>,<p>text<p>,<div>text</div>等HTML标签,并且保留text文本;删除span{font-color:#effefe;}等样式符号),词条编辑信息过滤(例如删除[edit]标签),图片信息过滤(例如删除<img src=’…’/>图片标签),链接信息过滤(例如删除<a href="…"title="..">text</a>超链接标签<a>,并保留文本信息),页面专有标题/属性名过滤(例如删除Further reading,External links等专有标题和属性名)及数值过滤(例如删除20,30等数值);
例如,利用维基百科(Wikipedia)网络语料库,通过爬虫获取维基百科竞技体育(Athletic sports)网页内容,过滤筛选后获取得包含竞技体育(Athletic sports)及其子分类的词条语料内容;
第二步、面向语料库的实体抽取:知识图谱是由实体与关系构成图结构的数据信息网,以“实体-关系-实体”的三元组来表示知识图谱的基础结构,三元组中包括了两个有现实语义关系的实体和两个实体间的关系,用G=(head,relation,tail)的形式来表示,其中G表示三元组,head表示头实体,tail表示尾实体,relation表示头实体和尾实体间的关系,每个实体本身还包含了属性及属性值,将实体的属性也转化为与该实体相连的尾实体,并在两者间建立relation关系,实体抽取分为命名实体抽取、属性实体抽取及名词实体抽取三个阶段;
2.1、实体抽取:实体抽取又称为命名实体识别,是从文本数据集中自动识别出命名实体,这通常指的是人名,地名,机构名词以及其它所有名称为标识的实体。该流程可通过使用一些主流的命名实体识别系统来完成,如Standford NER能够将文本中的实体按类标记出来,能够识别包括Time,Location,Person,Date,Organization,Money,Percent等七类属性,使用它作为工具对语料库内容进行命名实体识别,识别出的命名实体标注了它的类型属性,其主要流程为:一、通过工具对语料库内容进行命名实体识别;二、将识别出的命名实体标注它的类型属性;三、根据类型属性对命名实体进行过滤,删除不合适的命名实体,保留其它命名实体的标注,同时将词条名称默认定义为命名实体。
2.2、属性实体抽取:以词条网络语料的信息框为属性的来源,从信息框中提取属性,然后在语料库中截取每个词条的信息框信息,按照信息框结构,提取属性名称,作为所属词条的名称所对应的命名实体的尾实体,不保留属性值,若某词条不存在信息框,则不必为该词条对应的命名实体创建尾实体,以维基百科(Wikipedia)中词条“NationalBasketball Association(NBA)”的信息框(Info Box)为例,它以表格的形式构成,第1行第1列的内容为“Sport”,第1行第2列内容为“Basketball”,第2行第1列的内容为“Founded”,第2行第2列内容为“June 6,1946;73years ago”等,提取第一列内容“Sport”,“Founded”分别与词条“National Basketball Association(NBA)”构建三元组;
2.3、名词实体抽取,包括四个步骤:单词拆分(Split)、词性标注(POS Tagging)、停用词过滤(Stop Word Filtering)和词干提取(Stemming),命名实体抽取步骤中已经标注了识别出的命名实体,因此接下来的操作仅对标注的实体外的语料内容进行抽取;
2.3.1、单词拆分:使用正则表达式设计拆分规则模式,根据空格、符号、段落对语料库内容进行单词拆分,获取单词文本;
2.3.2、词性标注:为获取语料库中的名词,首先需要对文本词汇进行词性标注。词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术,许多单词可能同时含有多个词性,拥有多种意义,而其词性的选择取决于上下文意义,将已进行命名实体标注的语料库作为标注对象文本进行词性标注,根据标注结果查找出名词对象,并在语料库中剔除非名词对象,但不包括非名词的词条名称,此时语料库中保留的是每个词条中的命名实体、名词对象及原有标点,并且所有内容仍然保持原有文本顺序;
2.3.3、停用词过滤:停用词这一名称来源于Stop Word,指代在信息检索中为了节省存储空间和提高搜索效率,在处理自然语言文本时自动过滤掉的字或词。对于一个给定的目的,任何一类词语都可以被选作停用词,在本发明中停用词主要包括两类:一类是人类语言中包含的功能词(Function Words),常为冠词、连词、副词或介词等,这类功能词使用非常普遍,出现频率极高,但又没有确切的实际含义,如a、an、the、which等等;另一类为实词(Content Words),这里指一部分有实际具体意义但又无明确指代或指向的词,如want、welcome、enough、consider、indeed等等。在自然语言处理中,已有了停用词表(Stop WordList),将停用词表作为参照字典,通过单词比对从语料库中删除停用词,进一步精简语料库内容,确保保留语料中无停用词;
2.3.4、词干提取:词干化提取是一种去除形态词缀得到对应词根的过程,是英语等西方语言特有的处理过程,同一个英文单词有单数和复数的变形(如apple和apples)、ing和ed等时态的变形(如doing和did)、人称代词对应不同谓语的变形(如like和likes)等等,这些词虽然形式上有一些细微差别,但是都对应着相同的词根,在计算相关性的情况下应该作为相同的词来进行处理,这时就需要进行词干化处理。波特词干算法(PorterStemming Algorithm)是一种主流的词干提取算法,其核心理念是根据形态词缀的类型,对单词进行分类处理还原,除了部分特殊的变形,大多数的单词变形是有一定规律的,依照规律将形变分为6种类别,词干的提取步骤如下:
2.3.4.1、依照单词变形类别,针对每一种情况进行词缀去除与单词复原,获得语料库中名词对象的词干信息,以减少同词不同形的情况。6种不同单词变形如下:
2.3.4.1.1、复数、以ed和ing结尾的单词;
2.3.4.1.2、单词中包含元音,并以y结尾的单词;
2.3.4.1.3、双后缀的单词;
2.3.4.1.4、以-ic,-ful,-ness,-ative等为后缀的单词;
2.3.4.1.5、<c>vcvc<v>情形下,-ant,-ence等后缀的单词(c为辅音,v为元音);
2.3.4.1.6、<c>vc<v>元音辅音间有超过1对vc的情形下,以e结尾的单词;
2.3.4.2、将还原为词干的名词对象创建为名词实体,并在语料库中更新名词对象,用词干形式来表示。
第三步:结合Word2vec,对语料库进行二次预分组,使用k-means聚类算法构建知识图谱:三元组G的结构为(head,relation,tail),随着head和tail的不同,relation也有多种关系,relation实际上是知识图谱中的关系集合,用以表示多种实体间的复杂联系。其目的在于判断两个属性间是否存在语义关联,即两个实体间是否存在关系,而不关注存在何种关系。通过计算语料库词汇的词向量,将语料库进行二次分组,使用k-means聚类算法来抽取实体关系。知识图谱的构建流程如下:
3.1、使用Word2vec训练词向量:Word2vec是一种词向量工具,它将词表示成词的特征向量。使用Word2vec将词转换成数值形式,使用一个N维向量来表示。例如,使用Word2vec对获取竞技体育(Athletic sports)语料库内容进行词向量计算,将词向量的维度设为300维。词向量维度越高,词的特征表现就会越为丰富,但同时也会增加训练的时间成本和调用模型时的计算时间开销。
3.2、对语料库进行两次预先分组:由于k-means算法的分簇易受数据集本身分布情况影响,为保证核心概念,即目标领域的主要分类对象为聚类中心,不能直接使用k-means聚类,要对语料库进行两次预先分组,其步骤如下:
3.2.1、对语料库一次分组,步骤如下:
3.2.1.1、将先前获取的目标领域标签的第一层子分类标签提取出来,目标领域标签形成核心实体,并生成第一层子分类标签集合Tag,其中共包含了n个子分类标签,每个标签都有一个对应的实体和词向量,并且这些实体都与核心实体相连,构成n个三元组。
3.2.1.2、将第一层子分类标签对象作为质心,计算语料库数据集中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个质心所对应的类中。获得了以第一层子分类标签为质心的n个簇,即n个分组数据集,同时语料库也被分为了n个语料集合。
其中,步骤3.2.1.2中欧式距离(Euclidean Distance)是判断数据点所属类别的重要依据,假设有给定的样本
与
其中i,j=1,2,…,m,表示样本数,n表示特征数,欧式距离的计算方式为:
例如,首先对构建的竞技体育(Athletic sports)语料库实体数据集进行一次预分类,将先前爬取的竞技体育(Athletic sports)维基百科语料标签的第一层子分类标签提取出来,形成标签集合Tag={“Association football”,“Baseball”,“Basketball”,“Badminton”,“Beach soccer”,……},其中共包含了55个子分类标签,每个标签都有一个对应的实体和Word2vec训练出来的词向量,并且这些实体都与核心实体“Athleticsports”相连,构成55个三元组。再将这些标签对象作为质心,计算数据集中各个数据点到各个质心的欧式距离,然后根据就近原则,将数据点分配至每个质心所对应的类中。此时,获得了以赛事种类为质心的55个簇,即55个分组数据集,同时语料库也被分为了55个语料集合。
3.2.2、结合TF-IDF算法,对语料库二次分组。其步骤如下:
3.2.2.1、通过计算TF-IDF查找出每个语料集合中的关键词。
其中,步骤3.2.2中TF-IDF算法是一种用于评估一个词对指定文档的重要性的数值统计方法。词频TF(Term Frequency)指给定词在给定文档中出现的频率,其计算公式为:
nx,y指文档y中术语x出现的次数,∑knk,y指文档y中总的词汇数。逆向文档频率IDF(Inverse Document Frequency)是用于评估单词或术语提供的信息量,即该术语在整个文档中是否常见,其计算公式为:
N指文档的总数,nx指出现术语x的文档数量,文本中每一个词条作为一个文档。最后共同计算TF与IDF的值,获得TF-IDT的公式为:
TF-IDFx,y=TFx,y×IDFx
3.2.2.2、对每个语料集合的关键词进行人工筛选,去除与当前语料集合的核心实体相关性低的关键词,保留相关性最高的部分关键词,保留关键词数量与提取出的所有关键词的整体质量相关。
3.2.2.3、将每个语料集合中提取出的并通过筛选的关键词所对应的实体与当前语料集合的核心实体构建三元组。以这些关键词为每个语料集合中的质心,再进行一次集合中的数据点到各个质心的欧氏距离计算,并对数据点进行分类。原语料库此时已经被划分为多个小语料集合。
例如,通过TF-IDF计算查找出每个竞技体育(Athletic sports)语料集合中的关键词,例如Association football对应的语料集合中,有“football”“nation”“match”“team”“competition”,但也有些词汇虽然出现频繁但并无太大的相关性,如“list”“finals”“body”等。所以对于每个语料集合的关键词需要人工介入筛选,去除与当前语料集合的核心实体相关性低的关键词,保留相关性最高的部分关键词。将每个小语料集合中提取出的并通过筛选的关键词所对应的实体与当前语料集合的核心实体构建三元组。然后以这些关键词为每个语料集合中的质心,再进行一次集合中的数据点到各个质心的欧氏距离计算,并对数据点进行分类,划分成多个小语料集合。
3.3、通过k-means聚类算法对小语料集合自动查找聚类中心,进行分簇,同时构建三元组,步骤如下:
3.3.1、根据小语料集合的大小决定k的大小,集合越大k值越大。
3.3.2、经过k-means聚类计算得到的质心所对应的实体将与上一层分组时的质心所对应的实体构建三元组。
其中,步骤3.3.2中k-means算法是一种无监督聚类算法,使用语料库经过Word2vec所训练出来的词向量来代表每一个词。将每个小语料集合作为数据集,使用k-means聚类算法进行聚类计算。k-means聚类的步骤如下:
3.3.2.1、选取数据集中的k个对象作为初始中心,每个对象代表一个聚类中心;
3.3.2.2、词向量样本中的对象,根据它们与这些聚类中心的欧氏距离,将它们分到距离它们最近的聚类中心所对应的类;
3.3.2.3、更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
3.3.2.4、判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回3.3.2.2。
3.3.3、将新的分组作为数据集合,再次调用k-means算法,重复步骤3.3.1~3.3.3,直至每个分组仅含有小于某个阈值Z的元素数量。
3.3.4、将每个分组中的数据点所对应的实体与当前质心所对应的实体构建三元组。
至此语料库中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱。由于自动聚类所查找出的簇心与分簇情况,有可能会产生相关性较弱的实体关系,因此知识图谱构建完成后需要人工校对筛查,去除相关性低的实体关联,以提高知识图谱的质量。
例如,原竞技体育(Athletic sports)语料库此时已经被划分为多个小语料集合,接下来通过k-means聚类算法自动查找聚类中心,进行分簇,同时构建三元。指定k的大小由语料集合的大小决定,越大的集合k值越大。最后计算得到的质心所对应的实体将与上一层分组时的质心所对应的实体构建三元组。然后将新的分组作为数据集合,再次调用k-means算法,重复上述操作,直至每个分组仅含有小于10个元素数量(此时阈值Z=10)。最终每个分组中的数据点所对应的实体与当前质心所对应的实体构建三元组。至此,竞技体育(Athletic sports)语料库中所有的实体都与其他实体建立了关系,它们对应构成的三元组相互组合,从而构成了知识图谱。但自动聚类所查找出的质心与分簇情况有时可能会产生相关性较弱的实体关联,因此最终还需要人工的校对筛查,去除相关性极低的实体关联。
第四步、参照图2,构建可视化模型树(VisualModel Tree,简称VT):对各种可视化图形进行分类,归纳总结各类图形的属性和结构特征,通过创建一种可视化模型树(VT),来形式化地表达各类图形信息,步骤如下:
4.1、定义VT包括基础属性(BASICATTRIBUTE)和可视结构(DVSCHEMA)两个部分,形式化定义如(1),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;
(1)、VT::=<BASICATTRIBUTE><DVSCHEMA>
4.2、BASICATTRIBUTE包括三个属性:标题(title)、子标题(subtitle)、属性(attributes),形式化定义如(2),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;
(2)、BASICATTRIBUTE::=<title><subtitle><attributes>
4.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形(General)、拓扑图(Topology)、地图(Map)、文本图形(Text),形式化定义如(3);
(3)、DVSCHEMA::=<General><Topology><Map><Text>
4.4、步骤4.3中的四种基础类别下属均分别包含两个属性:图形类型(VType)和图形结构(StructModel),VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(4),“A::B”表示“A包含了属性B”;
(4)、DVSCHEMA::=<General><Topology><Map><Text>::<VType><StructModel>
步骤4.4中,四种基础类别的VType属性的所属图形如下:
4.4.1、General包括柱状图(BarChart)、折线图(LineChart)、饼图(PieChart)、雷达图(RadarChart)、散点图(ScatterChart);
4.4.2、Topology包括网络图(NetworkChart)、树图(TreeMap)、面积树图(TreeMapChart);
4.4.3、Map包括地区地图(AreaMapChart)、国家地图(CountryMapChart)、世界地图(WorldMapChart);
4.4.4、Text包括词云(WorldCloudChart);
4.5、步骤4.4中四种基础类别均有各自的映射关系(Mapping),描述了各类图形的数据结构、数据维度、图形结构关系、数据映射位置信息;根据Mapping信息并结合图形的数据结构,可以抽象出各类图形的基本可视化结构StructModel。
所述4.5中,各类图形的映射关系Mapping及基本可视化结构StructModel定义,步骤如下:
4.5.1、General类型中的图形通常用于表示二维数据或三维数据,可用二元组(XAxis,YAxis)或三元组(XAxis,YAxis,ZAxis)来表示信息,此类图形的Mapping结构如(5),其中LegendName表示图例名称,以ARRAY类型来存储各分组信息;根据Mapping结构可抽象出基础StructModel的结构如(6),StructModel的子节点为临时根节点Root,Root包含两个子节点:键值对K_V与图例节点LegendNode;
(5)、Mapping::=<XAxis,YAxis,[ZAxis]><LegendName>
(6)、StructModel::=<Root::<K_V><LegendNode>>
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;
(7)、Mapping::=<K_V><children::<K_V>>
(8)、Mapping::=<Nodes::<key,[value]><Links::<source><target>>
(9)、StructModel::=<Root1::<K_V><children::<K_V>>><Root2::<Nodes::<key,[value]>,<Links::<source><target>>>
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;
(10)、Mapping::=<Data1::<PlaceName><value>><Data2::<lng><lat><value>>
(11)、StructModel::=<Root1::<K_V>>,<Root2::<lng>,<lat>,<value>>
4.5.4、Text类型中的图形常用二元组(Keyword,frequency)来表示关键字频率,此类图形的Mapping结构如(12),其中Keyword为文本中提取出的词汇,frequency表示该词汇在文本中的出现频率;根据Mapping结构可抽象出基础StructModel的结构如(13),StructModel的子节点为临时根节点Root,Root包含了键值对K_V;
(12)、Mapping::=<Keyword><frequency>
(13)、StructModel::=<Root::<K_V>>
第五步、基于网络语料知识图谱的数据可视化优化匹配方法:定义M-JSON为RESTWeb服务返回的JSON的原型结构;将Web数据原型结构M-JSON与可视化模型树VT中的每个StructModel依据数据结构进行匹配,返回的结果是符合条件的候选坐标轴/图例的属性组合构成的集合;在结构匹配的基础上,利用第三步中构建的知识图谱,查询匹配出来的候选坐标轴/图例的属性组合否存在实际语义关联,根据查询结果优化匹配,选取有效的维度组合,以提升自动化生成图形的精确率(Precision),步骤如下:
5.1、将Web数据原型结构M-JSON与可视化模型树VT的StructModel依据数据结构进行匹配,M-JSON中匹配出m个符合条件的候选坐标轴/图例的属性组合结果,每个组合结果表示为一个含键值对L和一个属性名A组成的二元组,其中L和A分别与步骤4.5.1中的LegendNode和K_V对应。
5.2、结合构建的网络语料知识图谱对m个符合条件的属性组合进行匹配优化,过程如下:
5.2.1、步骤5.1中每个匹配结果以二元组的形式来表示:P=(L::name,A::name)。将每个匹配结果Pi=(Li::name,Ai::name),转化为三元组形式Gi=(Li::name,R,Ai::name)放入集合S={G1,G2,...,Gm}。
5.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;否则,result为0。
5.2.3、集合S中的对象查询完成后,返回集合Q={(Gi,resulti)},并将Q用于判断当前符合条件的二元组是否存在语义关联,作为候选坐标轴/图例的属性组合匹配结果的判定。因此,只有结构匹配并且resulti为1时,才判定匹配成功。由此提高数据属性匹配的准确率,减少无实际意义图像的生成率。