融合Wikipedia分类及显式语义特征的短文本检索方法与流程

文档序号:17890193发布日期:2019-06-13 15:33阅读:307来源:国知局
融合Wikipedia分类及显式语义特征的短文本检索方法与流程

本发明涉及文本检索的技术领域,尤其涉及一种融合wikipedia分类及显式语义特征的短文本检索方法。



背景技术:

随着互联网的快速发展,短信、微博和微信等已成为人们发布信息、进行社交活动的主要平台,同时也是政府、企业及时公开发布内部信息的重要通道。这些新型社交媒体的普及,使得网络信息空间出现了大量短文本数据,如即时聊天记录、新闻标题、新闻评论、产品评论等。目前,短文本理解已成为计算机和信息技术等领域的一个重要研究课题,其中短文本理解包括短文本检索、分类、聚类、关联度计算、观点挖掘等。与常见的普通长文本不同,短文本通常不遵循语法规则,并且由于长度较短,从而没有足够的信息量来进行统计处理,因此机器很难在有限的语境中进行准确的推断。鉴于短文本所具有的长度短、信息量少、特征稀疏、语法不规则等特点,导致目前已有的自然语言处理技术很难直接应用于短文本理解。此外,因为短文本提供的信息太少,因此自动化的短文本理解需要依赖外部语义知识源。以已有的研究主要使用的语义知识源包括wordnet、hownet(知网)、领域本体(domainontologies)等,近几年随着web2.0的发展,各种语义信息大量出现,如各种百科知识网站,同时也伴随出现了通过这些海量语义信息自动获取得到的新型语义知识源,如linkeddata链接数据和yago本体等。显然,自动化的短文本理解及检索是一个充满挑战性的问题,并且具有很好的应用前景。

自动化短文本理解及检索的核心思想是判断查询输入与短文本或者多篇短文本之间语义关联度的大小。然而不管是查询输入还是短文本,它们都是由词语或者概构成的。因而对查询输入与短文本或者多篇短文本之间语义关联度的计算,最终还需归结为对概念语义关联度的计算,当然还要考虑短文本的语法结构。因此,要计算用户关键词与短文本之间的语义关联度,需要构建基于概念的短文本表示模型。

当前短文本自动化理解方法主要分为三种语义模型:隐性(implicit)语义模型、半显性(semi-explicit)语义模型和显性(explicit)语义模型。隐性语义模型将短文本映射为一个语义空间上的隐性向量,该向量的每个维度所代表的含义无法被人们直观的解释,只能用于机器处理。该模型中具有代表性的有较早的隐性语义分析(latentsemanticanalysis,lsa)、超模空间模拟语言模型(hyperspaceanaloguetolanguagemode,hal)以及在此基础上发展起来的神经网络语言模型(neurallanguagemodel,nlm)和段向量模型(paragraphvector,pv)。半显性语义模型同样采取将短文本进行向量表示的方法,但与隐性语义模型不同,半显性语义模型中向量的每个维度是一个主题(topic),因此该模型也称为主题模型。这种主题通常是一组词或概念的集合。虽然可以通过该主题推测对应维度的大概含义,但这种推测出的语义仍然不是确定的。较早的主题模型是以lsa为基础的,称为plsa(probabilisticlsa)。随后,blei等人又提出了更为完善的隐式狄利克雷模型(latentdirichletallocatio,lda),解决了plsa缺乏假设主题先验分布的问题。与上述两种模型不同,显性语义模型更注重于将短文本转化为人和机器都可以理解的向量空间。在该模型下,短文本向量的每个维度都有明确的语义,通常是一个确定的“概念(concept)”。这样人们很容易对该向量进行理解并做进一步的调整和优化。该模型有两种常见的构建方法:显式语义分析方法(explicitsemanticanalysis,esa)和概念化方法(conceptualization)。

从采用的策略和方法上看,当前对短文本检索的研究主要分为三类:基于网页查询的方法、基于分类系统或主题的方法以及基于链接的方法。基于网页查询的方法将短文本作为查询输入提交给搜索引擎(如:google),根据搜索返回页面的标题及片段,将这些内容添加到短文本当中,借助于相关的上下文对短文本进行扩充。基于分类系统或主题的方法利用显式的分类系统或者隐式的主题代替查询片段对短文本进行信息扩充。基于链接的方法通过社交网络中短文本的哈希标记获取外部链接信息,如:使用微博在社交网络发送的信息,构建短文本之间的连接图,从而进行短文本关联度的计算和检索。

