CN108804642A - 检索方法、装置、计算机设备及存储介质 - Google Patents

检索方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN108804642A
CN108804642A CN201810570206.6A CN201810570206A CN108804642A CN 108804642 A CN108804642 A CN 108804642A CN 201810570206 A CN201810570206 A CN 201810570206A CN 108804642 A CN108804642 A CN 108804642A
Authority
CN
China
Prior art keywords
word
index
query
text
segmented
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810570206.6A
Other languages
English (en)
Inventor
陈飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201810570206.6A priority Critical patent/CN108804642A/zh
Publication of CN108804642A publication Critical patent/CN108804642A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种检索方法、装置、计算机设备及存储介质。该方法包括:获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;将分词结果存储至分布式文档存储数据库,根据每一个待分词的文本及分词结果对应建立索引;获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。该方法通过在分布式文档存储数据库创建中文文本的索引,通过索引实现了对海量中文文本的高效的全文检索。

Description

检索方法、装置、计算机设备及存储介质
技术领域
本申请涉及文本检索技术领域,尤其涉及一种检索方法、装置、计算机设备及存储介质。
背景技术
目前中文全文检索的方法,用的最多的是基于Lucene内核(Lucene是一个开放源代码的全文检索引擎工具包)的Elasticsearch产品(ElasticSearch是一个基于Lucene的搜索服务器),所以Lucene固有的问题,同样存在于Elasticsearch中。Lucene内核的中文全文检索,存在以下问题:
1)当Lucene文件索引库特别大的时候,容易发生内存溢出的错误(即提示OutOfMemory错误),查询也会变的非常的慢。
2)Lucene不适合比较复杂的计算,并且没有对数据执行服务端脚本的能力。
发明内容
本申请提供了一种检索方法、装置、计算机设备及存储介质,旨在解决现有技术中基于Lucene内核的中文全文检索,在Lucene文件索引库特别大的时候,容易发生内存溢出的错误,导致查询效率低下的问题。
第一方面,本申请提供了一种检索方法,其包括:
获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;
将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;
获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;
若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
第二方面,本申请提供了一种检索装置,其包括:
分词单元,用于获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;
索引建立单元,用于将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;
查询分词单元,用于获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;
查询结果发送单元,用于若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
第三方面,本申请又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请提供的任一项所述的检索方法。
第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任一项所述的检索方法。
本申请提供一种检索方法、装置、计算机设备及存储介质。该方法通过获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。该方法通过在分布式文档存储数据库创建中文文本的索引,通过索引实现了对海量中文文本的高效的全文检索。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种检索方法的示意流程图;
图2是本申请实施例提供的一种检索方法的子流程示意图;
图3为本申请实施例提供的一种检索方法的另一子流程示意图;
图4为本申请实施例提供的一种检索方法的另一子流程示意图;
图5为本申请实施例提供的一种检索方法的另一示意流程图;
图6为本申请实施例提供的一种检索装置的示意性框图;
图7为本申请实施例提供的一种检索装置的子单元示意性框图;
图8为本申请实施例提供的一种检索装置的另一子单元示意性框图;
图9为本申请实施例提供的一种检索装置的另一子单元示意性框图;
图10为本申请实施例提供的一种检索装置的另一示意性框图;
图11为本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请实施例提供的一种检索方法的示意流程图。该方法应用于服务器中。如图1所示,该方法包括步骤S101~S104。
S101、获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果。
在本实施例中,当服务器端接收了由其他终端或服务器发送的海量的中文文本作为基础数据时,服务器端需对所接收的海量中文文本进行分词后再进行存储。在数据库中若以全文的方式存储文档,则服务器端接收到检索的关键词时,不能从数据库中提取到对应的全文文档。这是因为在计算机中只能识别词语,而不能识别整句和全文。服务器端将所获取的中文文本进行分词,确保了后续检索结果的准确性。
在一实施例中,如图2所示,步骤S101包括:
S1011、按从左至右的顺序从当前的待分词的文本中取出候选词;
S1012、在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;
S1013、计算获取每一候选词的累积概率,及每一候选词的多个左邻词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;
S1014、以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
在本实施例中,通过基于概率统计模型的分词方法对文本数据进行分词,例如,令C=C1C2...Cm,C是待切分的汉字串,令W=W1W2...Wn,W是切分的结果,Wa,Wb,….Wk是C的所有可能的切分方案。那么,基于概率统计的切分模型就是能够找到目的词串W,使得W满足:P(W|C)=MAX(P(Wa|C),P(Wb|C)...P(Wk|C))的分词模型,上述分词模型得到的词串W即估计概率为最大之词串。
即对一个待分词的子串S,按照从左到右的顺序取出全部候选词w1、w2、…、wi、…、wn;获取文本中可能出现的所有词作为候选词,但要满足下列条件,即如果是长度大于1的词,则必须在词典中出现;如果是长度等于1,即为单字,可以不在词典中出现(例如对“有意见分歧”,从左到右进行一遍扫描,得到全部候选词:“有”,“有意”,“意见”,“见”,“分歧”);在词典中查出每个候选词的概率值P(wi),并记录每个候选词的全部左邻词;计算每个候选词的累积概率,同时比较得到每个候选词的最佳左邻词;如果当前词wn是字串S的尾词,且累积概率P(wn)最大,则wn就是S的终点词;从wn开始,按照从右到左顺序,依次将每个词的最佳左邻词输出,即S的分词结果。
S102、将分词结果存储至分布式文档存储数据库,根据每一个待分词的文本及分词结果对应建立索引。
在本实施例中,分布式文档存储数据库即为MongoDB数据库,它是一个基于分布式文件存储的数据库,其最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB数据库中所存储的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。将分词结果存储在服务器端的分布式文档存储数据库中,是因为MongoDB中不支持中文的全文检索,只有像英文单词一样将中文文本进行分词后,才能被检索到。为了提高检索效率,需根据每一个待分词的文本及分词结果对应建立索引,由索引来实现提升检索效率的提升。
在一实施例中,如图3所示,步骤S102包括:
S1021、根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;
S1022、将索引字典中包括的词语按照字典序进行排序;
S1023、将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
索引在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
在本实施例中,在根据分词结果创建索引时,该索引是初次创建时需要一定时间来完成,但是创建索引后,后续的全文检索即可通过索引来实现,无需再次进行全文扫描以完成检索(也即实现了一次索引的初始创建,方便后续的多次使用)。
在本实施例中,分词结果是由多个待分词的文本对应的子分词结果组成,例如有N篇待分词的文本(N为正整数),分别记为第1篇待分词的文本-第N篇待分词的文本,第1篇待分词的文本对应的分词结果集合记为第1子分词结果,第1子分词结果中每一词所对应的文档编号为1,第2篇待分词的文本对应的分词结果集合记为第2子分词结果,第2子分词结果中每一词所对应的文档编号为2,……,第N篇待分词的文本对应的分词结果集合记为第N子分词结果,第N子分词结果中每一词所对应的文档编号为N。在根据分词结果创建索引时,通过以下过程实现:
11)利用得到的分词结果创建一个索引字典;
例如,所创建的索引字典如下表:
文档编号
今天 1
天气 1
朋友 1
吃饭 2
朋友 2
…… N
表1
其中文档编号表示当前词在第N篇文档中出现。“今天”这个词在第1篇文档中出现,故表1中“今天”这个词的文档编号记为1。同样的,若“今天”这个词在其他文档编号的文本中出现,则“今天”这个词则对应多个文档编号。即在索引字典的建立过程中,是逐篇将各子分词结果依次填充至字典中。
12)将索引字典中包括的词语按照字典序进行排序;
例如,今天的拼音首字母是J,朋友的拼音首字母是P,字典序中J在P之前,故将“今天”排在“朋友”之前。
13)将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
即索引(索引可以视为一个目录)中包括多个索引项(例如表1中的每个词和该词对应的文档编号可视为一个索引项,每一索引项),每一索引项与其他索引项不存在重复的情况。
在11)中建立的如表1的索引字典是一未经去重及合并处理的初始化索引,此时将索引字典中相同的词语进行合并,并将相同的词语对应的文档编号进行统一编排,将相同的词语对应的文档编号均作为该词语的文档编号集合,例如表1中整理后对应得到的索引如表2:
文档编号
吃饭 2
今天 1
朋友 1,2
天气 1
…… ……
表2
通过创建索引,能在用户输入查询语句时,快速根据查询语句得到用户所需要的中文文本。即中文文本、及分词结果均与索引有映射关系,即索引——(中文文本,分词结果)。若用户输入某一关键词能在分词结果中内被检索到,则根据与分词结果对应的索引来快速查询到中文文本,从而实现了基于MongoDB的中文海量全文检索。
S103、获取客户端所发送的查询语句,将查询语句进行分词得到查询分词。
在本实施例中,用户在客户端(台式电脑、平板电脑、手提电脑等终端)上的检索引擎对应的UI界面上输入查询语句(UI界面上输入查询语句可以是通过用户端的键盘录入,也可以是语音输入等文本录入方式),该查询语句为一整句中文语句或是由几个关键词组成的中文语句。服务器端获取了客户端所发送的查询语句后,采取与对待分词的文本相同的分词方法进行分词,得到查询分词,以查询分词作为为关键词发起后续的文本查询。将查询语句进行分词,也是为了确保计算机能识别查询语句对应的查询分词,以完成后续的文本查询。
S104、若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
在本实施例中,索引中包括多个索引项(索引项可以理解为表1中的词)。由于用户所录入查询语句中包括的查询分词,根据索引项的对应关系,查询到一篇或多篇中文文本都存在这些查询分词,此时可通过列表的方式来展示中文文本的查询结果,以供用户在中文文本的查询结果中选择所需要的最终结果。这一展示过程类似于百度搜索,但是本申请中对文本数据的存储方式,以及建立索引的方式与百度搜索是不同的。
在一实施例中,如图4所示,步骤S104包括:
S1041、获取查询结果中查询分词对应的词语频次;
S1042、根据查询分词的词语频次对查询结果进行降序排序,得到降序排序结果;
S1043、将降序排序结果发送至客户端。
本实施例中,当在服务器端根据查询分词在索引中查询到对应的索引项后,为了将查询结果按照一定规则进行展示,此时可设定通过词频的降序方式对查询结果进行排序。影响一个词在一篇中文文本中的重要性主要有以下因素:Term Frequency(tf),即此词在此中文文本中出现了多少次,tf越大说明越重要。通过上述方式,实现了对查询结果的快速排序。
在一实施例中,如图5所示,步骤S104之后还包括:
S105、获取用户所选定的查询结果,根据用户所选定的查询结果及所录入的查询语句作为预先构建的朴素贝叶斯模型的输入,得到文本推荐结果。
在本实施例中,采用的朴素贝叶斯算法的模型如下:
其中,
Nck表示训练集中ck类文档的数目,N表示训练集中文档总数;Tjk表示词项tj在类别ck中出现的次数,V是所有类别的词项集合。通过朴素贝叶斯模型,能获取所录入的查询语句中包括的关键词在MongoDB中所存储的其他中文文本中出现的概率,并将概率排位前3-10位的中文文本进行推荐。例如,上述文本推荐结果是用户在客户端中选定了多个查询结果中的其中一个结果时,客户端中的UI界面中立即显示所选定的查询结果,并在显示查询结果区域的一侧同时显示文本推荐结果,实现了检索结果的智能推送。
可见,该方法通过在分布式文档存储数据库创建中文文本的索引,通过索引实现了对海量中文文本的高效的全文检索。
本申请实施例还提供一种检索装置,该检索装置用于执行前述检索方法的任一实施例。具体地,请参阅图6,图6是本申请实施例提供的一种检索装置的示意性框图。检索装置100可以配置于服务器中。
如图6所示,检索装置100包括分词单元101、索引建立单元102、查询分词单元103、及查询结果发送单元104。
分词单元101,用于获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果。
在本实施例中,当服务器端接收了由其他终端或服务器发送的海量的中文文本作为基础数据时,服务器端需对所接收的海量中文文本进行分词后再进行存储。在数据库中若以全文的方式存储文档,则服务器端接收到检索的关键词时,不能从数据库中提取到对应的全文文档。这是因为在计算机中只能识别词语,而不能识别整句和全文。服务器端将所获取的中文文本进行分词,确保了后续检索结果的准确性。
在一实施例中,如图7所示,分词单元101包括:
候选词选取单元1011,用于按从左至右的顺序从当前的待分词的文本中取出候选词;
初始左邻词获取单元1012,用于在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;
最佳左邻词选取单元1013,用于计算获取每一候选词的累积概率,及每一候选词的多个左邻词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;
分词结果输出单元1014,用于以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
在本实施例中,通过基于概率统计模型的分词方法对文本数据进行分词,例如,令C=C1C2...Cm,C是待切分的汉字串,令W=W1W2...Wn,W是切分的结果,Wa,Wb,….Wk是C的所有可能的切分方案。那么,基于概率统计的切分模型就是能够找到目的词串W,使得W满足:P(W|C)=MAX(P(Wa|C),P(Wb|C)...P(Wk|C))的分词模型,上述分词模型得到的词串W即估计概率为最大之词串。
即对一个待分词的子串S,按照从左到右的顺序取出全部候选词w1、w2、…、wi、…、wn;获取文本中可能出现的所有词作为候选词,但要满足下列条件,即如果是长度大于1的词,则必须在词典中出现;如果是长度等于1,即为单字,可以不在词典中出现(例如对“有意见分歧”,从左到右进行一遍扫描,得到全部候选词:“有”,“有意”,“意见”,“见”,“分歧”);在词典中查出每个候选词的概率值P(wi),并记录每个候选词的全部左邻词;计算每个候选词的累积概率,同时比较得到每个候选词的最佳左邻词;如果当前词wn是字串S的尾词,且累积概率P(wn)最大,则wn就是S的终点词;从wn开始,按照从右到左顺序,依次将每个词的最佳左邻词输出,即S的分词结果。
索引建立单元102,用于将分词结果存储至分布式文档存储数据库,根据每一个待分词的文本及分词结果对应建立索引。
在本实施例中,分布式文档存储数据库即为MongoDB数据库,它是一个基于分布式文件存储的数据库,其最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB数据库中所存储的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。将分词结果存储在服务器端的分布式文档存储数据库中,是因为MongoDB中不支持中文的全文检索,只有像英文单词一样将中文文本进行分词后,才能被检索到。为了提高检索效率,需根据每一个待分词的文本及分词结果对应建立索引,由索引来实现提升检索效率的提升。
在一实施例中,如图8所示,索引建立单元102包括:
索引字典创建单元1021,用于根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;
字典序序排序单元1022,用于将索引字典中包括的词语按照字典序进行排序;
合并归集单元1023,用于将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
索引在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
在本实施例中,在根据分词结果创建索引时,该索引是初次创建时需要一定时间来完成,但是创建索引后,后续的全文检索即可通过索引来实现,无需再次进行全文扫描以完成检索(也即实现了一次索引的初始创建,方便后续的多次使用)。
通过创建索引,能在用户输入查询语句时,快速根据查询语句得到用户所需要的中文文本。即中文文本、及分词结果均与索引有映射关系,即索引——(中文文本,分词结果)。若用户输入某一关键词能在分词结果中内被检索到,则根据与分词结果对应的索引来快速查询到中文文本,从而实现了基于MongoDB的中文海量全文检索。
查询分词单元103,用于获取客户端所发送的查询语句,将查询语句进行分词得到查询分词。
在本实施例中,用户在客户端(台式电脑、平板电脑、手提电脑等终端)上的检索引擎对应的UI界面上输入查询语句(UI界面上输入查询语句可以是通过用户端的键盘录入,也可以是语音输入等文本录入方式),该查询语句为一整句中文语句或是由几个关键词组成的中文语句。服务器端获取了客户端所发送的查询语句后,采取与对待分词的文本相同的分词方法进行分词,得到查询分词,以查询分词作为为关键词发起后续的文本查询。将查询语句进行分词,也是为了确保计算机能识别查询语句对应的查询分词,以完成后续的文本查询。
查询结果发送单元104,用于若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
在本实施例中,索引中包括多个索引项(索引项可以理解为表1中的词)。由于用户所录入查询语句中包括的查询分词,根据索引项的对应关系,查询到一篇或多篇中文文本都存在这些查询分词,此时可通过列表的方式来展示中文文本的查询结果,以供用户在中文文本的查询结果中选择所需要的最终结果。这一展示过程类似于百度搜索,但是本申请中对文本数据的存储方式,以及建立索引的方式与百度搜索是不同的。
在一实施例中,如图9所示,查询结果发送单元104包括:
词语频次获取单元1041,用于获取查询结果中查询分词对应的词语频次;
降序排列单元1042,用于根据查询分词的词语频次对查询结果进行降序排序,得到降序排序结果;
降序结果发送单元1043,用于将降序排序结果发送至客户端。
本实施例中,当在服务器端根据查询分词在索引中查询到对应的索引项后,为了将查询结果按照一定规则进行展示,此时可设定通过词频的降序方式对查询结果进行排序。影响一个词在一篇中文文本中的重要性主要有以下因素:Term Frequency(tf),即此词在此中文文本中出现了多少次,tf越大说明越重要。通过上述方式,实现了对查询结果的快速排序。
在一实施例中,如图10所示,检索装置100还包括:
文本推荐单元105,单元获取用户所选定的查询结果,根据用户所选定的查询结果及所录入的查询语句作为预先构建的朴素贝叶斯模型的输入,得到文本推荐结果。
在本实施例中,采用的朴素贝叶斯算法的模型如下:
其中,
Nck表示训练集中ck类文档的数目,N表示训练集中文档总数;Tjk表示词项tj在类别ck中出现的次数,V是所有类别的词项集合。通过朴素贝叶斯模型,能获取所录入的查询语句中包括的关键词在MongoDB中所存储的其他中文文本中出现的概率,并将概率排位前3-10位的中文文本进行推荐。例如,上述文本推荐结果是用户在客户端中选定了多个查询结果中的其中一个结果时,客户端中的UI界面中立即显示所选定的查询结果,并在显示查询结果区域的一侧同时显示文本推荐结果,实现了检索结果的智能推送。
可见,该装置通过在分布式文档存储数据库创建中文文本的索引,通过索引实现了对海量中文文本的高效的全文检索。
上述检索装置可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500设备可以是服务器。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种检索方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种检索方法。
该网络接口505用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
在一实施例中,处理器502还执行如下操作:按从左至右的顺序从当前的待分词的文本中取出候选词;在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;计算获取每一候选词的累积概率,及每一候选词的多个左邻词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
在一实施例中,处理器502还执行如下操作:根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;将索引字典中包括的词语按照字典序进行排序;将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
在一实施例中,处理器502还执行如下操作:获取查询结果中查询分词对应的词语频次;根据查询分词的词语频次对查询结果进行降序排序,得到降序排序结果;将降序排序结果发送至客户端。
在一实施例中,处理器502还执行如下操作:获取用户所选定的查询结果,根据用户所选定的查询结果及所录入的查询语句作为预先构建的朴素贝叶斯模型的输入,得到文本推荐结果。
本领域技术人员可以理解,图11中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本申请的另一实施例中提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时实现:获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
在一实施例中,该程序指令被处理器执行时实现:按从左至右的顺序从当前的待分词的文本中取出候选词;在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;计算获取每一候选词的累积概率,及每一候选词的多个左邻词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
在一实施例中,该程序指令被处理器执行时实现:根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;将索引字典中包括的词语按照字典序进行排序;将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
在一实施例中,该程序指令被处理器执行时实现:获取查询结果中查询分词对应的词语频次;根据查询分词的词语频次对查询结果进行降序排序,得到降序排序结果;将降序排序结果发送至客户端。
在一实施例中,该程序指令被处理器执行时实现:获取用户所选定的查询结果,根据用户所选定的查询结果及所录入的查询语句作为预先构建的朴素贝叶斯模型的输入,得到文本推荐结果。
所述存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种检索方法,其特征在于,包括:
获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;
将分词结果存储至分布式文档存储数据库,根据每一个待分词的文本及分词结果对应建立索引;
获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;
若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
2.根据权利要求1所述的检索方法,其特征在于,所述将每一个待分词的文本进行分词,得到与每一个待分词的文本一一对应的分词结果,包括:
按从左至右的顺序从当前的待分词的文本中取出候选词;
在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;
计算获取每一候选词的累积概率,及每一候选词的多个左邻词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;
以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
3.根据权利要求1所述的检索方法,其特征在于,所述根据每一待分词的文本及分词结果对应建立索引,包括:
根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;
将索引字典中包括的词语按照字典序进行排序;
将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
4.根据权利要求1所述的检索方法,其特征在于,所述获取索引项对应的查询结果并发送至客户端,包括:
获取查询结果中查询分词对应的词语频次;
根据查询分词的词语频次对查询结果进行降序排序,得到降序排序结果;
将降序排序结果发送至客户端。
5.根据权利要求1所述的检索方法,其特征在于,所述若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端之后,还包括:
获取用户所选定的查询结果,根据用户所选定的查询结果及所录入的查询语句作为预先构建的朴素贝叶斯模型的输入,得到文本推荐结果。
6.一种检索装置,其特征在于,包括:
分词单元,用于获取多个待分词的文本,将每一个待分词的文本进行分词,得到分词结果;
索引建立单元,用于将分词结果存储至分布式文档存储数据库,根据每一待分词的文本及分词结果对应建立索引;
查询分词单元,用于获取客户端所发送的查询语句,将查询语句进行分词得到查询分词;
查询结果发送单元,用于若索引中存在与查询分词对应的索引项,获取索引项对应的查询结果并发送至客户端。
7.根据权利要求6所述的检索装置,其特征在于,所述分词单元,包括:
候选词选取单元,用于按从左至右的顺序从当前的待分词的文本中取出候选词;
初始左邻词获取单元,用于在预先存储的词典中查询与每一候选词对应的概率值,并记录每一候选词的左邻词;
最佳左邻词选取单元,用于计算获取每一候选词的累积概率,若每一候选词的多个左邻词中存在累积概率为多个左邻词的累积概率中最大值的左邻词,将累积概率中最大值的左邻词作为与候选词对应的最佳左邻词;
分词结果输出单元,用于以待分词的文本的终点词为起点,从右至左依次输出与每一候选词对应的最佳左邻词,得到与当前的待分词的文本所对应分词结果。
8.根据权利要求6所述的检索装置,其特征在于,所述索引建立单元,包括:
索引字典创建单元,用于根据分词结果创建索引字典,所述索引字典中包括的每一个词语均对应中文文本的文档编号;
字典序序排序单元,用于将索引字典中包括的词语按照字典序进行排序;
合并归集单元,用于将相同的词语进行合并,并将相同的词语对应的文档编号进行归集,得到索引。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的检索方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的检索方法。
CN201810570206.6A 2018-06-05 2018-06-05 检索方法、装置、计算机设备及存储介质 Pending CN108804642A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810570206.6A CN108804642A (zh) 2018-06-05 2018-06-05 检索方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810570206.6A CN108804642A (zh) 2018-06-05 2018-06-05 检索方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN108804642A true CN108804642A (zh) 2018-11-13

