基于数据挖掘的数据搜索方法

文档序号:10655461阅读:401来源:国知局
基于数据挖掘的数据搜索方法
【专利摘要】本发明提供了一种基于数据挖掘的数据搜索方法,该方法包括:预处理用户检索词,计算文本向量逆向词频和近似度矩阵,得到对用户输入的检索词的分类结果,根据分类结果进行检索。本发明提出了一种基于数据挖掘的数据搜索方法,利用搜索词的特征表示理解用户意图,并通过改进的索引机制提高了搜索引擎的效率,增强了用户体验。
【专利说明】
基于数据挖掘的数据搜索方法
技术领域
[0001 ]本发明设及数据捜索,特别设及一种基于数据挖掘的数据捜索方法。
【背景技术】
[0002] 随着互联网的发展,捜索引擎要处理的数据量越来越大,对捜索引擎的性能要求 越来越高。高效的针对用户的捜索词,可W挖掘出一些潜在的用户意图,其中根据捜索词的 分类可W得知用户想捜索到哪个领域的结果,针对用户意图及运个领域的特点可W给用户 推荐满足用户需求的应用,来优化捜索结果。为了提高信息检索效率,信息检索系统一般都 采用基于云的并行计算平台和索引技术。索引的结构设计、存储方式、检索操作和动态更新 算法对信息检索的效率有很大的影响。然而,现有技术的捜索引擎对捜索词的处理不够完 善,没有特别对用户意图进行有效预测。并且在索引处理上,索引的添加需要将新增的记录 与原有的索引的相同项合并。在皿FS中运项操作需要重新创建块。每个化taNode上的副本 信息也需要更新。而且在索引中的删除内容只能删除整个块,并产生大量的I/O通信,浪费 大量的时间和资源。

【发明内容】