在上述针对短文本理解及检索的研究中,显式语义分析方法(esa)无论是针对词项还是文本片段,返回的计算结果与人们的认知和判断都有较好的一致性。esa方法主要基于文本特征和文本之间的链接关系来计算语义关联度。在构建语义向量空间时,esa方法需要从语义数据源wikipedia或wiktionary中抽取背景知识并转化为一个大规模的词项-概念即对应文章的矩阵,从而构建倒排索引(invertedindex),其中,每一个wikipedia概念被映射为特征向量中的一个特征分量。每个特征分量所对应的权值采用tf-idf方法计算,用来表示特征概念和词项之间的关联度。在此基础上,esa方法使用余弦度量来计算语义关联度,因此,esa模型示意图如图1所示。

然而,随着wikipedia数据规模的不断扩大,这种词项-概念形式的倒排索引会包含数以百万计的概念。以2018年最新版的wikipedia来看,其中包含的概念数超过570万条,那么对于每一个给出的词项或文本片段而言,esa方法为其生成的特征向量的维度自然也超过570万。对于这样高维的向量,如果无法全部加载到内存当中,那么esa方法的计算效率将会大幅度的降低。更为重要的是,由于一个特定词项往往仅在少数wikipedia包含的文章中出现,这将导致在该词项所对应的特征向量中,大部分维度的赋值为0,这些0值分量的计算既占用大量时空资源,又没有任何意义。显然,在这种高维稀疏矩阵上,应用esa方法计算语义关联度并对短文本进行理解和检索,其效率会受到很大的影响。



技术实现要素:

针对传统信息检索技术对短文本检索的准确度不高和效率低的技术问题,本发明提出一种融合wikipedia分类及显式语义特征的短文本检索方法,以wikipedia类别图(wikipediacategorygraph,wcg)为研究对象,根据特征概念在wcg分类结构中对应的类别,对海量短文本进行自动化理解和检索,提高了在大数据环境下短文本理解及检索的计算效率和计算准确度。

为了达到上述目的,本发明的技术方案是这样实现的:一种融合wikipedia分类及显式语义特征的短文本检索方法,其步骤如下:

步骤一:用户输入查询信息q,对短文本数据集、查询信息q及wikipedia知识源进行预处理;

步骤二:对用户的查询信息q进行显示语义特征筛选;

步骤三:对短文本数据集中的目标短文本d进行显式语义特征筛选;

步骤四:根据wikipedia数据源中的分类结构对目标短文本d和查询信息q对应的显式语义特征列表进行类图构建;

步骤五:计算目标短文本d和查询信息q所对应的显式语义特征列表对应维度上语义特征的语义关联系数;并在低维显式语义空间下,计算目标短文本d和查询信息q的语义关联度;

步骤六:对短文本数据集中的所有短文本重复执行步骤三-步骤五,直到循环计算完短文本数据集中的所有短文本;

步骤七:根据短文本数据集中各短文本与查询信息q的语义关联度对短文本数据集中的所有短文本进行排序,将排序后的短文本列表中的相关短文本返回给用户。

所述步骤一中的预处理的方法为:

步骤1.1:采用jwpl算法对wikipedia知识源中的语义数据进行预处理,在wikipedia知识源中抽取特征概念以及对应的文章信息;

步骤1.2:对短文本数据集中的短文本、查询信息q及wikipedia知识源中的文章进行分词及去停用词操作;

步骤1.3:采用了相关词干提取及词性还原算法对经过分词及去停用词后的文本信息进行词项归一化处理;

步骤1.4:设定了一个值域把出现在不同文本中次数小于20及大于文章总数10%的词项全部去除。

所述步骤1.2中分词的方法是通过空格符的识别进行自动分词;构建一个停用词列表,在构建词项-概念矩阵时,对短文本、用户输入的查询信息及wikipedia知识源中文章的停用词进行过滤。

所述步骤二或步骤三中对查询信息q或目标短文本d进行显示语义特征筛选的方法为:所述步骤一对查询信息q或目标短文本d进行预处理,将查询信息q或目标短文本d转化为了一个词干集合,通过计算查询信息q或目标短文本d中词项与wikipedia特征概念对应页面中的文章信息之间的tf-idf权值,获取查询信息q或目标短文本d与wikipedia特征概念间的语义关联度,并采用排序策略对这些特征概念进行排序;设定阈值k,筛选出前k个最相关的wikipedia特征概念作为查询信息q或目标短文本d所对应的显式语义特征向量,从而获查询信息q或目标短文本d的显式特征列表efl(q)top-k或efl(d)top-k,其中,tf-idf权值的计算公式如下:

其中,tf(si,a)是词干si在文章a中出现的次数;df(si)是所有包含词干si的文章个数,n为wikipedia知识源中的文章个数,i=1,2,3,4,5…k。

