发明内容
本申请实施例提供一种数据处理、数据查询方法及设备,用于解决现有技术中存在的文本数据处理效率低的问题。
一种数据处理方法,包括:
实时获取待处理的文本数据,其中,所述文本数据中包含关键词;
基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:
确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;
统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;
根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,其中,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。
一种数据查询方法,包括:
接收用户输入的搜索信息,其中,所述搜索信息中包含关键词;
根据所述关键词,从索引信息库中查找与所述关键词相关联的索引;
根据所述索引,确定基于所述关键词的查询结果,并按照所述索引的排列次序,依次将所述查询结果输出,其中,所述索引的排列次序是按照所述关键词的重要度确定的,所述关键词的重要度是基于权利要求1所述的方式确定的。
一种数据处理设备,所述数据处理设备包括:
获取单元,用于实时获取待处理的文本数据,其中,所述文本数据中包含关键词;
处理单元,用于基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:
确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;
统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;
确定单元,用于根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,其中,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。
一种数据查询设备,包括:
接收单元,用于接收用户输入的搜索信息,其中,所述搜索信息中包含关键词;
查找单元,用于根据所述关键词,从索引信息库中查找与所述关键词相关联的索引;
输出单元,用于根据所述索引,确定基于所述关键词的查询结果,并按照所述索引的排列次序,依次将所述查询结果输出,其中,所述索引的排列次序是按照所述关键词的重要度确定的,所述关键词的重要度是基于权利要求1所述的方式确定的。
本申请实施例提供了一种数据处理方法和设备,实时获取待处理的文本数据,所述文本数据中包含关键词;基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。本申请实施例通过实时获取待处理的文本数据,对实时获取的文本数据进行并行处理,以得到该文本数据中包含的关键词的重要度,这样既有效地提高了文本数据的处理效率,又能够给搜索引擎的索引信息库提供排序依据,有效地提高了文本数据的使用率。
具体实施方式
为了实现本申请提高文本数据使用率的目的,本申请实施例提供了一种数据处理方法和设备,实时获取待处理的文本数据,所述文本数据中包含关键词;基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。本申请实施例通过实时获取待处理的文本数据,对实时获取的文本数据进行并行处理,以得到该文本数据中包含的关键词的重要度,这样既有效地提高了文本数据的处理效率,又能够给搜索引擎的索引信息库提供排序依据,有效地提高了文本数据的使用率。
需要说明的是,本申请实施例中所记载的文本源可以是指文本出现的源文档,也可以是指文本最早出现的文档,还可以是其他含义的文档,这里不做具体限定。
下面结合本申请各个实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种数据处理方法流程示意图。所述方法可以如下所述。
步骤101:实时获取待处理的文本数据。
其中,所述文本数据中包含关键词。
在步骤101中,本申请实施例所记载的方案可以借助于流式处理框架,实时采集用户产生的文本数据,并对采集到的文本数据进行并行处理,以提高文本数据的处理效率。
例如:基于Storm的流式计算框架,Storm流式计算框架一般将数据处理分为Spout处理单元和Bolt处理单元。Spout处理单元主要用于接收文本数据,一般消息中间件(metaQ、kafka)是文本数据的来源。当用户在搜索引擎中输入某个检索关键词(浏览某个商品的category、item)时,搜索引擎将用户输入的搜索关键词进行采集并实时推送给消息中间件,这样Spout处理单元能够从消息中间件中实时的获取这些文本数据。
需要说明的是,本申请实施例中所记载的文本数据可以是指用户对网页中的内容进行评论产生的文本数据,也可以是指用户因为浏览网页产生的文本数据,还可以是用户在互联网上的其他操作产生的文本数据,这里对文本数据的产生方式不做限定。
具体地,所述文本数据可以是爬虫数据;也可以是统一资源***(英文:Uniform Resoure Locator;缩写:URL)数据;还可以是社交评论数据;等等。
具体地,在文本数据产生时,及时获取所述文本数据,将所述文本数据作为待处理的文本数据。
需要说明的是,对于获取到的所述文本数据推送至文本数据处理队列中,依次对获取到的文本数据进行处理。
解析所述待处理的文本数据,并确定所述待处理的文本数据中包含的关键词。
具体地,对所述待处理的文本数据进行预处理;利用分词算法对所述待处理的文本数据进行分词处理,确定所述待处理的文本数据中包含的分词;过滤所述待处理的文本数据中包含的非法分词,得到所述待处理的文本数据中包含的关键词。
在对文本数据进行解析时,首先,对文本数据进行预处理,这里的预处理包含数据格式的调整、字符的转换等;其次,利用分词算法对文本数据进行分词拆分,以得到该文本数据中包含的分词,这里的分词算法可以是基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法;也可以是基于分词器等工具对文本数据进行分词拆分的;最后,对得到的分词进行过滤,以过滤掉非法分词,这样可以得到文本数据中包含的关键词。
步骤102:基于所述待处理的文本数据,并行对所述文本数据进行处理。
其中,并行执行以下操作中的至少一种操作:
确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;
统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数。
在步骤102中,在对文本数据进行并行处理时,可以基于流式处理框架,由不同的服务器对文本数据执行不同操作。即将文本数据以数据流的形式在整个流式处理框架中流动,使得流式处理框架中不同的服务器对文本数据执行不同操作。
例如:由第一服务器在接收到该文本数据时,确定文本数据的文本源,并触发计数器统计该文本源处理的次数。
具体地,第一服务器在接收到该文本数据时,确定所述待处理的文本数据的文本源,所述文本源中包含用于表征所述文本源属性的属性字段;并根据所述文本源中包含的属性字段,触发累加计数器,统计得到包含所述属性字段的所述文本源出现的次数。
再例如:由第二服务器在接收到该文本数据时,统计所述关键词在所述文本源中出现的次数。
具体地,由第二服务器在接收到该文本数据时,对所述待处理的文本数据进行预处理;利用分词算法对所述待处理的文本数据进行分词处理,确定所述待处理的文本数据中包含的分词;过滤所述待处理的文本数据中包含的非法分词,得到所述待处理的文本数据中包含的关键词,并触发累加计数器,统计所述关键词在所述文本源中出现的总次数。
再例如:由第三服务器在接收到该文本数据时,统计所述关键词在不同文本源中出现的次数。
具体地,由第三服务器在接收到该文本数据时,基于每一个文本源,确定所述关键词在该文本源中出现的次数;根据所述关键词在每一个文本源中出现的次数,统计得到所述关键词在不同文本源中出现的次数。
需要说明的是,本申请实施例中所述的不同文本源是指***中包含的所有文本源。
这里第三服务器可以请求第二服务器将分析得到的该文本数据中包含的关键词发送给第三服务器,也可以由第三服务器对该文本数据进行解析以确定该文本数据中包含关键词。
这里第三服务器获取文本源的方式也可以请求第一服务器发送,也可以请求其他拥有文本源信息的服务器发送,这里不做限定。
本申请实施例中所述的方案,在对文本数据进行处理时基于流式处理框架,通过流式处理框架中的不同的服务器分别执行其中的一种操作,再将各个服务器执行的结果汇总到流式处理框架中的用于汇总结果的服务器,加快了文本数据的处理速率。该用于汇总结果的服务器则执行步骤103。
步骤103:根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度。
其中,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。
在步骤103中,假设得到所述文本源出现的次数为D,所述关键词在所述文本源中出现的次数为T,所述关键词在不同文本源中出现的次数为P,那么根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度可以通过以下方式计算得到:
所述关键词的重要度=T*log(D/(1+P))。
通过本申请实施例所记载的数据处理方法,实时获取待处理的文本数据,所述文本数据中包含关键词;基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。本申请实施例通过实时获取待处理的文本数据,对实时获取的文本数据进行并行处理,以得到该文本数据中包含的关键词的重要度,这样既有效地提高了文本数据的处理效率,又能够给搜索引擎的索引信息库提供排序依据,有效地提高了文本数据的使用率。
下面以流式处理框架为例说明本申请如何并行处理文本数据。
图2为本申请实施例提供的并行处理数据的流程示意图。
基于流式处理框架并行处理文本数据大致可以分为两个阶段:第一个阶段:文本数据接收阶段;第二个阶段:文本数据并行处理阶段。
在文本数据接收阶段,实时接收产生的文本数据,并将接收到的文本数据推送至消息队列中,将该文本数据转化成为数据流,以便于该数据流能够在第二阶段实现并行处理。
在文本数据并行处理阶段,按照文本数据所对应的文本源、文本数据中包含的关键词以及关键词在不同文本源中出现的情况进行分组,并行发送给不同的服务器,由不同的服务器并行执行操作,即分别统计得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,最后根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度。
需要说明的是,在流式处理框架中,对文本数据进行并行处理的逻辑可以由用户根据自己的需求设置,比如:计算逻辑、统计逻辑、平均逻辑等聚合类操作的逻辑;也可以包含通过调用远程程序对文本数据进行处理;还可以将文本数据处理过程中的中间状态存储在数据库中,以便于处理过程中出现问题时恢复文本数据。
假设在文本数据并行处理阶段按照文本数据所对应的文本源、文本数据中包含的关键词以及关键词在不同文本源中出现的情况进行分组,对应生成3个分支:第一个分支为文本数据所对应的文本源分支,统计所述文本源出现的次数D;第二个分支为文本数据中包含的关键词的分支,统计所述关键词在所述文本源中出现的次数tf(t,d);第三个分支为关键词在不同文本源中出现的情况的分支,统计所述关键词在不同文本源中出现的次数df(t)。
需要说明的是,D和df(t)是在跨批次处理数据时多次被调用的函数,并长期处于调用执行状态;tf(t,d)是在特定批次数据时才会被调用的函数。
D的值可以通过对文本源静态属性进行分组获取到。
在并行得到D、df(t)和tf(t,d)时,计算得到关键词的重要度,完成对文本数据的并行处理。
图3为本申请实施例提供的一种数据查询方法的流程示意图。所述方法可以如下所述。
步骤301:接收用户输入的搜索信息。
其中,所述搜索信息中包含关键词。
步骤302:根据所述关键词,从索引信息库中查找与所述关键词相关联的索引。
步骤303:根据所述索引,确定基于所述关键词的查询结果,并按照所述索引的排列次序,依次将所述查询结果输出。
其中,所述索引的排列次序是按照所述关键词的重要度确定的,所述关键词的重要度是基于上述实施例中所记载的数据处理方式确定的。
需要说明的是,关键词重要度的确定方式可以采用图1中所述的方式实现,也可以采用其他方式实现,这里不做具体限定。
图4为本申请实施例提供的一种数据处理设备的结构示意图。所述数据处理设备包括:获取单元41、处理单元42和确定单元43,其中:
获取单元41,用于实时获取待处理的文本数据,其中,所述文本数据中包含关键词;
处理单元42,用于基于所述待处理的文本数据,并行执行以下操作中的至少一种操作:
确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数;
统计所述关键词在所述文本源中出现的次数,以及所述关键词在不同文本源中出现的次数;
确定单元43,用于根据得到所述文本源出现的次数、所述关键词在所述文本源中出现的次数以及所述关键词在不同文本源中出现的次数,确定所述关键词的重要度,其中,所述关键词的重要度用于调整所述关键词对应的索引在索引信息库中的排列次序。
具体地,所述获取单元41实时获取待处理的文本数据,包括:
获取子单元411,用于在文本数据产生时,获取所述文本数据,将所述文本数据作为待处理的文本数据;
解析子单元412,用于解析所述待处理的文本数据,并确定所述待处理的文本数据中包含的关键词。
具体地,所述解析子单元412解析所述待处理的文本数据,并确定所述待处理的文本数据中包含的关键词,包括:
预处理模块4121,用于对所述待处理的文本数据进行预处理;
分词处理模块4122,用于利用分词算法对所述待处理的文本数据进行分词处理,确定所述待处理的文本数据中包含的分词;
过滤模块4123,用于过滤所述待处理的文本数据中包含的非法分词,得到所述待处理的文本数据中包含的关键词。
具体地,所述处理单元42确定所述待处理的文本数据的文本源,并统计所述文本源出现的次数,包括:
确定子单元421,用于确定所述待处理的文本数据的文本源,其中,所述文本源中包含用于表征所述文本源属性的属性字段;
统计子单元422,用于根据所述文本源中包含的属性字段,统计得到包含所述属性字段的所述文本源出现的次数。
具体地,所述处理单元42统计所述关键词出现的次数,包括:
统计所述关键词在所述文本源中出现的总次数。
具体地,所述处理单元42统计所述关键词在不同文本源中出现的次数,包括:
基于每一个文本源,确定所述关键词在该文本源中出现的次数;
根据所述关键词在每一个文本源中出现的次数,统计得到所述关键词在不同文本源中出现的次数。
需要说明的是,本申请实施例提供的数据处理设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做限定。本申请实施例中所记载的数据处理设备对采集的文本数据进行实时快速分析,既有效地提高了文本数据的处理效率,又能够给搜索引擎的索引信息库提供排序依据,有效地提高了文本数据的使用率。
图5为本申请实施例提供的一种数据查询设备的结构示意图。所述数据查询设备包括:接收单元51、查找单元52和输出单元53,其中:
接收单元51,用于接收用户输入的搜索信息,其中,所述搜索信息中包含关键词;
查找单元52,用于根据所述关键词,从索引信息库中查找与所述关键词相关联的索引,其中,所述索引的排列次序是按照所述关键词的重要度确定的,所述关键词的重要度是基于权利要求1所述的方式确定的;
输出单元53,用于根据所述索引,确定基于所述关键词的查询结果,并按照所述索引的排列次数,依次将所述查询结果输出。
需要说明的是,本申请实施例提供的数据查询设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做限定。本申请实施例中所记载的数据查询设备可以从数据处理设备处获取用于对索引进行排序所使用的关键词的重要度,在接收到搜索信息时,能够按照所述索引的排列次数,依次将基于所述关键词的查询结果输出根据,有效提高搜索的精度,改善用户体验。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。