[0003] 为解决上述现有技术所存在的问题,本发明提出了一种基于数据挖掘的数据捜索 方法,包括:
[0004] 预处理用户检索词,计算文本向量逆向词频和近似度矩阵,得到对用户输入的检 索词的分类结果,根据分类结果进行检索。
[0005] 优选地,所述计算文本向量逆向词频和近似度矩阵,进一步包括:
[0006] 结合分词特性与结合领域知识的语义权值,在所有的DataNode均部署分词工具 包,在分词后获得文本的检索词W及该检索词在本文档的出现次数,W统计词频,扫描领域 知识库,计算出该词的位置权值和语义跨度权值,再在第一个Map阶段调用语义近似度函数 进行统计;然后在Reduce阶段计算每个词的逆向词频,将运些信息输出为第二个MapReduce 的输入;在第二个Map阶段,计算语义近似度结果,如果近似度大于预设语义阔值,则返回语 义权值,否则不加权,再组合所有的权值,得到最终语义权值;第二个Reduce阶段,对向量规 格化处理;
[0007] 对于每一个文本,只计算编号大于自己文本的近似度,即可计算出整个矩阵,其 MapReduce环境下并行过程为:
[000引 Map阶段:首先进行数据分割,将分割的数据由NameNode分配给化taNode,同时给 DataNode编号,同时计算文本的近似度,当Map阶段结束后,将中间结果输出到本地作为 Reduce阶段的输入;
[0009] Reduce阶段:收集每一行的数据,并且汇总输出矩阵;
[0010] 然后采用优化划片的输入方式,将高维矩阵分块成小矩阵运算;Map阶段进行数据 划片,根据划片偏移信息读取子矩阵A和B在本地做乘法,结果为矩阵C的一个子矩阵,输出 到指定偏移位置;Reduce阶段计算矩阵C=AB;将对称矩阵通过正交相似变换表示成对称= 对角矩阵;求解对称=对角矩阵的前K个最小特征向量,将对称=对角矩阵的运算最终转化 为拉普拉斯矩阵与向量的相乘运算,得到矩阵的最小特征值和特征向量后,计算每个文本 到某一集合的近似度。
[0011] 本发明相比现有技术,具有W下优点:
[0012] 本发明提出了一种基于数据挖掘的数据捜索方法,利用捜索词的特征表示理解用 户意图,并通过改进的索引机制提高了捜索引擎的效率,增强了用户体验。
【附图说明】
[0013] 图1是根据本发明实施例的基于数据挖掘的数据捜索方法的流程图。
【具体实施方式】
[0014] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合运样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利 要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节W 便提供对本发明的透彻理解。出于示例的目的而提供运些细节,并且无运些具体细节中的 一些或者所有细节也可W根据权利要求书实现本发明。
[0015] 本发明的一方面提供了一种基于数据挖掘的数据捜索方法。图1是根据本发明实 施例的基于数据挖掘的数据捜索方法流程图。
[0016] 本发明根据用户输入的检索词,使用预先训练好的分类器对检索词的扩充文本进 行分类,将分类结果发送给应用系统,识别检索词的属性和用户意图,获得模板和数据,再 WWeb应用的形式呈现到捜索引擎中。
[0017] 所述应用系统包括:
[0018] 代理服务器,保护内部系统端口不对外暴露,并且支持高并发、负载均衡,也有助 于提高访问速度。
[0019] Web服务器:采用MVC的架构,调用各个服务,将数据进行聚集,最终与页面样式进 行整合。
[0020] 缓存服务器:将一些更新频率低的信息存储在缓存服务器中,而不需要反复检索 数据库,缓解数据库的压力。
[0021] 属性识别服务:识别出子类别及用户意图,来选择适合于用户需求的应用模板。
[0022] 分领域资源库:根据不同的领域,建立自己的资源库。
[0023] 数据库:采用主库和从库的结构,主库负责写入,从库负责读取,实现读写分离。另 外主库之间需要同步,从库也要与主库的数据保持同步。
[0024] 检索服务器:当检索是带有一定条件,或有排序的需求时,使用索引的技术来快速 根据检索条件得到结果。
[0025] 针对检索词的分类,本发明利用捜索引擎对检索词进行文本扩充,将检索词扩充 为捜索引擎结果中的前k条摘要信息,k为扩充后的词条数,将扩充文本的分类结果作为原 捜索文本的分类结果。
[0026] 在检索词预处理阶段,是将检索词进行扩充,用向量的形式存储,丢弃广告、图片、 Web应用等信息量较少的结果,过滤网页标签,提取前k条摘要为文本的扩充结果,然后对扩 充文本进行预处理,预处理分为分词、丢弃停用词。每个摘要,即一个文档,里面包含的是特 征项集合,将它用向量来表示。然后在训练阶段,根据训练集中的文本的扩充信息,进行特 征选择、特征加权、建立分类器。具体包括将训练集中的检索词扩充为在检索词预处理阶段 中获取到的该检索词的扩充文本。利用特征选择方法选择代表性特征项,将大数量级的特 征项降维,使用本发明改进的适用于文本分类的改进逆向词频方法进行特征加权,最后使 用文本分类的方法建立分类器,供测试阶段使用。在分类阶段,将待分类的检索词进行分 类。具体包括先将待分类检索词扩充为扩充文本,然后利用在训练阶段提取出来的特征进 行降维,用特征加权方法将特征用向量表示,最后利用训练阶段优化好的分类器对扩充信 息的特征向量进行分类,得到的结果为该检索词的分类。
[0027] 通过反馈训练的算法调整分类器模型。分类器判断一个文本属于哪个分类的同 时,给出一个可信度,如果该值低于阔值,则判定它的可信度不高,会记录到反馈训练的数 据文本集。通过大数据平台离线分析用户行为日志,获取点击量小于预定点击量阔值的Web 应用对应的检索词,将运些词也记录到反馈训练的数据文本集当中。然后人工进行筛选、标 注,将一部分高访问量的检索词直接放入高频词表中,下一次捜索的时候会先与高频词表 中的词进行匹配,一部分作为学习反馈的最终数据。依次对比训练分类器中的向量与原分 类器中向量的近似度,如果相似,就删除原分类器中的运条向量,用新向量替代,如果没有 找到相似的向量,就添加到新的分类器向量中。
[0028] 其中利用训练阶段优化好的分类器对扩充信息的特征向量进行文本分类,进一步 分为文本向量逆向词频建立和计算近似度矩阵。本发明结合分词特性与结合领域知识的语 义权值,在所有的化taNode均部署分词工具包,在分词后获得文本的检索词W及该检索词 在本文档的出现次数,W统计词频,扫描领域知识库,计算出该词的位置权值和语义跨度权 值,再在第一个Map阶段调用语义近似度函数进行统计。然后,在Reduce阶段计算每个词的 逆向词频,将运些信息输出为第二个MapReduce的输入。在第二个Map阶段,计算语义近似度 结果,如果近似度大于预设语义阔值,则返回语义权值,否则不加权,再组合所有的权值,得 到最终语义权值。第二个Reduce阶段,对向量规格化处理。
[0029] 对于每一个文本,只需要计算编号大于自己文本的近似度,即可计算出整个矩阵。 MapReduce环境下并行化设计方案如下:
[0030] Map阶段:首先进行数据分割,将分割的数据由NameNode分配给化taNode,同时给 DataNode编号,同时计算文本的近似度,当Map阶段结束后,将中间结果输出到本地作为 Reduce阶段的输入;
[0031] Reduce阶段:收集每一行的数据,并且汇总输出矩阵。
[0032] 然后采用优化划片的输入方式,将高维矩阵分块成小矩阵运算。Map阶段进行数据 划片,根据划片偏移信息读取子矩阵A和B在本地做乘法,结果为矩阵C的一个子矩阵,输出 到指定偏移位置。Reduce阶段计算矩阵C=AB。将对称矩阵通过正交相似变换表示成对称= 对角矩阵。求解对称=对角矩阵的前K个最小特征向量,将对称=对角矩阵的运算最终转化 为拉普拉斯矩阵与向量的相乘运算。得到矩阵的最小特征值和特征向量后,计算每个文本 到某一集合的近似度。
[0033] 在索引结构的改进方面,本发明的索引结构包括基本索引、增量索引、差分索引和 词库。根据上述结构,采用基于词频大小和词频排序的文件存储策略,W及项中数据的压缩 编码。针对上述索引结构,设计了在云平台下进行相应的索引建立、更新、删除和检索。
[0034] 索引结构由运行在皿FS的化meNode上的增量索引、差分索引W及词库和运行于 化taNode上的基本索引构成。基本索引由多个文档组成。文档由多个索引项构成。每个索引 项包含一个检索词和多个文件列表。文件列表由文件ID和该检索词在运个文档中出现的次 数和位置信息构成。文件保存在皿FS中,被分块后存储于集群中不同的化taNode。差分索引 保存在HDFS的化meNode上。无效文档列表记录所有文档库中要被删除的文档ID,响应检索 请求时,系统根据该列表,从检索结果中过滤掉该列表中的所有ID对应的文件。差分索引在 文档库中有文件被删除时生成。到差分索引文件达到一定阔值时,系统根据该索引文件更 新基本索引。增量索引运行在HDFS的各个化化Node上,用于保存新增的索引项。当文件库中 有新增文件时,由该文件生成一条独立索引。独立索引用于记录一个文档中出现的所有检 索词在该文档中出现的信息。当独立索引的数量到达一定的阔值,会触发合并过程,将所有 独立索引合并为一个整体,即一个增量索引。当增量索引的数量达到一定阔值时,也会触发 合并操作,将多个增量索引合并到基本索引中。索引结构中,将词库中的词按频率划分为高 频词和低频词,对不同频率的词采用不同的方式存储在HDFS的化meNode内存中,W散列表 的形式组织。对于高频词,每个词用一个独立的文件保存其索引,对于低频词,将多个检索 词的表保存到同一个文件中。通过散列函数将每一个高频词的索引信息映射到独立的文件 中,并将多个低频词的索引信息映射到一个文件中。检索时,根据词的频率属性,采用不同 的方式进行分布式检索。
[0035] 索引项的结构如下:
[0036] <wordid,docnum,<doCid,freq,<pi,p2, . . . ,Pn?, . . . ,<docid,freq,<pi,p2, . . .pn> ?
[0037] Wordid表示检索词,docnum代表检索词wordid在docnum个文档中出现过。后面为 docnum个Doclist,每个Doclist表示wordid在一个文件中出现的次数和位置信息。Docid代 表该检索词出现的一个文件编号,freq表示检索词在运个文件中出现的次数,随后是一个 长度为打eq的列表,表示检索词每次出现的位置信息。
[0038] 上述结构中存在两个递增的列表:
[0039] 递增的文档ID号:(doci,doC2,doC3,. . .,doCn)。
[0040] 递增的位置信息序列:(P1,P2,P3, . . .,pn)。
[0041] 保留序列中的第一项,后面的每一项用它与前一项的差值来代替。处理之后的序 列如下:
[0042] 文档ID差值序列:(doci,doC2-doci,doc:3-doC2. . .,doCn-doCn-i)。
[00创一个文件中位置差值序列:(P1,P2-P1,P3-P2. . .,Pn-pn-l)。
[0044] 变换处理后的序列,样本空间缩小并能使用更高效的压缩方法。
[0045] 当捜索引擎抓取到一定数量的网页本地文本库之后,需要建立初始索引。建立索 引前,需要对抓取的文本文件进行预处理,最重要的一步即是分词处理。建立索引的基本过 程描述如下:
[0046] 步骤1.首先对抓取到的文本进行分词,然后将分词后的文件存放到皿FS的各个 Da1:aNode 中。
[0047] 步骤2.接着创建一个MapReduce的作业处理器,负责控制建立作业的执行。
[004引步骤3.作业处理器根据情况创建map任务,map任务运行在DataNode上,每个分块 中的文档分别进行处理,产生中间文件。
[0049] 步骤4 .map任务执行完后,多个reduce任务开始执行,将map任务产生的中间文件 合并,生成索引文件。
[0050] 步骤5.根据检索词的频率属性和在词库中的词频排序,采用W下散列函数,将不 同的检索词的索引保存到不同文件。
[0051] 所述散列函数表示为SHAUf (r)),将低频词的频率排序作为函数的输入,输出保 存该词索引的文件名。r是该检索词在词库中词频排序,f(r)将多个检索词根据词频排序映 射到一个正整数值,表达为:
[0化2]
[0053] N是一个阔值,表示在词库中,排序大于N的检索词属于低频词,排序小于或等于N 的词是高频词。其中a为预定义正实数参数。
[0054] 在捜索引擎不断爬取互联网信息时,索引更新过程如下:
[0055] 当文本库中的新增文本达到一定数量时,触发系统调用对文本分析生成一定数量 的独立增量索引,独立增量索引保存于内存中。
[0056] 当内存中的独立增量索引增加到一定数量时,触发独立增量索引合并程序,将相 同检索词的多项索引合并为一项,保存到相应的增量索引文件中去。
[0057] 当增量索引文件达到一定的数量,触发主文件合并程序。
[0058] 其中,生成单一增量索引的操作由网络爬虫触发,对网络爬虫系统新添加的文本 进行分析,生成该文本中所有检索词的项。该操作WMapReduce的方式运行在皿FS中的不同 化taNode上,尽量满足数据本地化,生成的单一增量索引分布在不同的化taNode上。增量索 引合并操作由生成单一增量索引的操作触发。当一个化taNode内存上的数据达到阔值,该 操作会将单一增量索引合并到皿FS中的增量索引文件。检索词与增量索引文件名的映射关 系同样由上述散列函数来完成。增量索引与基本索引的合并操作由单一增量索引和增量索 引合并操作触发。
[0059] 本发明进行信息删除的策略是基于差分索引的。增量索引合并时触发删除操作的 阔值Pl定义如下:
[0060] P1=N1/N2
[0061] NI表示增量索引含有的被删除文档个数,N2为差分索引中无效文档列表中元素个 数。
[0062] 增量索引与基本索引的合并时触发删除操作的阔值P2定义如下:
[0063] P2 = N1/N3
[0064] NI同样是差分索引中无效文档列表中元素个数。N3是文档集中所有文档数。
[0065] 当增量索引合并操作发生时,先判断是否达到阔值P1。如果达到,首先从差分索引 文件中读取所有的差分索引,将增量索引中所有包含运些差分索引的信息删除,然后再合 并到基本索引。如果没有达到阔值,就直接合并到基本索引。合并到基本索引W后,再判断 是否达到阔值P2。如果达到,就将基本索引信息中删除所有差分索引中的信息。
[0066] 运样,系统响应检索请求时,先从基本索引和增量索引信息获取检索结果,再根据 删除文档中的无效文档列表过滤掉已经被删除了的文档信息。当某个时间段的差分索引用 来更新了增量索引和基本索引中的所有信息后,就将该时间段的差分索引从文件中删掉并 将该事件段删除的所有文档ID从无效文档列表中删除。
[0067] 索引的检索是捜索引擎系统响应检索请求的关键操作。捜索引擎收到检索请求 后,对输入的检索词信息进行分析处理,然后用处理后的检索词来对索引进行检索。操作步 骤描述如下:
[0068] 步骤1.用检索词检索词库。先根据散列函数获取到该检索词基本信息在内存中的 位置,然后读取到基本信息。判断词库中基本信息的高低频字段。如果是高频词,转到步骤 2,如果是低频词,则转到步骤3。
[0069] 步骤2.调用散列函数将检索词作为输入,得到保存该检索词索引的文件名。
[0070] 步骤3.调用散列函数,将检索词的词频排序信息作为函数输入,得到保存该检索 词索引的文件名。
[0071] 步骤4.根据得到的HDFS的文件名,对基本索引进行检索。首先创建任务管理器,执 行MapReduce任务,在系统的各个化taNode上分别运行一定数量的Map任务和Reduce任务。 Map任务处理文件在本地的分块数据,从中获取到数据项,保存为中间数据。然后传递给 Reduce任务进行合并处理。Reduce任务的输出即为检索的初始结果。
[0072] 步骤5.用与步骤4相同的方法,对增量索引文件进行MapReduce检索,查到的结果 与上一步得到的初始结果合并。
[0073] 步骤6.从内存中检索独立增量索引,检索结果与上一步得到的结果合并。
[0074] 步骤7.检索化meNode中的差分索引,根据无效文档列表,对上一步得到的结果进 行过滤处理。
[0075] 步骤8.将得到的所有文档列表通过预定义算法进行排序。
[0076] 步骤9.返回排序后的结果。
[0077] 综上所述,本发明提出了一种基于数据挖掘的数据捜索方法,利用捜索词的特征 表示理解用户意图,并通过改进的索引机制提高了捜索引擎的效率,增强了用户体验。
[0078] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可W用通用 的计算系统来实现,它们可W集中在单个的计算系统上,或者分布在多个计算系统所组成 的网络上,可选地,它们可W用计算系统可执行的程序代码来实现,从而,可W将它们存储 在存储系统中由计算系统来执行。运样,本发明不限制于任何特定的硬件和软件结合。
[0079] 应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的 原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨 在涵盖落入所附权利要求范围和边界、或者运种范围和边界的等同形式内的全部变化和修 改例。
【主权项】
1. 一种基于数据挖掘的数据搜索方法,其特征在于,包括: 预处理用户检索词,计算文本向量逆向词频和近似度矩阵,得到对用户输入的检索词 的分类结果,根据分类结果进行检索。2. 根据权利要求1所述的方法,其特征在于,所述计算文本向量逆向词频和近似度矩 阵,进一步包括: 结合分词特性与结合领域知识的语义权值,在所有的DataNode均部署分词工具包,在 分词后获得文本的检索词以及该检索词在本文档的出现次数,以统计词频,扫描领域知识 库,计算出该词的位置权值和语义跨度权值,再在第一个Map阶段调用语义近似度函数进行 统计;然后在Reduce阶段计算每个词的逆向词频,将这些信息输出为第二个MapReduce的输 入;在第二个Map阶段,计算语义近似度结果,如果近似度大于预设语义阈值,则返回语义权 值,否则不加权,再组合所有的权值,得到最终语义权值;第二个Reduce阶段,对向量规格化 处理; 对于每一个文本,只计算编号大于自己文本的近似度,即可计算出整个矩阵,其 MapReduce环境下并行过程为: Map阶段:首先进行数据分割,将分割的数据由NameNode分配给DataNode,同时给 DataNode编号,同时计算文本的近似度,当Map阶段结束后,将中间结果输出到本地作为 Reduce阶段的输入; Reduce阶段:收集每一行的数据,并且汇总输出矩阵; 然后采用优化划片的输入方式,将高维矩阵分块成小矩阵运算;Map阶段进行数据划 片,根据划片偏移信息读取子矩阵A和B在本地做乘法,结果为矩阵C的一个子矩阵,输出到 指定偏移位置;Reduce阶段计算矩阵C = AB;将对称矩阵通过正交相似变换表示成对称三对 角矩阵;求解对称三对角矩阵的前K个最小特征向量,将对称三对角矩阵的运算最终转化为 拉普拉斯矩阵与向量的相乘运算,得到矩阵的最小特征值和特征向量后,计算每个文本到 某一集合的近似度。
【文档编号】G06F17/30GK106021626SQ201610600204
【公开日】2016年10月12日
【申请日】2016年7月27日
【发明人】赖真霖, 文君
【申请人】成都四象联创科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1