一种基于感知数据的标签提取方法与流程

文档序号:14043610阅读:284来源:国知局

本发明属于标签提取领域,尤其涉及一种基于感知数据的标签提取方法。



背景技术:

随着互联网、物联网、云计算等技术的快速发展,以及智能终端、网络社会、数字地球等信息体的普及和建设,全球数据量出现爆炸式增长。在浩瀚的数据集合中找到自己想要的信息所耗费的成本越来越大,人们陷入数据丰富但有效信息获取困难的窘境,如何从庞大的数据中快速发现人们真正感兴趣的知识信息逐渐成为大家关心的问题。而其中传感器或移动设备所产生的数据格式多种多样,产生的数据既有数值型数据又包括文本型数据。将实例记录通过比较它们间的相似度从而完成聚类并提取出类别标签来表述该类信息是解决这类问题的主要方法,然而无论是实例的相似度计算还是聚类在标签提取方面并没有什么针对性的算法。

现在的信息载体结构,主要分为数值型和文本型。无论是单一的文本还是单一的数值信息本身具有的语义信息是比较片面的,将其与其他类型中提取的信息相结合后,才能得出该记录的较为全面的信息。通过对记录信息的处理分析,从而进一步推测出其实际的内容语义是标签提取领域的核心问题。在自然语言处理方面,语言学研究尝试引入丰富的语言学特征来提高信息分析的性能,但效果并不理想,繁杂的语言学特征严重降低了系统效率。而基础的统计方式即是把词频的统计作为唯一的语义依据,这放弃了大量的文档应有语义效果不佳。之后主题模型应运而出,它在文档和词之间加上了主题中间层,即文档由主题构成,而主题又由若干词组成。虽然主题模型由于在词和文档之间加入的主题的概念,可以在一定程度上解决一词多义和一义多词的问题。但在处理较为简短的文本数据上,现有各类自然语言处理算法都难以准确处理,最终提取标签随机性大且都不相关难以扩展和管理。而在数值型数据处理方面,数值型数据在静态时间下,同样难以捕捉到在时间维度上的语义特征,而且关于数值数据的相似度几乎很难合理的定义。将大量的感知数据或其他自然语言数据的文本语义用多个标签将以表示,从而可以极大减少用户或其他系统查询与管理的时间和效率。



技术实现要素:

本发明提供一种基于相似度计算和聚类的标签提取方法,对感知数值数据和与其相关联的文本数据,根据计算数值数据之间的相似度然后聚类获得的数值标签与根据文本提取的文本标签,运用算法将感知数据转换成清晰简单的文本类型标签。

一种基于感知数据的标签提取方法,该方法的实现步骤为:

步骤一:对象数据包括数值数据和文本数据,标签提取首先将这两部分数据分开处理,提取出其中各自标签后,再通过概率统计将其关联。在数值标签部分,根据外貌相似和性格相似,设计一种标量相似度和矢量相似度结合的对象相似度计算方法,计算对象之间的相似度;

步骤1.1:数值实体的相似度指的是某实例语义间的相似度,相似度越高代表实例越有可能属于同一个类。数值实体由若干属性组成,而其中最终的属性值既包含单个数值又包含由多个数值组成的数值序列,由此数据实体的相似度计算分为单个数值相似度计算和数值序列相似度计算以及结构匹配。

在比较两个单个数值是否相似时,主要考虑两个数值之间的差值以及自身大小特征。且在当两数值差距较小时即差值小于较小数值10%突出相似度的变化趋势,在差距较大时即差值大于较小数值10倍以上减少相似度的变化等。例如虽然(10,20)与(1010,1020)之间的差值同为10,但相似关系前者远远低于后者。由此提出单个数值相似度s计算公式:

其中,x、y为任意两个大于零的数,max()为取较大值函数。该公式满足以下几点:

1)取值范围在0-1之间;

2)两个单个数值之间的相似度与两数之间的差值成反比,且与自身数值大小形成参照;

3)该函数为对称函数,即s(x,y)=s(y,x);

