当前位置:文档之家› 大数据中的语义识别

大数据中的语义识别

—1— 大数据中的语义识别 【摘要】数据管理是一个在商业和政府中变得越来越重要的课题。数据质量代表一个很大的挑战,因为数据质量不高所带来的间接损失是非常大的。大数据是企业决策的基础,但是单纯的数据量的积累不会对企业产生任何益处,只有建立适当的分析模型,并运用相应的技术手段,对大量的数据进行有效地深加工,发现隐含在大量数据中的信息并加以利用,进而指导企业做出相关决策,才能将大数据的真正效用发挥到极致。高质量的数据是大数据发挥效能的前提和基础,强大、高端的数据分析技术是大数据发挥效能的重要手段。 【关键词】数据量,大数据,数据质量分析,数据词典,正则表达式 对大数据进行有效分析的前提是必须要保证数据的质量,专业的数据分析工具只有在高质量的大数据环境中才能提取出隐含的、准确的、有用的信息,否则,即使数据分析工具再先进,在大数据环境中也却只能提取出毫无意义的“垃圾”信息,那大数据的意义又何在?因此数据质量在大数据环境下尤其重要。为提高数据质量,现在提出为数据添加语义的方法,帮助用户识别大数据的模式。这种方法的独特性在于利用了数据的语义价值,检测完数据后,通过数据语义分析提出一个数据模型,这样就可以对数据更方便的处理。 1.数据语义介绍

在商业管理中,职业经理人必须有一个统一的视野和有价值较大的信息,从而在恰当的时机做出正确的决策。数据质量管理在企业中已经非常重要了,目的是通过使用指示器这个易于交流,廉价而又计算方便的技术,来提供高精度,全面而又及时的信息。在大数据时代包含多种数据源的信息的质量成为了一个巨大的挑战。 数据质量和语义方面很少加入论文文献。现在的困难是用语义学提高数据质量。在制定纠正数据中的错误的策略时,对数据模式的误解将是我们成功解决问题的重大障碍。频繁的使用元数据不足于让我们正确的理解数据的真正含义。 对于一个给定的数据源S,我们的方法是提出一个语义数据分析来得到对数据定义的更好的了解,并且提高对错误数据的检测和纠正。 但是没有可用的模式来理解数据的意义,更别说纠正错误了。目前很少有数据工具能够将字符串“pekin”(法语‘北京’的意思)识别为“Beijing”,也不能将“Londres”(法语‘伦敦’的意思)识别“London”。为了解这些代表同个类别和子类别信息的字符串,还需要其他的信息。另外还有一些相似的情况,如要将16˚C的语义理解为16摄—2—

氏度。 令S为一个非结构化数据集,多个种类数据相结合的结果,S还可以看作是字符串的集合,其中的内容用分号隔开并且由列项表示其包含的内容,每一项记录S的一个数据架构。我们定义的S并没有明确的结构,这会导致一个语义数据操作问题。S可能包含不一致的内容,这种情况下需要回答三个疑问:什么是字符串语义?应当使用什么样的语言?什么样的值是能够使用的,什么样的是不能使用的(即值的有效性和无效性)? 图1中给出了一个S的样本

图1:数据源S的样本 可以看到数据源S中有几个列项组成,S被记为(Coli, i = 1;7) 这种形式。 在S中,观察第四列,“Beijing”和“London”在语法和语义上都是有效的,但“pekin”和“Londres”在语法上是有效的,在语义上却是无效的。 COL2列中大多数都是显示的日期信息,因此其中的“13”会被认为无效的(语义上的)。S中不仅有日期信息,还有其他的很多未知信息,这就证明我们需要理解更多的语义并纠正错误的数据。 2.元信息

定义: 元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。 meta是html语言head区的一个辅助性标签。 我们需要深入研究基于语义的新种类的大数据ETL(抽取,转换,加载)这样就能够进行数据分析,数据清理和数据扩充。 —3—

数据分析是数据处理过程的第一步(图2)是数据源用于确定数据质量问题的分析,而且是一种量的分析,包括了叙述性的分析,例如:模式,表,域和数据源的定义。

图2:数据质量管理工具 现在的数据分析工具提供了统计数据的分析,并没有解决数据语义方面的分析。由此这里就介绍一下用于扩充分析过程的语义指示器。 对于语义数据处理,我们提出给每个数据源,一个错误报告,更新的日志和使用元信息的新语义结构。错误报告包括数据源中的多种异常:同一列中出现一个以上类别和语言,不一致的数据格式,副本和空值。 更新的日志是一个更新行为的集合,这个集合用于数据源,例如:翻译后的语言,均化后的格式。这些更新每次覆盖一列。为了在各列间及时进行更新需要使用函数依赖的概念。接下来将着重描述语义数据分析过程的细节,尤其是元信息,如图3

图3:语义的数据分析过程 —4—