所述步骤二或步骤三中的查询信息q或目标短文本d满足:给定一个查询信息q或目标短文本d,称l=<a1,...,ak>为查询信息q或目标短文本d对应的显式特征列表efl(q)top-k或efl(d)top-k;其中,显式特征列表efl(q)top-k或efl(d)top-k中的每一个元素ai都是一个二元组,即ai=<ci,wi>,ci为wikipedia知识源中的概念,wi为wikipedia特征概念ci对应的tf-idf权值,参数k=1,2,3,4,5…;对于显式特征列表efltop-k中的任意两个元素ai=<ci,wi>和aj=<cj,wj>满足如下条件:①若i≠j,则有ci≠cj;②若i<j,则有wi≥wj。

所述步骤四中类图构建的方法为:

步骤4.1:将获得的目标短文本d及查询信息q所对应的显式特征列表分别划分成了子集istop-k和子集dl(l)top-k,l∈{d,q};

步骤4.2:在wikipedia类别图中抽取子集dl(d)top-k和子集dl(q)top-k中各wikipedia特征概念的类别信息。

所述子集istop-k为目标短文本d和查询信息q对应的显式特征列表的交集,子集istop-k中的每一个元素都是目标短文本d的显式特征列表efl(d)top-k和查询信息q的显式特征列表efl(q)top-k中同时出现的wikipedia特征概念,且istop-k=efl(d)top-k∩efl(q)top-k;所述子集dl(i)top-k为目标短文本d和查询信息q对应的显式特征列表的差集,子集dl(i)top-k表示目标短文本d的显式特征列表efl(d)top-k和查询信息q的显式特征列表efl(q)top-k中不同时出现的wikipedia特征概念,其中,子集dl(d)top-k=efl(d)top-k-efl(q)top-k中的每一个元素都是仅在显式特征列表efl(d)top-k中出现而不显式特征列表efl(q)top-k中出现的wikipedia特征概念;子集dl(q)top-k=efl(q)top-k-efl(d)top-k中的每一个元素都是仅在显式特征列表efl(q)top-k中出现而不显式特征列表efl(d)top-k中出现的wikipedia特征概念,且

所述步骤五中语义关联系数为显式特征列表efl(d)top-k和显式特征列表efl(q)top-k之间的关联系数,定义为一个k维向量,记为其中λi∈[0,1]表示两个显式特征列表efltop-k对应分量上的wikipedia特征概念c′i和wikipedia特征概念c″i之间的距离或接近程度,i∈{1,...,k};

所述子集istop-k中的每一个特征概念都是显式特征列表efl(d)top-k和显式特征列表efl(q)top-k中的共有概念,目标短文本d和查询信息q在子集istop-k上具有相同的特征向量,各对应分量间的关联系数为1,即λi=1,则其中,向量的模等于子集istop-k中的wikipedia特征概念个数;

所述目标短文本d和查询信息q对应的所对应的子集dl(d)top-k=<c′1,...,c′m>和子集dl(q)top-k=<c″1,...,c″m>,其中,m=|efltop-k|-|istop-k|;针对dl(l)top-k,l∈{d,q}中的每一个概念抽取其在wikipedia知识源中对应的分类结构,记为taxi;两个子集dl(l)top-k转化为dl(d)top-k=<tax′1,...,tax′m>和dl(q)top-k=<tax″1,...,tax″m>。

所述步骤五中目标短文本d和查询信息q的语义关联度的计算方法是:每一个可定义为:λi=asscoe(tax′i,tax″i);其中,λi∈[0,1],i∈{1,...,m},函数asscoe(tax′i,tax″i)表示wikipedia分类体系中两个wikipedia特征概念所对应类别信息tax′i和类别信息tax″i之间的关联系数;

类别信息taxi可视为一个类别集合{c1,...,cn},该集合中的每一个类别ci又是一个wikipedia知识源中的wikipedia特征概念,并对应着一篇确定的文章;因此,asscoe(tax′i,tax″i)可表示为:

其中,1≤p≤|tax′i|,1≤q≤|tax″i|,函数asscoe(c′p,c″q)表示两个类别c′p和c″q之间的关联系数,并可表示为:asscoe(c′p,c″q)=sim(ap,aq);ap和aq分别是类别c′p和类别c″q在wikipedia知识源中对应的文章,函数sim(ap,aq)表示两篇文章ap和aq之间的相似度;

将一篇文章解析为一个形如的词干向量,其中,w(a)i表示词干si关于文章a在相应分类结构tax中的tf-idf权值;函数sim(ap,aq)通过余弦度量得出,即:

从而将子集dl(q)top-k转化为如下形式:dl(q)top-k=<c″1,...,c″m>=<λ1·c′1,...,λm·c′m>,其中,c″i=λi·c′i表明在子集dl(d)top-k和dl(q)top-k的相同分量位置上,对应wikipedia特征概念c′i和c″i的关联程度;

目标短文本d和查询信息q所对应的显式语义特征列表efl(d)top-k和显式语义特征列表efl(q)top-k的语义关联度为:

其中,rel(q,d)为目标短文本d和查询信息q的语义关联度;表示目标短文本d中包含的所有词干对于wikipedia特征概念c′i的tf-idf值之和;表示查询信息q中包含的所有词干对于wikipedia特征概念c″i的tf-idf值之和。

所述步骤七中将排序后的短文本列表中的相关短文本返回用户的方法为:通过设定阈值top,将排在短文本列表中的前top篇短文本返回给用户,作为关于用户的查询信息q的检索结果。

本发明的有益效果:通过分析短文本自身的特点,针对当前短文本检索方法面临的局限性,根据wikipedia中的语义信息选择和目标短文本最为相关的概念作为显式语义特征构建低维特征向量;在此基础上,通过分析这些特征概念在wikipedia中对应的分类结构,计算特征向量中对应位置的不同分量之间的关联系数,将两个不同的特征向量转化到相同的语义空间中并计算语义关联度;最后,根据语义关联度进行排序并返回结果,从而实现短文本的检索。通过对比实验表明,本发明提高了在大数据环境下短文本理解及检索的计算效率和计算准确度,具有更好的检索效果,为更加合理地选取特征信息,进一步提高短文本检索方法的检索效果和效率提供了研究思路。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为esa模型的示意图。

图2为本发明的流程图。

图3为本发明的模型图。

图4为“artificialintelligence”在wikipedia知识源中对应的分类结构。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图2所示,一种融合wikipedia分类及显式语义特征的短文本检索方法,其步骤如下:

步骤一:用户输入查询信息q,对短文本数据集、查询信息q及wikipedia知识源进行预处理。

在初始阶段,用户首先输入查询信息q,这种查询信息q可以是一个关键词,也可以是短语或句子。但由于一般用户输入的查询内容不会很长,因此也可以将用户查询信息q视为一条短文本信息。

本发明实验中使用的wikipedia版本下载自2016年4月7日。该版本可以免费从wikipedia的相应链接中下载。整个算法的预处理工作主要是对短文本数据集、用户输入的查询信息及wikipedia知识源中的文章进行分词、去停用词、词项归一及词项过滤等工作。具体可分为以下4个步骤:

步骤1.1:采用jwpl(javawikipedialibrary)算法对wikipedia知识源中的语义数据进行预处理,从而在wikipedia知识源中抽取特征概念以及对应的文章信息。需要注意的是,在解释wikipedia知识源的dump文件时需要首先进行一些数据清洗工作,如:去除命令空间中包含有file、help、draft等的文件。

步骤1.2:对短文本数据集中的短文本、查询信息q及wikipedia知识源中的文章进行分词及去停用词操作。因为针对的是英文数据,所以分词工作没有采用专门的分词工具,而是通过空格符的识别进行自动分词。在此基础上,为了保证特征筛选及关联度计算过程的正确性和有效性,构建了一个停用词列表,在构建词项-概念矩阵时,对短文本、用户输入的查询信息及wikipedia文章中的停用词进行过滤。因为这些停用词如“is”、“and”以及“before”等在语义层面对关联度计算没有任何意义。

步骤1.3:根据步骤1.2的处理结果,采用了相关词干提取及词性还原算法对经过分词及去停用词后的文本信息进行词项归一化处理。

步骤1.4:根据信息熵的定义可知,在不同文本中出现次数过多或过少的词对文本的区分度较弱。因此,为了降低算法的计算复杂度,在预处理阶段,设定了一个值域把出现在不同文本中次数小于20及大于文章总数10%的词项全部去除。

步骤二:对用户的查询信息q进行显示语义特征筛选。

提出一种显式语义特征筛选方法,从而构建低维显式语义空间,并以此作为接下来语义关联度计算及短文本理解和检索的基础。整体上讲,对wikipedia特征概念进行特征筛选的目的就是返回wikipedia知识源中与查询信息q最相关的前k个特征概念作为语义特征,并按照对应的权值大小对这些特征概念进行排序。由于在步骤一中已经说明:可以将用户查询q视为一条短文本信息,所以本步骤中给出的定义均以短文本为目标研究对象。

