专利名称:一种基于语义的本地文档检索方法
技术领域:
本发明涉及一种基于语义的本地文档检索方法,属于信息检索(Information Retrieval)的技术领域。
背景技术:
数据库技术发展至今,对于格式化数据的检索已经比较成熟,已经可以实现基于字符串匹配功能的文档检索功能。然而对于大量的非格式化文档的数据,如文本文件、Word文档,还没有有效的检索办法。如何让用户在浩如烟海的自由文本集中以最有效的方式最准确地找到需要的信息,已经成为中文检索领域内的热点。另外,由于Internet技术、移动式计算技术和普适计算的发展,使得数据的无线传输和移动计算成为可能。因此,在不久的将来,人类必然对移动计算提出新的要求,其中最重要的需求就是获得自己需要的信息。现实中,大量的信息都是以非格式化的形式保存。如何在移动的情况下有效地检索这些非格式化文档显得尤为重要和迫切。
对于非格式化文档,目前的处理方法是潜语义分析(简称LSA)。在基于LSA的文本处理中,每篇文本首先被分词并抽取关键词词频,表示成(关键词,词频)的集合,这样一个文本库就可以表示为一个t×d的关键词-文本矩阵A=[Wij]t×d,其中,一个关键词对应于矩阵的一行,一个文本对应于矩阵的一列,wij为非负值,表示第i个关键词在第j篇文本中的权重。单个词的权重主要考虑其对文本的表征程度和所带的文本的信息量,所以对权重的处理主要考虑了两方面的贡献,即其在文本内部的重要程度-局部权重和在整个文本集中的重要程度-全局权重。局部权重和全局权重有不同的取值方法,取值方法的不同会对最后的检索结果产生影响。公式1给出了经典的LSA中权重的计算方法(TF-IDF),即wij=tfij*idfi=tfij*log2(1+N/ni) (1)
其中,wij表示第i个关键词在第j篇文本中的权重,tfij表示第i个关键词在第j篇文本中出现的频率,idfi表示第i个关键词的反比文本频率,N是整个文本集的文本个数,ni是包含第i个关键词的文本个数。
这样统计得到的矩阵At×d,它的每个列是一个t维特征向量,它反映了与该列对应文本的词分布特征。同理,对于查询问题,也可将它看成是一篇伪文档,将它表示成为一个t维向量。然后根据向量间的相似度或距离为所有文档就该查询排序。这种方法就是传统的VSM方法。
但是,VSM方法无法解决同义词、近义词以及多义词的问题。可以通过对矩阵At×d奇异值分解(SVD),降低关键词-文档矩阵里的噪声,使得其中隐藏的主要信息凸显出来。从而在一定程度上解决了同义词、近义词及多义词带来的问题。奇异值分解可以表示为At×d=Tt×t·St×d·Dd×dT]]>其中St×d=Σr,rOr,d-rOt-r,rOt-r,d-r]]>∑r,r为r阶对角阵,r=Rank(A),∑=diag(σ1,…,σr),σ1≥σ2≥…≥σr>0,称它们为矩阵A的奇异值,其值等于AAT和ATA的非零特征值的平方根。设k≤r可以通过数学变换得到A的一个近似矩阵Ak,从而降低矩阵维度,将文本在更少、更能表示其特征的语义空间中表示出来。Ak=Tt×t·diag(σ1,σ2,...σk,0,...,0)·Dd×dT]]>也就是Ak把A最小的r-k个奇异值和相应的左右奇异向量丢弃了,因为这些向量都乘以0了。[1](如图1)从某种意义上说,SVD是一种用于发掘一组相互无关联的索引变量因素的技术,从而使每个词/文本都可以利用左/右奇异值向量表示为单个k维空间向量。利用SVD降维的目的是为了削弱噪音或消除一些不需要的细节信息,从而使得对文本理解的潜语义结构凸显出来。[2]在同一个空间中,可以计算词和文本、词和词以及文本和文本的相似度,例如可以通过它们在向量空间中的向量距离来衡量。
用户查询要求可以是词、文本或两者的任意组合。检索执行时,先对用户查询进行预处理,根据词频信息生成一个t维的查询向量,并将其转换成k维语义空间向量。预处理过程为设q为原始查询向量,根据[3]可得其在k维语义空间向量计算方法为q*=qTTKSK-1]]>这样就可在k维空间中计算k维查询向量q*和其它文本向量的相似度(如公式2所示)sim(q*,dj)=Σm=1kwim×wjm(Σm=1kwim2)·(Σm=1kwjm2)---(2)]]>其中,q*为查询向量,dj为第j篇文本向量,k为语义空间的维数,wim为q*的第m维权值,wjm为dj的第m维的权值。这样就可以计算查询向量q*与每篇文本向量相似度,把相似度高于阈值的文本按相似度大小从高到低排列文本,再将该检索结果返回给用户。以上这种文本索引和建设方法就是LSA方法。
在传统的LSA模型中,由于是基于词袋模型的方法,很难在概念层次上进行扩展,所以在语义层面上存在很多的信息丢失。而且这种语义信息的丢失仅依靠传统方法较难解决。例如在传统的LSA模型中,把“交通工具”和“汽车”、“飞机”、“轮船”、“火车”、“公交车”等看成互相没有联系的词汇,而事实上它们之间具有包含关系,即后面的概念是前面的概念的子概念。然而传统的LSA模型中,没有在概念层次上考虑这种关系,所以在语义层次上很难提高,造成了语义信息的大量丢失。如果能够从外部对这些语义信息加以弥补,将很有可能提高检索的准确率和召回率。
发明内容
本发明的目的是针对特定领域或者特定组织内部的非格式化的信息,提出一种基于语义的本地文档检索方法。
为实现上述目的,本发明采用的技术方案是首先按照传统的LSA方法对本地文档进行索引,然后根据本体对查询语句中出现的概念进行语义扩展,再根据查询及其扩展概念生成查询向量,向量的值会考虑查询概念和扩展概念的相似度,所以在一定程度上弥补了传统LSA模型在语义上的缺失。
现详细描述本发明的技术方案。
一种基于语义的本地文档检索方法需要在以下的硬件环境中实现该硬件环境含有客户端、服务器和有线网络或无线网络,客户端和服务器连接在有线网络或无线网络上,其特征在于,该方法包括两个过程一、在进行检索前需要做准备工作,即需要根据传统的LSA算法对文档建立索引以及建立领域本体和计算本体中概念的相似度第1步,对本地需要检索的非格式化文档,根据传统的LSA方法建立索引,过程如下第1.1步对于本地的文档集,通过分词工具对文档集合的每篇文档内容进行分词,同时对于每篇文档中的名词、代词、处所词、人名、地名、机构团体、其它专名进行词频统计,即计算出tfij,分词工具是海量集团的中文分词工具,http://www.hylanda.com/;第1.2步根据第1.1步的结果,可以形成关键词-文档词频矩阵,矩阵的行表示的是关键词在不同文档中的词频特征,矩阵的列表示的是文档中所有词的词频特征,矩阵中第i行第j列的值表示的是第i个关键词在第j篇文档中的词频;第1.3步根据第1.2步的结果,计算出每个词在整个文档集中出现该词的文档的个数,即ni;第1.4步根据第1.3步的结果,同时根据log2(N/ni)计算出每个词的全局权重,即idfi,对数的真数由1+N/ni变为N/ni,这种变化的意义基于以下假设如果所搜索的整个文本集中每一篇文本都出现第i个关键词,那么第i个关键词在区分这些文本所能贡献的力量将趋近于0,表现在公式中就是对于所有的i都有wij=0;第1.5步由第1.1步和第1.4步,根据公式wij=tfij*idfi=tfij*log2(N/ni)计算出每个词的权重;第1.6步索引过程到第1.5步结束,将第1.5步得到的关键词-文档权重矩阵At×d作为特征矩阵保存,该矩阵的行表示的是关键词在不同文档中的权重特征,矩阵的列表示的是文档中所有词的权重特征。矩阵中第i行第j列的值表示的是第i个关键词在第j篇文档中的权重;第2步,根据人类对世界的认识,对概念的基本分类,利用建立本体的工具,建立一个知识本体,它是对概念在语义层次上的理解,本体的建立可以找专家建立;第3步,计算出本体中所有概念之间的语义相似度,计算得方法是第3.1步,计算本体概念树每个概念的深度,深度的计算方法是对于本体概念树中概念N,它的深度定义为Depth(N)=Depth(parentOf(N))+1,其中,根节点的深度为0,即若root表示本体概念树的根,则Depth(root)=0;patentOf(N)表示N的父亲概念或父亲节点;第3.2步,根据第3.1步计算本体中任意两个概念之间的长度,计算方法是对于本体概念树中任意两个节点N1、N2,则它们之间的长度定义为Length(N1,N2)=Depth(N1)+Depth(N2)-2*Depth(com_parent(N1,N2)),com_parent(N1,N2)表示N1和N2的公共父亲概念或公共父亲节点;第3.3步,根据第3.1步计算本体中任意节点的高度,计算方法是对于本体概念树中任意节点N,它的高度定义为Height(N)=Max(Depth(childOf(N))),其中Max表示求最大值,childOf(N)表示N的所有子孙,即N的高度应该是其所有子孙的深度的最大值,也就是从N的任意一个子孙到N距离的最大值;第3.4步,根据第3.1步、第3.2步、第3.3步计算本体中任意两个节点之间的语义相似度,计算方法是对本体概念树中任意两个节点N1,N2之间的语义相似度的定义为SN(N1,N2)SN(N1,N2)=Depth(com_parent(N1,N2))Height(root)×(length(N1,N2)+1);]]>
第3.5步,根据第3.4步计算结果,将所有概念两两之间的相似度保存;二、基于语义的本地文档检索的操作步骤第一步,用户通过便携式设备如PDA或个人电脑,即PC,通过设计的界面向服务器提出查询请求,查询请求是一个以自然语言形式描述的语句,PDA将该语句以XML文件的形式传送给服务器,服务器接收到该XML文件后,解析XML文件内容,获得查询请求;第二步,服务器利用分词工具对查询请求即查询语句分词,提取其中的名词、代词、处所词、人名、地名、机构团体名、其它专名,将它们作为查询概念;第三步,根据本体和第二步,对查询概念进行扩展,得到查询概念的扩展概念以及它们的相似度,扩展的方法如下根据准备工作第3步得到的概念之间的相似度对由第二步获得的查询概念进行扩展,扩展的方法是定义一个阈值θ,凡是和查询概念之间相似度大于θ的概念都作为查询概念的扩展概念;第四步,根据第三步和准备工作中准备的关键词-文档矩阵对应的关键词生成查询向量q,如果关键词是查询概念则其值取1,如果关键词是查询概念的扩展概念,则其值是查询概念和该概念之间的相似度;除此之外,向量中对应分量的值取0;第五步,对关键词-文档矩阵进行奇异值分解(SVD),即At×d=Tt×t·St×d·Dd×dT,]]>然后A将分解后的矩阵降稚到K维,即Ak=Tt×t·diag(σ1,σ2,...σk,0,...,0)·Dd×dT,]]>降维的方法是如果Σi=0jσi≥α×Σi=0rσi]]>则k=j,其中0<α≤1;σi是非0的奇异值,r为关键词-文本矩阵分解后,中间矩阵的秩,α反映了对原始矩阵信息量的保持程度,例如α=0.7就是保留了原始矩阵70%的信息而去除了30%的信息(可能是噪声);第六步,根据第四步和第五步,将查询向量q变化到K维空间,向量变化空间的方法是q*=qTTKSK-1]]>其中q*是变化后的K维空间向量,q是原始查询向量,Tk是降维后A的左奇异向量矩阵(即Tt×t的前t行K列),SK是降维后A的奇异值矩阵(即St×d的前K行K列);第七步,根据第六步,计算降维后的查询向量和每一篇文档对应向量(即D的每一个K维行向量)的相似度,并根据相似度大小排序,相似度越大排的越靠前,向量相似度的计算方法是经典的Cos夹角的计算方法,具体是sim(q*,dj)=Σm=1kwim×wjm(Σm=1kwim2)·(Σm=1kwjm2)]]>其中,q*为查询向量,dj为第j个文本向量,k为语义空间的维数,wim为q*的第m维权值,wjm为dj的第m维的权值,这样就可以计算查询向量q*与每篇文本向量相似度,把相似度高于阈值的文本按相似度大小从高到低排列文本,再将该检索结果返回给用户。
本发明与已有技术相比所具有的优点本发明主要应用于本地非格式化文档信息的检索。下面主要将其和传统的关系数据库、网络搜索引擎(如Google)、操作系统自带的文件搜索功能以及传统的LSA检索功能进行比较。
1、与传统的关系数据库比较传统的数据库查询,主要是基于字符串的匹配功能,因此无法避免一词多义引起的查不准和多词一义引起的查不全的问题。另外由于传统数据库查询原理是基于词或者字段的匹配功能,很难支持部分匹配功能。本发明与传统的数据库查询不同,它是基于潜语义分析(LSA)的方法。LSA是一种通过分析大量文本集,自动生成关键词-概念(语义)之间的映射规则的方法。它的基本假设是文本内容的意思与该文本中使用的词汇有着很强的联系。[2]它认为词语在文本中的使用模式内,存在着潜在的语义结构,同义词之间具有基本相同的语义结构,多义词的使用必定具有多种不同的语义结构,而词语之间的这种语义结构体现为它们在文本中的出现频率上,通过统计学方法,提取并量化这些潜在的语义结构,进而消除同义词、多义词的影响,提高文本表示的准确性。[4]因此本发明可以一定程度上避免传统数据库检索的弊病。另外,从应用领域来说,本发明主要是针对非格式化信息的查询,是传统数据库很难应用的领域。
2、与网络搜索引擎比较对于网络搜索引擎,虽然各个搜索引擎公司都有自己的Page Rank算法,但是这些算法的基本思想是部分地考虑Web网页的内容以及该网页的链入度和链出度,同时还要考虑自己的商业利益。这种搜索引擎相比本发明有以下缺点1)搜索内容只能针对Web页面信息,应用面不广;2)搜索的页面来自整个Internet,针对性不强。3)搜索引擎多是基于字符串匹配,没有的Web文档内容进行语义层次的理解。相对搜索引擎的缺点,本发明的优点是1)搜索的内容表达形式多样,可以使Web文档、文本文档、word文档等等;2)搜索的范围可以针对特定的领域、应用;3)本发明是基于LSA,是对文档内容语义层次的理解。
①和操作系统自带的文件搜索功能比较现在的操作系统大多带有文件搜索功能,但是这种功能大多只限于对文件名、创建日期等信息的查找,几乎没有涉及文件内容的查找。而本发明恰恰是基于对文件内容的语义理解基础上的查找,因此查找出的内容也更加符合用户的需求。另外,操作系统的文件查找功能,一般是基于文件名字符串匹配出来的,所以需要和每个文件名相比较,因此耗时比较长。然而,对于本发明由于它在检索之前已经对文档内容做好了索引,所以在检索时只需要根据特征矩阵和查询向量计算出最相关的若干篇文档,因此检索所需要的时间非常少(一般都在2秒钟之内)。
②和传统的LSA检索比较正如背景技术所述,传统的LSA检索模型在语义存在着大量的丢失,没有办法在语义层次上理解查询语句。然而,本发明提出的“一种基于语义的本地文档检索方法”,它通过本体这个外部知识库,可以对查询概念在语义层次上扩展,例如把“交通工具”扩展成“汽车”、“飞机”、“轮船”、“火车”、“公交车”等概念。因而可以避免传统LSA模型造成了语义信息的大量丢失。因此,如果能够从外部对这些语义信息加以弥补,将很有可能提高检索的准确率和召回率。
图1是SVD算法示意图。其中,A是原始的关键词-文档矩阵,Ak是降维后的关键词-文档矩阵,T是SVD后的左奇异值矩阵,Tk是降维后的左奇异值矩阵,S奇异值矩阵,Sk是降维后的奇异值矩阵;DT是右奇异值矩阵,DTk是降维后的右奇异值矩阵。
图2是本地非格式化文档的检索过程图,其中,符号说明如下1.1用户可以通过语音或者手工向PDA移动设备输入需要查询的内容请求;1.2用户可以通过语音或者手工向个人电脑PC机输入需要查询的内容请求;1.3便携设备PDA将用户的请求以XML文件的形式,通过无线网络传送到服务器端;1.4个人电脑PC机将用户的请求以XML文件的形式,通过有线网络传送到服务器端;2.1服务器端根据本发明提出的计算查询语句和文档的相似度的算法计算查询语句与本地文档的相似度,将该相似度排序并将排序的结果形成XML文件,并将该XML文件通过无线网络传送到移动便携式设备PDA上;2.2服务器端根据本发明提出的计算查询语句和文档的相似度的算法计算查询语句与本地文档的相似度,将该相似度排序并将排序的结果形成XML文件,并将该XML文件通过无线网络传送到个人电脑PC机上;2.3便携式设备PDA将处理的结果显示给用户;2.4个人电脑将处理的结果显示给用户。
图3是本地文档的检索过程。
图4是实施例建立的交通本体。
具体实施例方式
实施例1利用本发明的检索方法检索本地非格式化文档假设有五篇文档,它们的内容分别为文档1公共交通火车、飞机、汽车、巴士、地铁文档2交通堵塞文档3交通行业文档4公共交通之命脉文档5巴士和地铁是主要的交通工具假设检索内容为公共交通首先利用分词工具,对每篇文档中的名词、代词、处所词、人名、地名、机构团体名、其它专名进行词频统计(一、的第1步中的第1.1步)。形成关键词-文档词频矩阵(如表1,一、的第1步中的第1.2步、第1.3步、第1.4步)。
表1 关键词-文档词频矩阵以及ni和idfi
然后,根据wij=tfij*idfi=tfij*log2(N/ni)计算每个关键词在每篇文档内的权重,得到关键词-文档权重矩阵A(如表2所示,一、的第1步中的第1.5步、第1.6步)。
表2 关键词-文档权重矩阵A
建立本体假设建立的交通本体如图4所示(对应于一、的第2步)。根据SN(N1,N2)=Depth(com_parent(N1,N2))Height(root)×(length(N1,N2)+1),]]>计算出检索概念和其他概念的相似度分别为(一、的第3步)交通0,地铁1/6(取0.167),巴士1/6,飞机1/6,汽车1/6,火车1/6,轮船1/6,高速火车1/9,普通火车1/9。
通过PDA内设计的软件界面,输入查询请求“公共交通”。PDA将该语句以XML文件的形似传送给服务器。服务器接收到该XML文件后,解析XML文件内容,获得查询请求。(对应于二、的第一步)对查询请求利用分词工具分词得到查询概念“公共交通”(对应于二、的第二步)。根据相似度大于0.1的概念为查询概念的扩展概念,则公共交通的扩展概念为地铁,巴士,飞机,汽车,火车,轮船,高速火车,普通火车。根据分析文档集获得的关键词,生成检索向量q检索向量中,对应于关键词,如果关键词是查询概念则其值取1,如果关键词是查询概念的扩展概念,则其值是查询概念和该概念之间的相似度;除此之外,向量中对应分量的值取0(对应于二、的第三步)。
检索向量q
对关键词-文档权重矩阵奇异值分解(对应于二、的第四步)分解后A的左奇异向量的特征矩阵T为
分解后A的奇异值矩阵S为
分解后A的右奇异向量特征矩阵DT为
取原有信息量的70%,计算出K=4,对SVD分解的结果进行降维(对应于二、的第五步)。
则降维后左奇异值矩阵的近似矩阵为TK
中间矩阵的近似矩阵是SK
右奇异矩阵的近似矩阵是DTK
SK-1为
根据q*=qTTKSK-1,]]>查询向量变形为q*(对应于二、的第六步)
根据sim(q*,dj)=Σm=1kwim×wjm(Σm=1kwim2)·(Σm=1kwjm2),]]>计算出q*与每篇文档的相似度分别是第一篇0.806363,第二篇-0.001475,第三篇-0.001475,第四篇0.586633,第五篇0.075094。则按照相似度从大到小排序为第一篇、第四篇、第五篇、第二篇、第三篇(对应于二、的第七步)。对比实施例2中利用传统的LSA方法的出来的结论,明显改进后的方法更好,能够体现出语义,这是因为改进后把第一篇、第五篇的排名提高了很多,从语义层次来讲,这种提高具有明显的合理性。
实施例2利用传统LSA检索方法检索本地非格式化文档假设有五篇文档,它们的内容分别为文档1公共交通火车、飞机、汽车、巴士、地铁文档2交通堵塞文档3交通行业文档4公共交通之命脉文档5巴士和地铁是主要的交通工具假设检索内容为公共交通首先利用分词工具,对每篇文档中的名词、代词、处所词、人名、地名、机构团体名、其它专名进行词频统计。形成关键词-文档词频矩阵,如表3所示。
表3 关键词-文档词频矩阵以及ni和idfi
然后,根据wij=tfij*idfi=tfij*log2(N/ni)计算每个关键词在每篇文档内的权重,得到关键词-文档权重矩阵A,如表4所示。
表4 关键词-文档权重矩阵A
通过PDA内设计的软件界面,输入查询请求“公共交通”。PDA将该语句以XML文件的形似传送给服务器。服务器接收到该XML文件后,解析XML文件内容,获得查询请求。根据分析文档集获得的关键词,生成检索向量q检索向量中,对应于关键词,如果关键词是查询概念则其值取1,否则,向量中对应分量的值取0。
检索向量q
对关键词-文档权重矩阵奇异值分解分解后A的左奇异向量的特征矩阵T为
分解后A的奇异值矩阵S为
分解后A的右奇异向量特征矩阵DT为
取原有信息量的70%,计算出K=4,对SVD分解的结果进行降维。
则降维后,左奇异值矩阵的近似矩阵为TK
中间矩阵的近似矩阵是SK
右奇异矩阵的近似矩阵是DTK
SK-1为
根据q*=qTTKSK-1,]]>查询向量变形为q*
根据sim(q*,dj)=Σm=1kwim×wjm(Σm=1kwim2)·(Σm=1kwjm2),]]>计算出q*与每篇文档的相似度分别是第一篇0.490022,第二篇0.005150,第三篇0.005150,第四篇0.868979,第五篇-0.068757。则按照相似度从大到下排序为第四篇、第一篇、第二篇、第三篇、第五篇。对比实施例1和实施例2的检索结果,明显改进后的方法更能体现出在语义层次上的理解。
参考文献Yinghui Xu,Kyoji Umemura.Very Low-Dimensional LatentSemantic Indexing for Local Query Regions[C].Sappro,JapProc.of the Sixth International Workshop on InformationRetrieval with Asian Languages,2003,1184-91.Kakkonen,Myller,Timonen,et al.Automatic Essay Grading withProbabilistic Latent Semantic Analysis[C].Ann Arbor,USAProc.of the 2nd Workshop on Building Educational ApplicationsUsing NLP,June 200529-36.
George W.Furnas,Scott C.Deerwester,Susan T.Dumais,et al.Information Retrieval using a Singular Value DecompositionModel of Latent Semantic Structure[C].Grenoble,FranceAnnual ACM Conference on Research and Development inInformation Retrieval,1988465-480.
盖杰,王怡,武港山.基于潜在语义分析的信息检索.计算机工程[J],2004,30(2)58-60.
权利要求
1.一种基于语义的本地文档检索方法需要在以下的硬件环境中实现该硬件环境含有客户端、服务器和有线网络或无线网络,客户端和服务器连接在有线网络或无线网络上,其特征在于,该方法包括两个过程一、在进行检索前需要做准备工作,即需要根据传统的LSA算法对文档建立索引以及建立领域本体和计算本体中概念的相似度第1步,对本地需要检索的非格式化文档,根据传统的LSA方法建立索引,过程如下第1.1步对于本地的文档集,通过分词工具对文档集合的每篇文档内容进行分词,同时对于每篇文档中的名词、代词、处所词、人名、地名、机构团体、其它专名进行词频统计,即计算出tfij,分词工具是海量集团的中文分词工具,http//www.hylanda.com/;第1.2步根据第1.1步的结果,可以形成关键词-文档词频矩阵,矩阵的行表示的是关键词在不同文档中的词频特征,矩阵的列表示的是文档中所有词的词频特征,矩阵中第i行第j列的值表示的是第i个关键词在第j篇文档中的词频;第1.3步根据第1.2步的结果,计算出每个词在整个文档集中出现该词的文档的个数,即ni;第1.4步根据第1.3步的结果,同时根据log2(N/ni)计算出每个词的全局权重,即idfi,对数的真数由1+N/ni变为N/ni,这种变化的意义基于以下假设如果所搜索的整个文本集中每一篇文本都出现第i个关键词,那么第i个关键词在区分这些文本所能贡献的力量将趋近于0,表现在公式中就是对于所有的i都有wij=0;第1.5步由第1.1步和第1.4步,根据公式wij=tfij*idfi=tfij*log2(N/ni)计算出每个词的权重;第1.6步索引过程到第1.5步结束,将第1.5步得到的关键词-文档权重矩阵At×d作为特征矩阵保存,该矩阵的行表示的是关键词在不同文档中的权重特征,矩阵的列表示的是文档中所有词的权重特征。矩阵中第i行第j列的值表示的是第i个关键词在第j篇文档中的权重;第2步,根据人类对世界的认识,对概念的基本分类,利用建立本体的工具,建立一个知识本体,它是对概念在语义层次上的理解,本体的建立可以找专家建立;第3步,计算出本体中所有概念之间的语义相似度,计算得方法是第3.1步,计算本体概念树每个概念的深度。深度的计算方法是对于本体概念树中概念N,它的深度定义为Depth(N)=Depth(parentOf(N))+1,其中,根节点的深度为0,即若root表示本体概念树的根,则Depth(root)=0;patentOf(N)表示N的父亲概念或父亲节点;第3.2步,根据第3.1步计算本体中任意两个概念之间的长度,计算方法是对于本体概念树中任意两个节点N1、N2,则它们之间的长度定义为Length(N1,N2)=Depth(N1)+Depth(N2)-2*Depth(com_parent(N1,N2)),com_parent(N1,N2)表示N1和N2的公共父亲概念或公共父亲节点;第3.3步,根据第3.1步计算本体中任意节点的高度,计算方法是对于本体概念树中任意节点N,它的高度定义为Height(N)=Max(Depth(childOf(N))),其中Max表示求最大值,childOf(N)表示N的所有子孙,即N的高度应该是其所有子孙的深度的最大值,也就是从N的任意一个子孙到N距离的最大值;第3.4步,根据第3.1步、第3.2步、第3.3步计算本体中任意两个节点之间的语义相似度,计算方法是对本体概念树中任意两个节点N1,N2之间的语义相似度的定义为SN(N1,N2)SN(N1,N2)=Depth(com_parent(N1,N2))Height(root)×(length(N1,N2)+1);]]>第3.5步,根据第3.4步计算结果,将所有概念两两之间的相似度保存;二、基于语义的本地文档检索的操作步骤第一步,用户通过便携式设备如PDA或个人电脑,即PC,通过设计的界面向服务器提出查询请求,查询请求是一个以自然语言形式描述的语句,PDA将该语句以XML文件的形式传送给服务器,服务器接收到该XML文件后,解析XML文件内容,获得查询请求;第二步,服务器利用分词工具对查询请求即查询语句分词,提取其中的名词、代词、处所词、人名、地名、机构团体名、其它专名,将它们作为查询概念;第三步,根据本体和第二步,对查询概念进行扩展,得到查询概念的扩展概念以及它们的相似度,扩展的方法如下根据准备工作第3步得到的概念之间的相似度对由第二步获得的查询概念进行扩展,扩展的方法是定义一个阈值θ,凡是和查询概念之间相似度大于θ的概念都作为查询概念的扩展概念;第四步,根据第三步和准备工作中准备的关键词-文档矩阵对应的关键词生成查询向量q,如果关键词是查询概念则其值取1,如果关键词是查询概念的扩展概念,则其值是查询概念和该概念之间的相似度;除此之外,向量中对应分量的值取0;第五步,对关键词-文档矩阵进行奇异值分解(SVD),即At×d=Tt×t·St×d·Dd×dT,]]>然后A将分解后的矩阵降稚到K维,即Ak=Tt×t·diag(σ1,σ2,...σk,0,...,0)·Dd×dT,]]>降维的方法是如果Σi=0jσt≥α×Σt=0rσt]]>则k=j,其中0<α≤1;σi是非0的奇异值,r为关键词-文本矩阵分解后,中间矩阵的秩,α反映了对原始矩阵信息量的保持程度,例如α=0.7就是保留了原始矩阵70%的信息而去除了30%的信息(可能是噪声);第六步,根据第四步和第五步,将查询向量q变化到K维空间,向量变化空间的方法是q*=qTTKSK-1]]>其中q*是变化后的K维空间向量,q是原始查询向量,Tk是降维后A的左奇异向量矩阵(即Tt×t的前t行K列),SK是降维后A的奇异值矩阵(即St×d的前K行K列);第七步,根据第六步,计算降维后的查询向量和每一篇文档对应向量(即D的每一个K维行向量)的相似度,并根据相似度大小排序,相似度越大排的越靠前,向量相似度的计算方法是经典的Cos夹角的计算方法,具体是sim(q*,dj)=Σm=1kwim×wjm(Σm=1kwim2)·(Σm=1kwjm2)]]>其中,q*为查询向量,dj为第j个文本向量,k为语义空间的维数,wim为q*的第m维权值,wjm为dj的第m维的权值,这样就可以计算查询向量q*与每篇文本向量相似度,把相似度高于阈值的文本按相似度大小从高到低排列文本,再将该检索结果返回给用户。
全文摘要
一种基于语义的本地文档检索方法,属于信息检索的技术领域。传统的LSA方法,基于词袋模型,很难在概念层次上进行扩展,在语义层面上存在很多的信息丢失。本发明采用的检索方法是首先按照传统的LSA方法对本地文档进行索引,然后根据本体对查询语句中出现的概念进行语义扩展,再根据查询及其扩展概念生成查询向量,向量的值会考虑查询概念和扩展概念的相似度,所以在一定程度上弥补了传统的LSA方法在语义上的缺失。本发明的重要意义是对非结构化的文档信息科学的索引和有效的检索;实现对非结构化信息的随时随地的检索,帮助用户方便及时地获得自己需要的信息。
文档编号G06F17/27GK101059806SQ200710041649
公开日2007年10月24日 申请日期2007年6月6日 优先权日2007年6月6日
发明者顾君忠, 杨静, 李子成, 张伟, 孙双, 刘峰, 黄文蓓, 董晓春, 王 锋 申请人:华东师范大学