4)两个单个数值之间的相似度变化趋势随着差值增大而减小;

以上几点基本符合日常认知,在得出各属性值间的相似度后,将各属性值相似度组合成新的数值序列,通过上述数值序列相似度计算方法计算新序列间的相似度从而得出最终实体间的相似度结果。

步骤1.2数值序列相似度计算;

数值实体的相似度重点在于数值序列间的相似度计算,数值型序列的特征主要有两点,一是序列的数值特征s1,二是序列的波形特征s2。数值特征由序列的平均值、最大值、最小值、方差组成,序列的波动特征则利用函数拟合或余弦相似度完成计算,接着通过权衡两个特征值得到最终的相似度值。而非时序序列则由一个个的单独的数值属性值组成,并没有时序序列中的波形特征,只需根据数值特征计算公式得出各属性值间的相似度在进行加权求和即可。

具体计算过程如下:对于两个长度为n的序列x<x1,x2,...,xn>与序列y<y1,y2,...,yn>,取序列平均值数值特征为s1,取序列间的余弦相似度做为序列波动特征s2,则最终相似度结果为s=θ1*s1+θ2*s2。其中θ1,θ2为权值参数,且和为1。接着各序列减去本序列中的最小值(可能为正也可能为负),即x=x-min(x),y=y-min(y)。这使数值特征与波形特征间的交叉影响最小,提高两序列间数值特征与波形特征的差异,同时也是为了预防数值负数或其他等问题。然后根据单个数值相似度计算公式求出数值特征方面的相似度:

其中,mean()为求平均值函数,max()为取较大值函数。由公式简单推导就能证明s1,s2取值范围均为(0,1),且也可保证最终的相似度取值区间在(0,1)之间。最后借助监督学习算法例如梯度下降训练求得最佳参数值θ1、θ2,根据公式求得最终相似度。

步骤二:数值特征标签提取;

特征标签提取是通过聚类来选出质心来做为类的最终标签,所以聚类的好坏直接关系特征标签提取的效果。标签都代表着某类别最突出的特征点,即在语义上与本类中的所有实例的差别最小。大多数聚类算法都遵循着这个原则,但实际上数值特征标签本身并不需要表示出本簇的特征语义。由此本次聚类算法加入与相邻簇质心的距离特征,旨在选出最佳的类划分点。序列特征标签提取过程主要分为聚类以及质心的选择两部分。

步骤2.1聚类;

聚类过程是基于数值序列的相似度计算将记录间的相似度当作距离,即dist(x,y)=s(x,y)。首先借助基于密度的算法思想完成初步分类,设置参数半径r以及最小用例个数minpts,将相似度大于r且案例个数大于minpts的点归为一类,并选取簇内距离最小的点作为初步质心。即:

其中xi为任意一个数值实体,xn为除xi外的任意实体,s为相似度计算函数。

步骤2.2调整质心;

由于在利用系统进行结果预测时,是以与标签的相似度来当作距离进行归类的,也即是说一个类的的空间是以该类的标签为中心以该类标签和相邻类标签的距离的一半为半径的类圆形空间。所以在完成聚类后,为找出能够使区域区分最佳的点作为质心,加入与相邻簇质心的距离这个特征,即依据公式f=θ1*c1+θ2*c2,c1:本类成员距离,c2:与相邻类质心的距离,θ1、θ2为权值参数,选取f值最大的点作为类别标签。按上述步骤依次迭代直至收敛,将这时的质心做为最终的类别标签。

步骤三:文本处理;

由于本次的文本目标是简短的文本对象,按照以往的标签抽取模式很难定位到准确的语义标签,由此本次文本标签抽取主要是基于词频统计和主题词库的匹配。主要是通过处理文本数据,抽取出其中的主题并将主题词做为相应数值实体的语义标签。整体结构为三层贝叶斯网络,具体为属性词层、主题词层以及类别层。其中文本标签提取对应属性词-主题词层,数值文本语义关联对应主题词-类别层。