元信息有三个组件组成,Meta-Schema-Ontology (MSO),Meta-Repository(MR),MR是由数据词典,正则表达式和指示器列表组成。 2.1 Meta-Schema-Ontology(元模式一体) 作为信息集,数据库可以使用不同的方法去描述,这个不同主要是概念和属性。MSO是用来存储元结构中所有等价的描述的(图4)

图4:MSO统一建模语言类图表 MSO是一个能够作为本体进行管理的知识集,本体是一种正式的语言,定义各项内容之间如何结合使用是一种语法。MSO能够创建很多实例,如:“person”“organization”和“Invoice”这三个概念,他们各自都有很多同义词,比方说人的同义词:客户,大人,小孩等,“人”的概念被若干个属性(如:姓名,住址,出生年月)定义,这就暗示人的每个同义词可以用相似的方式定义。 本体使用开放源protege工具来查看的。(图5) 知识可以通过数据库的不同描述而得到演化,可以被表示一个元知识库。 —5—

图5:Protégé下的MSO实例 2.2 元知识库(MR) 元知识库包含数据词典,正则表达式和指示器列表。 有效的字符串可以被归为一个类别,这些字符串可以使用多种语言,这样形成的这些类别的集合可以被视为数据词典。例如,包含通常描述的机场,大学,餐馆和医院的名称字符串所组成的的类别,可以成为一个数据词典。令catext为被扩展定义的类别的集合,catext={cati,i =1;n},其中cati属于{国家,性别,网站,电话......},对每个cati,子类别subcati={catij,j=1;m}就能够定义了。我们将数据词典定义为三类(类别,信息,语言)(图6)

图6:数据词典样例 —6—

2.2.2 正则表达式(RE) 通过使用正则表达式来定义一个类别Kati,从而起到检查字符串的语法和语义的作用,令Katint为此类别的集合。则RE可以被定义为一个{类别,RE}的集合。RE={Catregexi/Catregexi (Kati, Regexij); i = 1...p, j = 1...q}实例如图

图7:正则表达式集合实例 2.2.3 指示器 语义数据分析的研究是基于应用数据源的指示器集合,此集合由三种类型的指示器组成:统计指示器{Istati, i = 1;p},语法指示器(ISYN1,2)和语义指示器(ISEM1,2),如图8示:

图8:指示器集合 3.语义数据分析过程

先赋予语义数据分析算法一些符号和定义。每一个属于数据源S的列Ci,都有一个—7—

值Vi(i = 1...n)集合,每一个Vi有一个数据类型,如{String, Number, Date, Boolean}。 定义1、值V的语法有效性:如果v ∈ RE且v ≈ w ∈ DD则v是语义有效的。 定义2、值V的语法无效性:如果v ∉ RE 且v ∉ DD则v是语义无效的。 定义3、主类:令Cati(v)为一个给定属性的语义正确值的数目,若Cati(v)>Catj(v),则Cati(v)是主类,“Number of categories”为检测到的类别数量。 定义4、值V的语义有效性:如果v ∈ Cati,则V是语义有效的,且Cati是主类。 定义5、值V的语义无效性:如果v ∉ Cati,则V是语义无效的,Cati是主类。 3.1 算法分析 语义数据分析算法的原理是核查值是否属于元数据库,目的是确定V的语法和语义的有效性。如图9示

图9:语义数据分析算法 输入数据源s 和一些元信息,算法返回一些表格(Tk, k = 1,7),这些表格包含指示器结果,无效语义数据,有效语义数据,无效语法数据,有效语法数据和新的语义结构。语义识别结构函数为每个正在使用RE或DD的数据找一个类别和语言。接下来的三个步骤会阐述函数的原理。 第一步:用以上的定义核查v在语义和语法上是否有效。 第二步:分别处理语义无效值和语法无效值。 第三步:用若干方法处理语法正确但语义错误的值,处理方式如:均化,翻译和标准化。 —8—

不管在什么情况下,语法无效值都是很容易找到的,可使用正则表达式来进行判断,处理后的结果可以用来丰富数据词典,由于有可能一个列中有多种语言,因此不仅要选择主语言列而且要选择源数据的主语言,在语义语言函数中会展示这个原理。 函数的细节显示如下: Function statisticIndicators (Column C) //return statistical indicators results Begin For each Id from I do //d=1..18 Add(Id (C), T1c) //statistic indicators: total number of values, number of null values„ end for EndstatisticIndicators ------------------------------------------------------------------------------------------------------------------ Function semanticLanguage (Data Source S’) //return the dominant language Begin For eachLanguagei from T7 (i=1..n) //T7 is the semantic structure ni:= Count the number of occurrences (Languagei) End for DominantLanguage := Language where Max(ni) End semanticCategories Function semanticCategories (Column C) //return syntactic and semantic indicators results and semantic structure Begin For each vjfrom C do //j=1..m (m number of tuples) Ifvj∈ RE thenadd(vj, Catj, Langj) // vj∈Catjandvj∈Langj elseifvjcheckSpelling=true

相关主题