相似文本的检索方法及其装置与流程

文档序号:11830083阅读:201来源:国知局
相似文本的检索方法及其装置与流程
本发明涉及计算机检索领域,特别涉及相似文本的检索方法及其装置。
背景技术
:文本相似度是指两个或者多个文本的匹配程度的度量指标,文本之间语义或者词出现频次越接近,其两者之间的文本相似度越高。传统的文本匹配,例如编辑距离计算,向量空间模型(VSM),可以很好的度量两两文本之间的相似度,但是对于海量文本,则暴露出比对速度慢,空间需求高的缺点。目前,业内一般使用simhash等指纹算法,将文本相似问题转换为simhash码的编辑距离计算,由此来解决海量文本的索引问题,该方式对于大文本的相似度计算上有着显著效果,但是对于中长或者短文本(100字符以内),则会产生相当高的偏差(尽管两个文本相似度很高,simhash的编辑距离却很大),无法适用在需要高召回率的场景中。技术实现要素:本发明的目的在于提供一种相似文本的检索方法及其装置,对于海量短文本的检索具有较高的召回率。为解决上述技术问题,本发明的实施方式公开了一种相似文本的检索方法,针对文本库中的各被索引文本预先设置有N个索引,N个索引分别对应N个不同的索引算法,每个索引包括多个索引值,每个索引值对应至少一个被索引文本,其中,索引算法是根据一个文本计算该文本的索引值的算法, N为大于1的整数,该方法包括以下步骤:使用N个不同的索引算法分别计算出待检索文本对应于N个索引的N个索引值;使用N个索引值分别在对应的索引中检索出具有相同索引值的各被索引文本,作为候选相似文档;将待检索文本与所有的候选相似文档逐一进行相似性匹配,以得到最接近的文本。本发明的实施方式还公开了一种相似文本的检索装置,该装置针对文本库中的各被索引文本预先设置有N个索引,N个索引分别对应N个不同的索引算法,每个索引包括多个索引值,每个索引值对应至少一个被索引文本,其中,索引算法是根据一个文本计算该文本的索引值的算法,N为大于1的整数,该装置包括以下模块:检索文本索引值计算模块,用于使用N个不同的索引算法分别计算出待检索文本对应于N个索引的N个索引值;候选文档检索模块,用于使用N个索引值分别在对应的索引中检索出具有相同索引值的各被索引文本,作为候选相似文档;相似性匹配模块,用于将待检索文本与所有的候选相似文档逐一进行相似性匹配,以得到最接近的文本。本发明实施方式与现有技术相比,主要区别及其效果在于:使用多个索引算法生成的索引值来构建多个索引,通过多个索引得到的候选相似文档中含有和待检索文本相似的文本的几率大大提高,对于海量短文本的检索具有较高的召回率,可防止漏检。使用多个索引算法生成的索引值来构建多个索引,通过多个索引得到的候选相似文档中含有和待检索文本相似的文本的几率大大提高,对于海量短 文本的检索具有较高的召回率,可防止漏检。进一步地,当待检索文本的索引值命中索引中的一个索引值,则可以得到该索引值对应的全部被索引文本。进一步地,通过计算最小哈希值来构建相似文本的索引,可减少内存空间消耗。附图说明图1是本发明第一实施方式中一种相似文本的检索方法的流程示意图;图2是本发明第三实施方式中优选例的一种索引方法的流程示意图;图3是本发明第三实施方式中优选例的一种检索方法的流程示意图;图4是本发明第四实施方式中一种相似文本的检索装置的结构示意图。具体实施方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。术语解释:文本相似度:衡量两个文本语义或者字符意义上是否相似的一种度量,通常文本中词含义越接近,重复词越多,则其相似度越高。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明第一实施方式涉及一种相似文本的检索方法,图1是该相似文本 的检索方法的流程示意图。该相似文本的检索方法针对文本库中的各被索引文本预先设置有N个索引,N个索引分别对应N个不同的索引算法,每个索引包括多个索引值,每个索引值对应至少一个被索引文本,其中,索引算法是根据一个文本计算该文本的索引值的算法,N为大于1的整数,如图1所示,该方法包括以下步骤:步骤101,使用N个不同的索引算法分别计算出待检索文本对应于N个索引的N个索引值。步骤102,使用N个索引值分别在对应的索引中检索出具有相同索引值的各被索引文本,作为候选相似文档。可以理解,每个索引中包括的多个索引值是针对文本库中的被索引文本根据索引算法计算得到的。步骤103,将待检索文本与所有的候选相似文档逐一进行相似性匹配,以得到最接近的文本。此后结束此流程。业内一般使用simhash等指纹算法(这里也称为索引算法)将文本相似度问题转换为simhash码的编辑距离计算,由此来解决海量文本的索引问题,对于大文本的相似度计算(例如对于两本较长的古典名著进行相似度计算)有着显著效果,但是,对于短文本却会产生相当高的偏差(尽管两个文本相似度很高,simhash的编辑距离却很大)。例如对于网络中的短文本,当网络管理员将一些禁止的评论作为文本库时,对于仅改变了评论中的一个词的待检索评论,用传统的算法很难将该待检索评论作为相似度很高的文本,也即尽管文本库中的评论与该待检索评论相似度很高,但是编辑距离却很大。而实施方式使用多个索引算法生成的索引值来构建多个索引,通过多个 索引得到的候选相似文档中含有和待检索文本相似的文本的几率大大提高,对于海量短文本的检索具有较高的召回率,可防止漏检。具体的原理将在第三实施方式中的优选例中作出解释。其中,召回率(RecallRate,也叫查全率)是检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。本发明第二实施方式涉及一种相似文本的检索方法,第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:针对文本库中的各被索引文本预先设置N个索引的步骤包括以下子步骤:依次使用N个不同的索引算法分别计算出文本库中各个被索引文本对应于N个索引算法的索引值;将各个被索引文本对应于同一个索引算法的索引值构建成一个索引,共构建与N个索引算法对应的N个索引。需要注意的是,对各被索引文本预先设置N个索引时所使用的N个不同的索引算法与步骤101中用于计算待检索文本的N个索引值所使用的N个不同的索引算法一一对应。当待检索文本的索引值命中索引中的一个索引值,则可以得到该索引值对应的全部被索引文本。此外,可以理解,在上述预先设置N个索引的步骤中,既可以先使用一个索引算法计算出所有被索引文本对应于该索引算法的索引值,并将索引值构建成一个索引,再对于其它N-1个不同的索引算法重复上述操作;也可以先针对一个被索引文本依次使用N个不同的索引算法计算出该被索引文本对应于N个不同的索引算法的索引值,对其它被索引文本重复上述操作,最后在所有索引值中将分别对应于N个索引算法的索引值构建成N个索引。本发明第三实施方式涉及一种相似文本的检索方法,第三实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:通过计算最小哈希值 来构建相似文本的索引,可减少内存空间消耗。具体地说:在步骤101中,包括以下子步骤:对待检索文本进行分词处理得到文本词集合;对于每一个索引算法执行以下步骤:使用哈希函数计算文本词集合中所有词元素的哈希值,并将哈希值中的最小值(也称作最小哈希值)作为待检索文本的一个索引值。此外,可以理解,对于每次使用的哈希函数,均可以为随机哈希函数,算法以及生成的哈希值长度不受限制。其中,MinHash是基于JaccardIndex相似度(海量数据不可行)的算法,是一种降维的方法。例如A,B两个集合:A={s1,s3,s6,s8,s9}B={s3,s4,s7,s8,s10},MinHash的基本原理:在A∪B这个大的随机域里,选中的元素落在A∩B这个区域的概率,这个概率就等于Jaccard的相似度。最小哈希:S1S2S3A100B010C000D101行的随机排列转换(也称置换运算)S1S2S3B010D101A100C000哈希值:排列转换后的行排列次序下第一个列值为1的行的行号,例如h(S1)=D,h(S2)=B。两个集合经随机排列之后得到的两个最小哈希值相等的概率等于这两个集合的Jaccard相似度。通过计算最小哈希值来构建相似文本的索引,可减少内存空间消耗。在本发明的其它实施方式中,也可以通过其它方式计算待检索文本对应于N个索引的N个索引值提取其他文本特征,例如simhash,或者直接使用倒排索引来构建相似文本索引等,但是消耗空间会比本实施方式的解决方案高得多。倒排索引构建相似文本索引时,分词后的所有词元素都对应一个索引值,而通过计算最小哈希值来构建相似文本的索引,取所有词元素中最小的哈希值作为索引值,有效降低了内存空间的消耗。其中,优选地,在上述“对待检索文本进行分词处理得到文本词集合”的子步骤中,还包括以下子步骤:对待检索文本进行分析扫描;对扫描后的待检索文本进行特殊字符和html标签过滤以及字体转换;对待检索文本进行分词并统计词频,并去除噪音词,得到文本词集合。优选地,在步骤103中,可以根据编辑距离或者空间向量模型进行相似性匹配。其中,向量空间模型(VSM)是最常见的相似度计算模型,其原理是计 算两空间向量的余弦夹角,如下式所示:Cosine:Sim(d,q)=d·q||d||×||q||=Σi(ai×bi)Σiai2×Σibi2.]]>此外,可以理解,在本发明的其它实施方式中,也可以通过其它业内正在使用的两两相似文本的比对方法进行相似性匹配。作为本实施方式的优选例,提出一种相似文本索引构建及检索方法,来解决目前技术在海量短文本(1000字符以内)处理上的不足。该索引可以从海量文本集合中得到一个较小的候选相似文本集合。本优选例的步骤包括索引步骤和检索步骤,其中索引步骤包括:步骤一,对每个文本预处理后分词,得到文本词集合S1,S2...。步骤二,对于每个文本词集合,使用n个minhash算法(本实施方式中所称的索引算法),分别得到该词集合的minhash值(本实施方式中所称的索引值),记为S1M1,S1M2,S1M3...S1Mn,S2M1,S2M2,S2M3..…S2Mn...。步骤三,对于每个minhash算法生成元素构建索引,记为index1,index2…indexn,例如对于文档doc1和doc2,其S1M1和S2M1相同,则其拥有相同的索引值S12M1。检索步骤包括:步骤一,输入文本预处理后分词,得到文本词集合S。步骤二,使用索引步骤中的n个minhash算法,得到S的minhash值,记为SM1,SM2...SMn步骤三,对SM1,SM2...SMn分别查找索引,得到文档集合Sdoc。步骤四,使用传统相似度比对方式,逐一比对Sdoc集合中的文档和输入文本的相似度,可以得到相似度较高的doc。下面将结合附图,对本优选例做进一步说明。如图2所示,本发明实例提供一种索引方法,包括:步骤一,对每个文本预处理后分词,得到文本词集合S1,S2...。步骤二,对于每个文本词集合,使用n个minhash算法,分别得到该词集合的minhash值,记为S1M1,S1M2,S1M3...S1Mn,S2M1,S2M2,S2M3..…S2Mn...。步骤三,对于每个minhash算法生成元素构建索引,记为index1,index2…indexn,例如对于文档doc1和doc2,其S1M1和S2M1相同,则其拥有相同的索引值S12M1,该索引拥有hash值与索引文本的对应关系。步骤一具体包括:1.对录入文本进行分析扫描。2.对文本进行特殊字符和html标签过滤,简繁体以及异体字转换。3.对该文本进行分词并统计词频,根据停用词表去除噪音词,得到文本词集合S。步骤二具体包括:1.生成minhash值使用任意的hash生成算法,对词集合S中的所有词元素进行hash,可以得到一个值最小的hash值(或者值最大),则该值即为该词集合S的一个minhash值。2.多次生成minhash值使用不同的hash生成算法,重复1中的步骤,对词集合S多次生成minhash值。特别需要指出的是,对于每次使用的hash算法,均可以为随机hash函数,算法以及生成的hash值长度并不受限制。步骤三具体包括:对于每个输入文本,重复进行步骤一以及步骤二操作,对于每个使用到的hash算法,可以得到一组minhash值,该组minhash值,即为文本集合的一个索引,对所有的hash算法,均构建一个这样的索引。该索引的特征为,当待检索的hash值命中索引中的一个minhash值,可以得到该minhash值多对应的全部文档。事例性的,如使用3组hash算法,对于词集合S1,可以得到三个minhash值,S1m1,S1m2,S1m3,对于词集合S2,则有S2M1,S2M2,S2M3,对于Sn则有SnM1,SnM2,SnM3,对3组hash算法分别构建索引index1={S1M1,S2M1,….SnM1},index2={S1M2,S2M2,….SnM2},index3={S1M3,S2M3,….SnM3},当使用hash值h1检索index1时,如果h1=S1M1=S2M1,则根据h1可以得到文档doc1,doc2。如图3所示,本发明实例提供一种相似文本的检索方法,包括:步骤一,输入文本预处理后分词,得到文本词集合S。步骤二,使用索引步骤中的n个minhash算法,得到S的minhash值,记为SM1,SM2...SMn。步骤三,对SM1,SM2...SMn分别查找索引,得到候选文档集合Sdoc。步骤四,使用传统相似度比对方式,逐一比对Sdoc集合中的文档和输入文本的相似度,可以得到相似度较高的doc。步骤一具体包括:1.对输入文本进行分析扫描。2.对文本进行特殊字符和html标签过滤,简繁体以及异体字转换。3.对该文本进行分词并统计词频,根据停用词表去除噪音词,得到文本词集合S。步骤二具体包括:使用构建索引时使用的hash算法,计算该输入文本的minhash值,如有n个hash算法,则得到的minhash值记为SM1,SM2...SMn,该下标值需要和构建索引时一一对应。步骤三具体包括:从对应不同hash算法的索引中,检索出对应的文档集合,将所有文档集合合并,则可以得到该输入文本的候选相似文档集合。例如,SM1检索index1,得到{doc1,doc2},检索index2,得到{doc1,doc3,doc4},检索index3,得到{docn},合并得到的文档集合,得到候选相似文本集合{doc1,doc2,doc3,doc4,docn}。步骤四具体包括:对从步骤三中得到的候选相似文档集合,分别和输入文本进行相似比对,使用的相似文本比对算法可以是编辑距离,SVM或者任意的业内正在使用的两两相似文本比对算法。由此可以得到最接近输入文本的候选文本。下面将进一步描述该索引的作用:对于同一个hash算法f,其minhash值标记为h(f,S)。h(f,S)=minf(X)X∈S对于两个不同集合S1,S2,如果两集合之间元素相同部分占比,即相似度可标记为|A∩B|/|A∪B|,由于hash的随机性,两集合的minhash相同 的概率和该相似度值相等,即:P(h(f,S1)=h(f,S2))=|A∩B|/|A∪B|基于该特性,当命中索引中的hash值时,两文档之间可能相似的概率等于其两者的相似度。因此,当拥有多个hash算法时,通过多个索引得到的候选相似文档集合中含有和输入文本相似的文本几率为1-(1-P)^n,特别的,当P=0.8,n=3时,如果索引构建时的有一文本和输入文本相似度为0.8,则其被检索到的概率为1-(1-0.8)^3=99.2%。可以明显地看出,通过多个索引得到的候选相似文档中含有和检索文本相似的文本的几率较大。本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(ProgrammableArrayLogic,简称“PAL”)、随机存取存储器(RandomAccessMemory,简称“RAM”)、可编程只读存储器(ProgrammableReadOnlyMemory,简称“PROM”)、只读存储器(Read-OnlyMemory,简称“ROM”)、电可擦除可编程只读存储器(ElectricallyErasableProgrammableROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(DigitalVersatileDisc,简称“DVD”)等等。本发明第四实施方式涉及一种相似文本的检索装置,图4是该相似文本的检索装置的结构示意图。该相似文本的检索装置针对文本库中的各被索引文本预先设置有N个索引,N个索引分别对应N个不同的索引算法,每个索引包括多个索引值,每个索引值对应至少一个被索引文本,其中,索引算法是根据一个文本计算该文本的索引值的算法,N为大于1的整数,如图4所示,该装置包括以下模 块:检索文本索引值计算模块,用于使用N个不同的索引算法分别计算出待检索文本对应于N个索引的N个索引值;候选文档检索模块,用于使用N个索引值分别在对应的索引中检索出具有相同索引值的各被索引文本,作为候选相似文档;相似性匹配模块,用于将待检索文本与所有的候选相似文档逐一进行相似性匹配,以得到最接近的文本。本实施方式使用多个索引算法生成的索引值来构建多个索引,通过多个索引得到的候选相似文档中含有和待检索文本相似的文本的几率大大提高,对于海量短文本的检索具有较高的召回率,可防止漏检。第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。本发明第五实施方式涉及一种相似文本的检索装置,第五实施方式在第四实施方式的基础上进行了改进,主要改进之处在于:还包括索引预设模块,用于针对文本库中的各被索引文本预先设置N个索引,该模块包括以下子模块:被索引文本索引值计算子模块,用于依次使用N个不同的索引算法分别计算出文本库中各个被索引文本对应于N个索引算法的索引值;索引构建子模块,用于将各个被索引文本对应于同一个索引算法的索引值构建成一个索引,共构建与N个索引算法对应的N个索引。第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施 方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。本发明第六实施方式涉及一种相似文本的检索装置,第六实施方式在第四实施方式的基础上进行了改进,主要改进之处在于:通过计算最小哈希值来构建相似文本的索引,可减少内存空间消耗。具体地说:优选地,在检索文本索引值计算模块中,包括以下子模块:分词子模块,用于对待检索文本进行分词处理得到文本词集合;哈希子模块,用于对于每一个索引算法执行以下步骤:使用哈希函数计算文本词集合中所有词元素的哈希值,并将哈希值中的最小值作为待检索文本的一个索引值。优选地,在上述分词子模块中,包括以下子模块:扫描子模块,用于对待检索文本进行分析扫描;字符预处理子模块,用于对扫描后的待检索文本进行特殊字符和html标签过滤以及字体转换;统计去噪子模块,用于对待检索文本进行分词并统计词频,并去除噪音词,得到文本词集合。优选地,在相似性匹配模块中,根据编辑距离或者空间向量模型进行相似性匹配。第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。本发明使用多个索引算法生成的索引值来构建索引,并收集所有所有命中索引的文档来逐一做相似性匹配,主要解决了海量样本的索引构建和检索 问题。需要说明的是,本发明各设备实施方式中提到的各模块都是逻辑模块,在物理上,一个逻辑模块可以是一个物理模块,也可以是一个物理模块的一部分,还可以以多个物理模块的组合实现,这些逻辑模块本身的物理实现方式并不是最重要的,这些逻辑模块所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的模块引入,这并不表明上述设备实施方式并不存在其它的模块。需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1