步骤3.1:文本分词;

首先用停止词将文本进行分块,然后通过词库对词块进行匹配,匹配成功的即为主题词和剩余的当作属性词。最后通过对属性词做词频统计,将词频大于阈值α和词频小于阈值β的属性词剔除并加入停止词。

步骤3.2:主题贡献度计算;

依据属性词与主题词单独出现或同时出现的频率,计算出属性词与主题词之间的关系度;采用类似tf-idf值作为属性词对主题词的贡献度,计算公式如下所示:

tfidfi,j=tfi,j*idfi(7)

其中,ni,j为属性词i、主题词j同时出现次数,nj为主题词j出现总次数,d为文档总数,wi为属性词i的出现的总次数。

步骤3.3:文本标签提取;

本次文本标签提取与自然语言处理技术不同,主要针对的是较为简短且语义方向确定的文本数据,例如微博、病例或其他评论等等。

当提取出主题词时,直接选取该词做为标签并更新相应属性词的贡献度,当没有匹配成功的主题词时,根据各属性词对主题词的贡献度选择贡献度最高的一个或多个主题词做为文本标签。

步骤3.4:数值标签与文本标签的语义关联;

语义关联主要针对由同一个实例生成的数值序列和文本数据的语义关联。由于事先数值实例是经过聚类,而文本数据是经过主题词提取的。所以最终形成的数据结构是一个类别对应多个主题词,而一个主题词也可能对应着多个类别。

若直接将一条数据中的数值实例的特征标签与主题词一对一对应的关联起来,则会损失大量的其他关联信息。所以本次主题词与类别是多对多的结构关系,采用概率的形式最大程度的保留语义信息。

该贝叶斯网络的公式为p(c,t,w)=p(w)*p(t|w)*p(c|t),其中c为数值序列类别,t为主题词,w为属性词。通过统计分析即可得出各相应概率值,其中在给定数值实例特征标签,预测主题词(例如病情,借款结果等)公式如下所示:

当给定一个类c时,通过比较p(c|t)*p(t)的值大小,返回值最大的一个或多个文本值即可。

附图说明

图1:系统流程图。

图2:系统训练流程图。

图3:聚类算法实施举例图,(a)原始数据集,(b)完成初步分类,(c)选取初始质心,(d)迭代获得最终质心。

图4:数值-语义关联结构图。

具体实施方式

下面结合相关附图对本发明进行解释和阐述:

本发明采用的数据集是半结构化的感知数据,即既包含数值数据又包含文本数据。

步骤一:根据人与人之间的相似所启发,将相似度分为矢量相似度和标量相似度两个特征,设计数值实例间的相似度计算公式,做为各个节点之间的距离;

根据公式(1)计算两个数值序列的标量相似度,根据公式(3)计算两个数值序列间的矢量相似度。最终根据公式s=θ1*s1+θ2*s2,求出最终相似度。其中θ1,θ2为权值参数,且和为1。

首先计算出序列x1,x2的均值mean(x1)=3.03571428571,mean(x2)=2.96428571429,然后减去自身最小值得出以下新的序列:

x1[4.0,2.0,4.0,3.0,3.5,5.0,3.0,4.0,3.0,3.0,4.0,1.0,0.0,3.0],

x2[6.0,6.5,5.5,4.0,2.0,4.0,1.5,1.5,0.5,3.0,1.0,0.0,1.5,4.5]

接着根据公式求得s1=0.963211521552,s2=0.823280350237,各取权值0.5求得s<x1,x2>=0.5*0.963211521552+0.5*0.823280350237=0.893245935895。同理可得s<x2,x3>=0.371814751237,由对比上图可知结果符合人们的认知。

步骤二:数值标签提取;

本次标签的提取主要采用基于密度的算法思想来完成聚类,而后再综合考虑簇内距离和相邻簇质心距离获得最终质心做为标签。

步骤2.1聚类;