定义1(显式特征列表,(explicitfeaturelist,efltop-k)):给定一个目标短文本d,称l=<a1,...,ak>为目标短文本d对应的显式特征列表efltop-k。其中,efltop-k中的每一个元素ai都是一个二元组,即ai=<ci,wi>,ci为wikipedia知识源中的概念,wi为概念ci对应的tf-idf权值,参数k=1,2,3,4,5…。对于显式特征列表efltop-k中的任意两个元素ai=<ci,wi>和aj=<cj,wj>满足如下条件:①若i≠j,则有ci≠cj;②若i<j,则有wi≥wj。

从定义1可以看出,为了获得显式特征列表efltop-k,需对传统esa算法进行改进,对特征概念进行约减的过程中引入排序策略。通过倒排索引,特征筛选算法可对语义空间中的概念根据对应的tf-idf权值进行排序,将对应权值wi较高的概念ci排在前边,并根据给定的阈值k筛选出前k个概念,将一个短文本解析为一个长度为k的概念列表,从而构建一个低维度的显式特征向量。

对定义1中的显式特征列表做进一步的分析,并给出两个新的概念作为后续研究的基础。

定义2(efltop-k的交集列表):给定一个短文本序对<d1,d2>,令l1和l2分别为短文本d1和短文本d2对应的显式特征列表efltop-k。l1与l2的交集被定义为l1∩l2,记为istop-k。其中,istop-k中的每一个元素都是显式特征列表l1和l2中同时出现的wikipedia特征概念。

定义3(efltop-k的差集列表):给定一个短文本序对<d1,d2>,令l1和l2分别为短文本d1和d2对应的显式特征列表efltop-k。l1对于l2的差集列表被定义为l1-l2,记为dl(1)top-k。其中,dl(1)top-k中的每一个元素都是仅在l1中出现而不在l2中出现的wikipedia特征概念。同理可定义l2对于l1的差集列表dl(2)top-k。

根据定义2和定义3,可以得到以下3个形式化的结论:

(1)istop-k=l1∩l2=<c1,...,cn>,其中,n≤k,k=l1(或l2)的长度,ci∈{wikipedia特征概念集合};满足ci∈l1,且ci∈l2(i∈{1,...,n});

(2)dl(1)top-k=l1-istop-k=<c′1,...,c′k-n>,其中c′i∈{wikipedia特征概念集合}。满足c′i∈l1,且有:当且仅当i<j时,wi≥wj,i,j∈{1,...,k-n},其中,wi和wj为短文本d1对应于wikipedia特征概念c′i和wikipedia特征概念c′j的tf-idf权值;

(3)dl(2)top-k=l2-istop-k=<c″1,...,c″k-n>,其中c″i∈{wikipedia特征概念集合}。满足c″i∈l2,且有:当且仅当i<j时,wi≥wj,i,j∈{1,...,k-n},其中,权值wi和wj为短文本d2对应于wikipedia特征概念c″i和wikipedia特征概念c″j的tf-idf权值。

从上述3个定义中不难看出,在给定阈值k的前提下,尽管两个概念所对应显式特征列表的模是相等的,但由于仍然无法使用余弦度量来直接进行关联度计算。换句话说,如果想应用余弦度量中的“点积”公式,必须要保证两个向量具有相同的维度,同时各个分量也要相同。因此,不得不将两个特征向量从原始大小扩展到二者的并集。这也正是传统esa算法必须构建高维度的向量空间,并将所有wikipedia特征概念纳入其中的原因。考虑到wikipedia知识源总体的概念数超过500万条,面对如此大规模的语义数据,可想而知,在这种情况下使用余弦度量计算语义关联度时,结果值将会很低。

根据步骤一对于查询信息q的预处理结果,已将查询信息q转化为了一个词干集合。针对该词干集合,通过计算各词干与wikipedia特征概念对应页面中的文章信息之间的tf-idf权值,获取查询信息q与wikipedia特征概念间的语义关联度,并采用排序策略对这些特征概念进行排序。设定阈值k,筛选出前k个最相关的wikipedia特征概念作为查询信息q所对应的显式语义特征向量,从而获查询信息q的显式特征列表efl(q)top-k,其中tf-idf权值的计算公式如下:

其中,tf(si,a)是词干si在文章a中出现的次数;df(si)是所有包含词干si的文章个数,n为wikipedia知识源中的文章个数。

步骤三:对短文本数据集中的目标短文本d进行显式语义特征筛选。

该步骤与步骤二的处理方式相同,只是处理的对象由用户查询信息q变为了目标短文本d。由于在步骤一已中已经说明:可以将用户的查询信息q视为一条短文本信息。所以这里不再进行重复说明,具体处理方法可参见步骤二。

步骤四:根据wikipedia数据源中的分类结构对目标短文本d和查询信息q(也可视为一个短文本)对应的显式语义特征列表进行类图构建。