Family

ID=64088714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810570206.6A Pending CN108804642A (zh) 2018-06-05 2018-06-05 检索方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN108804642A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902288A (zh) * 2019-01-17 2019-06-18 深圳壹账通智能科技有限公司 智能条款分析方法、装置、计算机设备及存储介质
CN110069573A (zh) * 2019-03-19 2019-07-30 深圳壹账通智能科技有限公司 产品数据集成方法、装置、计算机设备及存储介质
CN110413645A (zh) * 2019-06-19 2019-11-05 平安普惠企业管理有限公司 数据搜索方法、装置、终端及计算机可读存储介质
CN110442673A (zh) * 2019-08-14 2019-11-12 黄河水利职业技术学院 中文文学用的信息查询系统及方法
CN110909117A (zh) * 2019-12-06 2020-03-24 广东小天才科技有限公司 一种科目识别实现方法、系统、存储介质和终端设备
CN111428140A (zh) * 2020-04-13 2020-07-17 上海东普信息科技有限公司 高并发数据检索方法、装置、设备及存储介质
CN111858831A (zh) * 2020-07-07 2020-10-30 杭州安恒信息技术股份有限公司 一种基于APT分析的Elasticsearch索引方法、装置和计算机设备
CN112035727A (zh) * 2019-06-03 2020-12-04 阿里巴巴集团控股有限公司 信息获取方法、装置、设备、系统及可读存储介质
CN112069232A (zh) * 2020-09-08 2020-12-11 中国移动通信集团河北有限公司 宽带业务覆盖范围的查询方法及装置
CN112988753A (zh) * 2021-03-31 2021-06-18 建信金融科技有限责任公司 一种数据搜索方法和装置
CN113590736A (zh) * 2021-08-12 2021-11-02 成都数之联科技有限公司 索引管理方法、装置、电子设备和可读存储介质
CN113971397A (zh) * 2020-07-24 2022-01-25 中移(苏州)软件技术有限公司 分词方法、装置、电子设备及存储介质
CN114003685A (zh) * 2022-01-04 2022-02-01 广州奥凯信息咨询有限公司 分词位置索引构建方法及其装置、文档检索方法及其装置
CN114676685A (zh) * 2022-05-26 2022-06-28 深圳市声扬科技有限公司 语音文本错误处理方法、装置、电子设备及存储介质
CN114860887A (zh) * 2022-05-26 2022-08-05 康键信息技术(深圳)有限公司 基于智能联想的疾病内容推送方法、装置、设备及介质
CN113971397B (zh) * 2020-07-24 2024-10-22 中移(苏州)软件技术有限公司 分词方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853288A (zh) * 2010-05-19 2010-10-06 马晓普 基于文档实时监控可配置的全文检索服务系统
CN102411666A (zh) * 2010-09-26 2012-04-11 中国科学院计算技术研究所 一种蛋白质鉴定的大规模分布式并行加速方法及其系统
CN102521405A (zh) * 2011-12-26 2012-06-27 中国科学院计算技术研究所 支持高速加载的海量结构化数据存储、查询方法和系统
CN102915365A (zh) * 2012-10-24 2013-02-06 苏州两江科技有限公司 基于Hadoop的分布式搜索引擎构建方法
US20130185328A1 (en) * 2012-01-18 2013-07-18 Sanghyun Yoo Apparatus and method for processing a multidimensional string query
CN106649800A (zh) * 2016-12-29 2017-05-10 南威软件股份有限公司 一种基于Solr的中文检索方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853288A (zh) * 2010-05-19 2010-10-06 马晓普 基于文档实时监控可配置的全文检索服务系统
CN102411666A (zh) * 2010-09-26 2012-04-11 中国科学院计算技术研究所 一种蛋白质鉴定的大规模分布式并行加速方法及其系统
CN102521405A (zh) * 2011-12-26 2012-06-27 中国科学院计算技术研究所 支持高速加载的海量结构化数据存储、查询方法和系统
US20130185328A1 (en) * 2012-01-18 2013-07-18 Sanghyun Yoo Apparatus and method for processing a multidimensional string query
CN102915365A (zh) * 2012-10-24 2013-02-06 苏州两江科技有限公司 基于Hadoop的分布式搜索引擎构建方法
CN106649800A (zh) * 2016-12-29 2017-05-10 南威软件股份有限公司 一种基于Solr的中文检索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汤国锋 等: "基于Lucene 的中文分词技术研究", 《电脑编程技巧与维护》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902288A (zh) * 2019-01-17 2019-06-18 深圳壹账通智能科技有限公司 智能条款分析方法、装置、计算机设备及存储介质
CN110069573A (zh) * 2019-03-19 2019-07-30 深圳壹账通智能科技有限公司 产品数据集成方法、装置、计算机设备及存储介质
CN112035727A (zh) * 2019-06-03 2020-12-04 阿里巴巴集团控股有限公司 信息获取方法、装置、设备、系统及可读存储介质
CN110413645A (zh) * 2019-06-19 2019-11-05 平安普惠企业管理有限公司 数据搜索方法、装置、终端及计算机可读存储介质
CN110442673A (zh) * 2019-08-14 2019-11-12 黄河水利职业技术学院 中文文学用的信息查询系统及方法
CN110909117A (zh) * 2019-12-06 2020-03-24 广东小天才科技有限公司 一种科目识别实现方法、系统、存储介质和终端设备
CN111428140A (zh) * 2020-04-13 2020-07-17 上海东普信息科技有限公司 高并发数据检索方法、装置、设备及存储介质
CN111428140B (zh) * 2020-04-13 2023-06-09 上海东普信息科技有限公司 高并发数据检索方法、装置、设备及存储介质
CN111858831A (zh) * 2020-07-07 2020-10-30 杭州安恒信息技术股份有限公司 一种基于APT分析的Elasticsearch索引方法、装置和计算机设备
CN111858831B (zh) * 2020-07-07 2024-04-09 杭州安恒信息技术股份有限公司 一种基于APT分析的Elasticsearch索引方法、装置和计算机设备
CN113971397B (zh) * 2020-07-24 2024-10-22 中移(苏州)软件技术有限公司 分词方法、装置、电子设备及存储介质
CN113971397A (zh) * 2020-07-24 2022-01-25 中移(苏州)软件技术有限公司 分词方法、装置、电子设备及存储介质
CN112069232B (zh) * 2020-09-08 2023-08-01 中国移动通信集团河北有限公司 宽带业务覆盖范围的查询方法及装置
CN112069232A (zh) * 2020-09-08 2020-12-11 中国移动通信集团河北有限公司 宽带业务覆盖范围的查询方法及装置
CN112988753B (zh) * 2021-03-31 2022-10-11 中国建设银行股份有限公司 一种数据搜索方法和装置
CN112988753A (zh) * 2021-03-31 2021-06-18 建信金融科技有限责任公司 一种数据搜索方法和装置
CN113590736A (zh) * 2021-08-12 2021-11-02 成都数之联科技有限公司 索引管理方法、装置、电子设备和可读存储介质
CN113590736B (zh) * 2021-08-12 2024-05-07 成都数之联科技股份有限公司 索引管理方法、装置、电子设备和可读存储介质
CN114003685B (zh) * 2022-01-04 2022-06-07 广州奥凯信息咨询有限公司 分词位置索引构建方法及其装置、文档检索方法及其装置
CN114003685A (zh) * 2022-01-04 2022-02-01 广州奥凯信息咨询有限公司 分词位置索引构建方法及其装置、文档检索方法及其装置
CN114676685B (zh) * 2022-05-26 2022-08-26 深圳市声扬科技有限公司 语音文本错误处理方法、装置、电子设备及存储介质
CN114860887A (zh) * 2022-05-26 2022-08-05 康键信息技术(深圳)有限公司 基于智能联想的疾病内容推送方法、装置、设备及介质
CN114676685A (zh) * 2022-05-26 2022-06-28 深圳市声扬科技有限公司 语音文本错误处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108804642A (zh) 检索方法、装置、计算机设备及存储介质
CN109166017B (zh) 基于重聚类的推送方法、装置、计算机设备及存储介质
US11341419B2 (en) Method of and system for generating a prediction model and determining an accuracy of a prediction model
CN106649818B (zh) 应用搜索意图的识别方法、装置、应用搜索方法和服务器
WO2020119063A1 (zh) 专家知识推荐方法、装置、计算机设备及存储介质
US20210089563A1 (en) Systems and methods for performing a computer-implemented prior art search
EP2823410B1 (en) Entity augmentation service from latent relational data
CN103678576B (zh) 基于动态语义分析的全文检索系统
CN109885773B (zh) 一种文章个性化推荐方法、系统、介质及设备
EP2940606A1 (en) Searchable index
CN110019794B (zh) 文本资源的分类方法、装置、存储介质及电子装置
US8825620B1 (en) Behavioral word segmentation for use in processing search queries
CN106446122B (zh) 信息检索的方法、装置与计算设备
CN108875065B (zh) 一种基于内容的印尼新闻网页推荐方法
CN107844493B (zh) 一种文件关联方法及系统
CN108874956A (zh) 海量文件检索方法、装置、计算机设备及存储介质
WO2016095645A1 (zh) 笔画输入方法、装置和系统
US9552415B2 (en) Category classification processing device and method
CN112100396A (zh) 一种数据处理方法和装置
US20180276244A1 (en) Method and system for searching for similar images that is nearly independent of the scale of the collection of images
CN109885651B (zh) 一种问题推送方法和装置
EP3926484B1 (en) Improved fuzzy search using field-level deletion neighborhoods
US10565188B2 (en) System and method for performing a pattern matching search
CN110569419A (zh) 问答系统优化方法、装置、计算机设备及存储介质
CN105653553B (zh) 词权重生成方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181113