假设现有用例数据如图3(a)所示,首先设置参数半径r,以及最小用例个数minpts。对于用例x1,x2,若s(x1,x2)>r,且x1(或x2)周围相似度大于r的用例个数大于minpts,则表示x1(或x2)到x2(或x1)是密度可达的。依据上述计算过程,将所有可达的用例分为一类完成初步分类如图3(b),选择簇内距离之和最小的用例做为初步质心如图3(c)所示。

步骤2.2调整质心;

在完成初步质心的选择后,接下来进入质心的调整阶段。首先依据实际训练效果设定簇内距离与相邻质心距离的比重,假设现有5个簇(c1,c2,c3,c4,c5),初始质心分别为c1,c2,c3,c4,c5。首先开始调整簇c1的质心,对于每个在c1的点,依据公式f=θ1*d1+θ2*d2计算出每个点的f值,其中d1为本类成员间的距离之和,d2为该点与之距离最小的相邻簇质心距离,θ1、θ2为相关权值参数。值得一提的是在计算d2的值时,同一个簇内的点与之距离最小的质心未必在同一个簇内,也就是说需要计算出该点与所有簇的质心的距离并选出距离最小的点,即将簇c1的质心调整为f值最小的点,即:

其中,xi为任意实例,xj为除xi外任意实体。两个按照上述依次调整剩余簇的质心c2,c3,c4,c5,然后开始迭代直至平稳,最终将各个簇的质心返回,最终结果如图3(d)所示。

步骤三:文本标签提取及关联;

本次文本标签抽取主要是基于词频统计和主题词库的匹配来完成,词库分两类,一类是停止词词库,另一类是主题词词库。

步骤3.1文本分词;

输入文本,调用停止词将文本进行分块,初始的停止词词库可以直接调用现有的停止词词库。然后通过主题词库对词块进行匹配,匹配成功的即为主题词和剩余的当作属性词。最后通过对属性词做词频统计,将词频大于阈值α和词频小于阈值β的属性词剔除并加入停止词。

步骤3.2:主题贡献度计算;

依据各个词单独出现或同时出现的频率,计算出属性词与主题词之间的关系度;通过调用公式(5)、(6)、(7)完成属性词对主题词的计算。在完成属性词的贡献度计算后,形成主题词-属性词(tw)的矩阵,其中tw(i,j)表示属性词j对主题词i的贡献度。例如,假设在40000个文件中,主题词“运动”出现50次,词“篮球”出现400次,其中“运动”,“篮球”同时出现20次。则tf=20/50=0.4,idf=log(40000/400)=2,则最终词“篮球”对主题“运动”的贡献度为0.4*2=0.8。

步骤3.3:文本标签提取;

文本标签的提取情况分两种,一种是分词中含有主题词词库中的词,这时直接返回主题词即可。另一种是分词中不包含主题词库中的主题词,这时通过对该文档中的属性词进行主题词贡献度的统计,选择贡献度最高的一个或多个主题作为该文档的标签。

步骤3.4:数值标签与文本标签的语义关联;

一个数值标签对应一个或多个主题词,而一个主题词对用一个或多个属性词。其中,主题词-属性词(tw)矩阵存储主题词、属性词之间的关系,同理通过词频统计的方法可得数值标签(类别标签)-主题词的关系概率矩阵,最终生成如图4所示的总体结构图。当输入一个数值序列x1时,根据公式(8)即可获得主题词标签,即将数值标签转为文本标签。假设在现有医疗数据库中,心脏病的概率p(t1)=f心脏病/f总=0.02,肺结核的概率p(t2)=f肺结核/f总=0.06;其中心脏病t1的心电图到序列x1的概率ct(t1,x1)为60%,ct(t1,x2)的概率为40%,肺结核t2的心电图到序列x1的概率ct(t2,x1)为30%,ct(t2,x2)为70%。在通过将用户的心电图送到数值标签库匹配得出的结果为x1,则p(t1|x1)=ct(t1,x1)*p(t1)=0.012,p(t2|x1)=ct(t2,x1)*p(t2)=0.018,由此返回肺结核标签。

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