进行类图构建的方法具体可以分为以下2个步骤:

步骤4.1:将获得的目标短文本d及查询信息q(也可视为一个短文本)所对应的显式特征列表efltop-k分别划分成了两个子集istop-k(见定义2)和子集dl(l)top-k,l∈{d,q}(见定义3)。

步骤4.2:在wikipedia类别图中抽取子集dl(d)top-k和子集dl(q)top-k中各wikipedia特征概念的类别信息。

对于给定短文本序对<d1,d2>,在阈值k不是非常大的情况下,短文本d1和短文本d2各自对应的显式特征列表l1和显式特征列表l2通常并不相同。为了在这两个不相同的向量空间下计算两个短文本的语义关联度,首先需要对这两个向量空间中不同的分量进行分析,找出这些不同分量之间的对应关系。因此,有如下定义:

定义4(efltop-k的关联系数):给定一个短文本序对<d1,d2>,令l1=<c′1,...,c′k>和l2=<c″1,...,c″k>分别为短文本d1和短文本d2对应的显式特征列表efltop-k。则显式特征列表l1和显式特征列表l2之间的关联系数可以被定义为一个k维向量,记为其中λi∈[0,1]表示两个显式特征列表efltop-k对应分量上的wikipedia特征概念c′i和wikipedia特征概念c″i之间的距离或接近程度,i∈{1,...,k}。

根据定义2和定义3的描述,将每个短文本di对应的显式特征列表efltop-k划分成了两个子集istop-k和子集dl(i)top-k。因此,下面将根据两个子集各自具有的不同特点,分别进行研究。

由定义2可知,子集istop-k中的每一个特征概念都是两个短文本各自的显式特征列表l1和l2中的共有概念。因此,短文本d1和d2在istop-k上具有相同的特征向量。显然,对于两个短文本共同的子集istop-k而言,各对应分量间的关联系数应该为1,即λi=1。因此,有其中,向量的模等于子集istop-k中的wikipedia特征概念个数。此时,在子集istop-k上可以直接利用点积来计算余弦度量。

与子集istop-k的情况不同,在短文本d1和短文本d2对应的子集dl(1)top-k和dl(2)top-k中,由定义3可知两个列表中没有任何共有概念。这种情况下,如果不对这两个特征向量执行并运算,不能直接应用点积计算余弦度量。因此提出一种基于wikipedia分类体系的算法来计算dl(1)top-k和dl(2)top-k中对应位置上不同分量间的关联系数,并且构建相应的向量

从2004年5月起,wikipedia知识源根据所包含概念的语义信息和层次结构,提供了一个类别图(wcg)。在wikipedia知识源中,一篇文章可以被归入一个或多个类别当中,所有归属的类别都通过链接的形式显式在文章对应页面的底端。实际上,wikipedia知识源并不像wordnet那样有一个形如“isa”这样语义清晰的分类体系来严格地表示其层次结构,而仅存在一个类似于主题类别的索引词典。例如,对于wikipedia知识源中的概念“artificialintelligence”,抽取“artificialintelligence”在wikipedia知识源中相应的分类结构,可以得到7个父类和29个子类。图4给出了“artificialintelligence”对应分类结构的一种形式化描述,其中包含了部分抽取出的类别层次信息。

接下来,根据给定<d1,d2>所对应的子集dl(1)top-k=<c′1,...,c′m>和子集dl(2)top-k=<c″1,...,c″m>,其中m≤k,且m=|efltop-k|-|istop-k|,可以针对dl(i)top-k,i∈{1,2}中的每一个概念抽取其在wikipedia知识源中对应的分类结构,记为taxi。这样,两个dl(i1)top-k(i1∈{1,2})可以转化为dl(1)top-k=<tax′1,...,tax′m>和dl(2)top-k=<tax″1,...,tax″m>。

步骤五:计算目标短文本d和查询信息q所对应的显式语义特征列表对应维度上语义特征的语义关联系数;并在低维显式语义空间下,计算目标短文本和查询信息q的语义关联度。

根据定义4,每一个可用如下公式定义:

λi=asscoe(tax′i,tax″i)(1)

其中,λi∈[0,1],i∈{1,...,m},函数asscoe(tax′i,tax″i)表示wikipedia分类体系中两个wikipedia特征概念所对应类别信息tax′i和tax″i之间的关联系数。

下面,进一步研究如何具体实现公式(1)中的函数asscoe(tax′i,tax″i)。从图4可以看出,类别信息taxi可以视为一个类别集合{c1,...,cn},该集合中的每一个类别ci又是一个wikipedia知识源中的wikipedia特征概念,并对应着一篇确定的文章。因此,asscoe(tax′i,tax″i)可以使用如下两个公式进行表示:

其中,1≤p≤|tax′i|,1≤q≤|tax″i|,函数asscoe(c′p,c″q)表示两个类别c′p和c″q之间的关联系数,并可表示为:

asscoe(c′p,c″q)=sim(ap,aq)(3)

其中,ap和aq分别是类别c′p和c″q在wikipedia知识源中对应的文章,函数sim(ap,aq)表示两篇文章ap和aq之间的相似度。

为了得到公式(3)中两篇文章之间的相似度,仍然将一篇文章解析为一个形如的词干向量,其中,w(a)i表示词干si关于文章a在相应分类结构tax中的tf-idf权值。w(a)i的具体计算公式如公式(4)所示:

其中:tf(si,a)是词干si在文章a中出现次数;df(si)是所有包含词干si的文章个数。

这样,公式(3)中的函数sim(ap,aq)可以通过余弦度量得出,余弦度量的计算公式如公式(5)所示。

通过公式(1)至公式(5),可以将子集dl(2)top-k转化为如下形式:dl(2)top-k=<c″1,...,c″m>=<λ1·c′1,...,λm·c′m>,其中,c″i=λi·c′i表明在子集dl(1)top-k和dl(2)top-k的相同分量位置上,对应特征概念c′i和c″i的关联程度。

至此,对于给定的短文本序对<d,q>,可以在对应的efl(d)top-k和efl(q)top-k定义一种新的语义关联度rel(d1,d2)的计算方法。具体公式如公式(6)所示:

其中,rel(q,d)为目标短文本d和查询信息q的语义关联度;表示目标短文本d中包含的所有词干对于wikipedia特征概念c′i的tf-idf值之和;表示查询信息q中包含的所有词干对于wikipedia特征概念c″i的tf-idf值之和。

由于将目标短文本d及查询信息q所对应的显式特征列表efltop-k分别划分成了两个子集istop-k和子集dltop-k,子集dltop-k包括子集dl(d)top-k和dl(q)top-k,并对子集dl(d)top-k和dl(q)top-k分别进行了类图构建,所以此步骤中,也要针对中子集istop-k分别和子集dl(d)top-k和dl(q)top-k特征向量的不同特点分别计算语义关联系数。具体可分为以下2个步骤:

步骤5.1:子集istop-k中的每一个wikipedia特征概念都是目标短文本d及查询信息q所对应显式特征列表efl(d)top-k和显式特征列表efl(q)top-k中的共有概念。因此,目标短文本d及查询信息q在子集istop-k上具有相同的特征向量。显然,对于两个短文本共同的子集istop-k而言,各对应分量间的关联系数应该为1,即λi=1。因此,有其中,向量的模等于子集istop-k中的wikipedia特征概念个数。

步骤5.2:应用本发明中给出的公式(1)至公式(5),将子集dl(d)top-k和子集dl(q)top-k转化为如下形式:dl(d)top-k=<c″1,...,c″m>=<λ1·c′1,...,λm·c′m>,其中,c″i=λi·c′i表明在子集dl(d)top-k和子集dl(q)top-k的相同分量位置上对应wikipedia特征概念c′i和wikipedia特征概念c″i的关联程度。因此,有向量其中,向量的模等于子集dltop-k中的wikipedia特征概念个数。

根据获得的目标短文本d及查询信息q所对应的显式语义特征列表efl(d)top-k和显式语义特征列表efl(q)top-k的语义关联系数,应用给出的公式(6)可以计算出目标短文本d及查询信息q的语义关联度rel(q,d)。

步骤六:对短文本数据集中的所有短文本重复执行步骤三-步骤五,直到循环计算完短文本数据集中的所有短文本。

通过循环步骤三-步骤五,计算用户查询q与短文本数据集中每一个短文本之间的语义关联度。

步骤七:根据短文本数据集中各短文本与查询信息q的语义关联度对短文本数据集中的所有短文本进行排序,将排序后的短文本列表中的相关短文本返回给用户。

按照公式(6)中获得的语义关联度rel(q,d)对短文本数据集中的短文本进行重新排序,生成关于q的短文本列表。

将排序后的短文本列表中的相关短文本返回用户。通过设定阈值top,将排在短文本列表中的前top篇短文本返回给用户,作为关于用户查询q的检索结果。

通过对短文本进行显式语义特征筛选并计算不同特征向量间的关联系数,可以在低维语义空间下构建短文本的语义理解模型。同时,应用公式(6)可以获得两个短文本之间的语义关联度。在上述研究的基础上,可以通过计算用户输入的查询信息(也可以视为一个短文本)与目标短文本之间的语义关联度,并根据语义关联度的大小对检索结果进行排序,从而实现对短文本的检索,本发明提出的短文本理解及检索模型的结构如图3所示。

同时,为了保证特征筛选及关联度计算过程的正确性和有效性,还构建了一个停用词列表,在构建词项-概念矩阵时,对wikipedia知识源总相应文章中的停用词进行过滤。此外,实验中还采用词干提取算法又称词项归一对输入的词项及每篇文章的内容进行规范化,将一个词的多种变形或派生格式转化为统一的标准格式。

实验中,采用在2011年收集twitter的子集作为标准测试集,该测试集包含3980061个用户的属性参数以及用户之间的社交网络数据,收集了每个用户至少600条共5亿条内容种类多样英语博文。为了与相关研究进行对比分析,本发明采用了kalloubi等人在文章《microblogsemanticcontextretrievalsystembasedonlinkedopendataandgraph-basedtheory》中设计的50个用户查询,其中查询分为20个短文本查询和30个长文本查询。

由于在检索过程中引入了排序策略,实验中采用当前信息检索中普遍采用的map、p@k和r-prec作为评价标准来衡量本发明提出的短文本检索方法的有效性。三种评价标准对应的度量公式如下:

(1)map指的是在所有查询的平均正确率的均值:

其中,n是查询的总个数,qj是查询j返回的相关文档数,p(ti)是相关文档在返回文档所在位置上的正确率。map能直观反映系统在全部相关文档上性能的单值指标,只要查询得到的相关文档越靠前,其值就越高。

(2)p@k指的是在返回查询结果的最前k1条的正确率,k1的取值常为30,即p@30:

(3)r-prec表示检索出r篇文档时的正确率,r是与查询相关的文档总数,返回与查询相关的r个文档中共有r个文档是相互相关的:

接下来,将用公式(7)至公式(9)给出的度量公式在标准测试集上进行实验,将本发明中提出的短文本检索方法和当前其他已有方法进行对比,从而对本发明提出方法的有效性进行评价。

对wikipedia知识源中的信息进行预处理的基础上,用java语言对图3所示的短文本检索模型进行实现,并将该模型应用于给出的标准测试集上。在应用公式(1)至公式(6)计算查询信息q与目标短文本d之间的语义关联度时,参考之前的研究结论,设定efltop-k中参数k的值为10000,并生成低维显式特征列表。为了更加清晰地分析本发明提出的短文本检索方法的有效性,我们应用公式(7)至公式(9)定义的评价标准,将本发明与之前的研究结果及当前已有其他短文本检索方法进行了比较。表1对各方法在标准测试集上分别进行短文本检索和长文本检索的相关评价结果进行了总结。

表1几种短文本检索方法在不同检索需求上的评价结果

从表1可以看出,表中所列的三个检索模型对于长文本的检索效果要好于短文本的检索效果,可见在文本检索的过程中,文本长度对检索结果有着重要的影响。不仅如此,本发明在两类不同的检索实验中,所获得的评价结果较前两种方法都有所提高。由此可见通过分析wikipedia知识源中的语义信息,对短文本在wikipedia知识源中的显式语义特征进行筛选并排序后,可以获得更为相关的语义特征,从而更好地实现对短文本的理解并构建更加合理的短文本模型。在此基础上,根据特征向量在wikipedia知识源中的分类结构,能够在低维语义空间下对查询信息和目标短文本之间的语义关联度进行计算,从而能获取更加精确的检索结果。表1中值得注意的是,从评价效果的纵向变化趋势上看,本发明在20个短文本检索上评价结果提升幅度要高于长文本检索的结果。这是因为长文本长度较短文本更长,自然也包含了更为丰富的信息。这种自身携带的原始语义信息往往要比人为扩充的语义信息更为精确,因此能更好地表达用户的查询需求。这一结果也从另一方面再次印证了文本长度对检索结果的重要性。

为了更加清晰地对表1所列的三种检索方法进行对比,对三种方法在标准测试集上的全部50个用户查询结果进行了综合的统计和分析,具体的实验结果如表2所示。由表2可知,本发明在标准测试集上,无论使用map、p@k1还是r-prec都能获得更好的评价结果。

表2几种短文本检索方法在的综合评价结果

本发明以语义关联度为出发点,基于当前主流的语义知识源wikipedia来研究短文本检索技术;根据wikipedia页面中包含的分类结构信息,提出一种显式语义特征选择及关联度计算方法,在此基础上,提出一种低维显式语义空间下的短文本检索方法,并通过实验测试验证了该方法的可行性和有效性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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