内容的检索方法及装置与流程

文档序号:19310545发布日期:2019-12-03 23:28阅读:218来源:国知局
内容的检索方法及装置与流程
本发明涉及互联网技术,尤其涉及一种内容的检索方法及装置。
背景技术
:用户在进行内容检索时,为提高检索结果的召回率,需要对用户输入的检索文本进行扩展,以扩大检索范围。相关技术中,主要是通过获取检索文本中检索关键词的同义词,将检索文本中的检索关键词替换为同义词,以对检索文本进行扩展。然而,根据该方法对检索文本进行扩展得到的检索结果中,并不是都符合用户输入的原检索文本对应的需求,存在检索结果不准确的问题。技术实现要素:本发明实施例提供一种内容的检索方法及装置,能够提高检索结果的准确率。本发明实施例的技术方案是这样实现的:本发明实施例提供一种内容的检索方法,包括:响应于携带检索文本的内容检索请求,确定所述检索文本中的检索关键词;获取与所述检索关键词的语义相匹配的至少一个目标检索词;分别将所述至少一个目标检索词与所述检索文本中的检索关键词进行替换,得到至少一个目标检索文本;分别基于所述至少一个目标检索文本进行内容检索,得到多条检索结果;基于所述检索关键词及目标检索词,确定多条检索结果的语义合理性评分;基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果。本发明实施例提供一种内容的检索装置,包括:确定单元,用于响应于携带检索文本的内容检索请求,确定所述检索文本中的检索关键词;获取单元,用于获取与所述检索关键词的语义相匹配的至少一个目标检索词;替换单元,用于分别将所述至少一个目标检索词与所述检索文本中的检索关键词进行替换,得到至少一个目标检索文本;检索单元,用于分别基于所述至少一个目标检索文本进行内容检索,得到多条检索结果;评分单元,用于基于所述检索关键词及目标检索词,确定多条检索结果的语义合理性评分;筛选单元,用于基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果。上述方案中,所述确定单元,还用于解析所述内容检索请求,得到检索文本;对所述检索文本进行分词,得到对应所述检索文本的多个词;根据词性对所述多个词进行处理,得到以下至少之一:动词、名词;将得到的所述名词和/或动词作为所述检索文本中的检索关键词。上述方案中,所述确定单元,还用于分别获取所述检索关键词与词库中各个词的语义相似度;确定词库中与所述检索关键词的语义相似度达到相似度阈值的至少一个词作为目标检索词。上述方案中,所述评分单元,还用于对于每条检索结果,分别执行以下操作:获取所述检索结果中的与所述目标检索词相关联的多个词;将与所述目标检索词相关联的多个词及所述检索关键词进行组合,得到对应所述检索结果的目标文本;确定所述目标文本的语义合理性评分,将所述目标文本的语义合理性评分作为所述检索结果的语义合理性评分。上述方案中,所述评分单元,还用于获取所述目标文本在语料库中出现的次数;根据获取所述次数与语义合理性评分的映射关系,确定多条所述目标文本的语义合理性评分。上述方案中,所述评分单元,还用于对所述目标文本进行分词处理,得到对应所述目标文本的词序列;获取所述词序列中各个词在语料库中出现的概率;确定各个词在语料库中出现的概率的乘积,将所述乘积作为所述目标文本的语义合理性评分。上述方案中,所述评分单元,还用于将所述词与位于所述词前预设个数的词进行组合,得到第一文本;将位于所述词前预设个数的词进行组合,得到第二文本;分别获取第一文本及第二文本在语料库中出现的次数;获取所述第二文本在语料库中出现的次数与第一文本在语料库中出现的次数的比值,得到所述分词在语料库中出现的概率。上述方案中,所述筛选单元,还用于基于获取的所述语义合理性评分,从多条检索结果中筛选出所述语义合理性评分达到分数阈值的检索结果。上述方案中,所述筛选单元,还用于基于获取的所述语义合理性评分,对所述多条检索结果进行优先级排序;根据所述优先级排序,选取预设数量的检索结果。本发明实施例提供一种服务器,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的内容的检索方法。本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的内容的检索方法。本发明实施例具有以下有益效果:本发明实施例基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分;基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果;如此,由于在得到多条检索结果后,根据检索关键词及目标检索词,对检索结果的语义合理性进行了后验,保证了在检索结果中目标检索词与检索关键词的含义相同,提高了检索结果的准确性。附图说明图1为本发明实施例提供的内容的检索系统的网络架构示意图;图2为本发明实施例提供的服务器的硬件结构示意图;图3为本发明实施例提供的内容的检索方法的流程示意图;图4为本发明实施例提供的内容的检索方法的流程示意图;图5为本发明实施例提供的内容的检索方法的流程示意图;图6为本发明实施例提供的内容的检索方法的流程示意图;图7为本发明实施例提供的ab交集示意图;图8为本发明实施例提供的内容的检索方法的流程示意图;图9为本发明实施例提供的内容的检索结果示意图;图10为本发明实施例提供的内容的检索装置的组成结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。如果申请文件中出现“第一\第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的
技术领域
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。2)分词,指将连续的字序列按照一定的规范重新组合成词序列的过程。相关技术中,直接通过同义词词典匹配的方式进行同义词替换,可能存在检索文本和检索结果的上下文不同,导致使用同义词召回的检索结果不符合用户的检索需求,降低检索结果的准确性。例如,在同义词词典中包含“广州大学”同义成“广大”这个词条,则用户检索“广州大学”时,也会根据“广大”进行检索,作为扩充召回。在对于检索文本,该替换是没有问题的。然而,对于检索结果,该替换可能是不合理的。例如,根据“广大”检索得到以下两个检索结果:(1)广大市政学院专升本学习指南;(2)广大农村市场成阿里京东新战场。其中,搜索结果(1)中的“广大”与用户检索的“广州大学”是相同的含义,而搜索结果(2)中的“广大”与用户检索的“广州大学”是完全不同的。也就是说,检索结果(1)是与用户的检索需求相符的,而检索结果(2)与用户的检索需求是不相符的。基于此,提出本发明实施例的内容的检索方法,基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分;基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果;如此,由于在得到多条检索结果后,根据检索关键词及目标检索词,对检索结果的语义合理性进行了后验,保证了在检索结果中目标检索词与检索关键词的含义相同,提高了检索结果的准确性。首先对本发明实施例的内容的检索系统进行说明,图1为本发明实施例提供的内容的检索系统的网络架构示意图,参见图1,为实现支撑一个示例性应用,内容的检索系统100包括终端(包括终端400-1和终端400-2)及服务器200,终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。终端(终端400-1和/或终端400-2),用于将携带检索文本的内容检索请求发送给服务器200;服务器200,用于响应于携带检索文本的内容检索请求,确定检索文本中的检索关键词;获取与检索关键词的语义相匹配的至少一个目标检索词;分别将至少一个目标检索词与所述检索文本中的检索关键词进行替换,得到至少一个目标检索文本;分别基于至少一个目标检索文本进行内容检索,得到多条检索结果;基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分;基于获取的语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果。终端(终端400-1和/或终端400-2),还用于接收筛选得到的检索结果。下面对实施本发明实施例实施内容的检索方法的电子设备进行说明。在一些实施例中,电子设备可以实施为智能手机、平板电脑、笔记本电脑等各种类型的终端,还可以为服务器。本发明实施例以电子设备为服务器为例,对服务器的硬件结构做详细说明。图2为本发明实施例提供的服务器的硬件结构示意图,可以理解,图2仅仅示出了服务器的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。参见图2,本发明实施例提供的服务器包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。服务器中的各个组件通过总线系统205耦合在一起。可以理解,总线系统205用于实现这些组件之间的连接通信。总线系统205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统205。其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、闪存(flashmemory)等。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)。本发明实施例描述的存储器202旨在包括这些和任意其它适合类型的存储器。本发明实施例中的存储器202用于存储各种类型的数据以支持服务器的操作。这些数据的示例包括:用于在服务器上操作的任何可执行指令,如可执行指令,实现本发明实施例的内容的检索方法的程序可以包含在可执行指令中。作为本发明实施例提供的内容的检索装置采用软硬件结合实施的示例,本发明实施例所提供的内容的检索装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的内容的检索方法。作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。作为本发明实施例提供的内容的检索装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件执行实现本发明实施例提供的内容的检索方法。本发明实施例揭示的内容的检索方法可以由处理器201实现。处理器201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,内容的检索方法的各步骤可以通过处理器201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器201可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器201可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的内容的检索方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器202,处理器201读取存储器202中的信息,结合其硬件完成本发明实施例提供的内容的检索方法的步骤。将结合本发明实施例提供的服务器的示例性应用和实施,说明本发明实施例提供的内容的检索方法。图3是本发明实施例提供的内容的检索方法的流程示意图,参见图3,本发明实施例提供的内容的检索方法包括:步骤301:服务器响应于携带检索文本的内容检索请求,确定检索文本中的检索关键词。在一些实施例中,携带检索文本的内容检索请求可以是客户端发送的,用户通过在用户界面的搜索框中输入检索文本,以触发检索指令,通过客户端发送内容检索请求给服务器。服务器接收到内容检索请求后,响应于内容检索请求,从检索文本中提取检索关键词。在一些实施例中,服务器可以通过以下方式确定检索文本中的检索关键词:解析所述内容检索请求,得到检索文本;对检索文本进行分词,得到对应检索文本的多个词,根据词性对多个词进行处理,得到以下至少之一:动词、名词;将得到的名词和/或动词作为检索文本中的检索关键词。这里,分词指的是将连续的字序列按照一定的规范重新组合成词序列的过程,例如,用户输入的检索文本为“明天的天气”,分词得到“明天”“的”“天气”。服务器得到对应检索文本的多个词后,对每个词的词性进行分析,如,“明天”为名词、“的”为助词、“天气”为名词,然后将这些词中的名词和/或动词提取出来,作为检索关键词,如,提取“明天”和“天气”作为检索关键词。在一些实施例中,服务器可以采用基于字符串匹配的分词方法对检索文本进行分词,即将检索文本中的字序列与机器词典中的词条进行匹配。在另一些实施例中,服务器可以采用基于理解的分词方法对检索文本进行分词,即在分词的同时进行句法、及语义的分析,利用句法信息和语义信息来处理歧义现象。在另一些实施例中,服务器可以采用基于统计的分词方法对检索文本进行分词,即利用大量已经分词的文本,通过统计机器学习模型学习词语切分的规律,从而实现对未知文本的切分。在实际实施时,可以利用已有的分词工具对检索文本进行分词,如jieba分词、snownlp、thulac等。步骤302:获取与检索关键词的语义相匹配的至少一个目标检索词。这里,与检索词的语义相匹配的词可以是与检索关键词语义相同或相近的词,如,检索关键词为“触动”,那么与其语义相匹配的词可以是“感动”、“打动”、“震动”,可以将这三个词确定为目标检索词;检索关键词为“广州大学”,那么与其语义相匹配的词可以是“广大”,可以将“广大”确定为目标检索词。在一些实施例中,服务器可以通过以下方式获取与检索关键词的语义相匹配的至少一个目标检索词:分别获取检索关键词与词库中各个词的语义相似度;确定词库中与检索关键词的语义相似度达到相似度阈值的至少一个词作为目标检索词。在一些实施例中,服务器获取检索关键词及词库中各个词的语义向量,分别计算检索关键词的语义向量和词库中各个词的语义向量的夹角余弦值,得到检索关键词与词库中各个词的语义相似度。在实际实施时,可以通过神经网络模型检索关键词及词库中各个词的语义向量,神经网络模型基于历史检索关键词及其对应的语义向量训练得到。将检索关键词或词库中的词输入神经网络模型,输出对应的语义向量。需要说明的是,相似度阈值的大小可基于实际需要进行设定,在实际应用中,与检索关键词的语义相似度达到相似度阈值的可以为一个或多个,例如,假设预设的相似度阈值为0.6,检索关键词为“触动”,“感动”与“触动”的相似度0.63,则将“感动”为目标检索词。步骤303:分别将至少一个目标检索词与检索文本中的检索关键词进行替换,得到至少一个目标检索文本。这里,检索文本中的检索关键词可以有一个或者多个,每一个检索关键词可以对应一个或多个目标检索词,那么,在将目标检索词与检索文本中的检索关键词进行替换时,可以仅对一个检索关键词进行替换,也可以同时替换多个关键词。例如,检索文本为“爱阅读”,检索关键词为“爱”和“阅读”。对于检索关键词“爱”,目标检索词为“喜欢”、“喜爱”;对于检索关键词“阅读”,目标检索词为“看”,那么,替换得到的目标检索文本可以为以下至少之一:“喜欢阅读”、“喜爱阅读”、“爱看”、“喜欢看”、“喜爱看”。步骤304:分别基于至少一个目标检索文本进行内容检索,得到多条检索结果。分别将每个目标检索文本与内容的标识信息进行匹配,获取标识信息中包含目标检索文本的内容,获取的每个内容对应一条检索结果。这里,内容的标识信息可以为内容的标题、摘要、作者等,内容可以是视频、图片、文章等。以对微信中的公众号文章进行检索为例,将目标检索文本与所有微信公众号文章进行匹配,获取标题或摘要中包括目标检索文本的文章,获取的每一篇文章对应一条检索结果,检索结果可以由文章的标题或摘要表示。例如,目标检索文本为“爱看”,可以得到以下检索结果:“为什么那么多人都爱看励志文章”、“这一次,请您投票选您爱看的电影”。步骤305:基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分。这里,确定检索结果是否为符合用户检索需求的,可以通过判断检索结果中目标检索词是否与检索关键词的语义相近来确定,即将检索结果中的目标关键词替换为检索关键词,对检索结果的语义进行评分,评分越高,说明检索结果中目标检索词与检索关键词的语义越接近。例如,对于检索文本“爱阅读”对应的目标检索文本为“爱看”,检索到的检索结果为“为什么那么多人都爱看励志文章”、“这一次,请您投票选您爱看的电影”。对于“为什么那么多人都爱看励志文章”,将“看”替换为“阅读”,对“为什么那么多人都爱阅读励志文章”进行合理性评分。参见图4,图4是本发明实施例提供的内容的检索方法的流程示意图,在一些实施例中,图3示出的步骤305可以通过图4示出的步骤3051至步骤3053实现,对于每条检索结果,分别执行以下操作:步骤3051:获取检索结果中与目标检索词相关联的多个词;步骤3052:将与目标检索词相关联的多个词及检索关键词进行组合,得到对应检索结果的目标文本;步骤3053:确定目标文本的语义合理性评分,将目标文本的语义合理性评分作为检索结果的语义合理性评分。由于并不是一句话中的所有词都对目标检索词的含义有影响,而仅仅是与目标检索词相关联的多个词才会影响目标检索词的含义,这里,相关联的多个词可以是目标检索词前或后的多个词。例如,对于“为什么那么多人都爱看励志文章”中的“看”的含义仅与“文章”相关。通过获取检索结果中与目标检索词相关联的多个词,以与检索关键词组合成目标文本,确定目标文本的语义合理性评分,如此,能够降低计算的复杂度。在一些实施例中,服务器可以对检索结果进行分词,并确定检索结果中目标检索词所处的位置,获取检索结果中目标检索词前、后预设个数的词,作为与目标检索词相关联的词。这里,获取的词的个数可以是用户预先设置的,也可以是根据检索结果确定的。例如,对于检索结果“这一次,请您投票选您爱看的电影”,目标检索词为“看”,那么可以将“看”前面的两个词和后面两个词作为与“看”相关联的词,即“您”、“爱”、“的”、“电影”。在一些实施例中,服务器可以将检索结果中的“目标检索词”替换为“检索关键词”,根据替换后的检索结果中的各个词顺序,将与目标检索词相关联的多个词及检索关键词进行组合,例如,将“您”、“爱”、“的”、“电影”与“阅读”进行组合,得到目标文本“您爱阅读的电影”。参见图5,图5是本发明实施例提供的内容的检索方法的流程示意图,在一些实施例中,图4中步骤3053的确定目标文本的语义合理性评分可以通过以下方式实现:获取目标文本在语料库中出现的次数;根据获取次数与语义合理性评分的映射关系,确定目标文本的语义合理性评分。这里,次数与语义合理性评分为正相关的关系,目标文本在语料库中出现的次数越多,说明目标文本越符合使用习惯,对应的语义合理性评分应该越高。其中,语料库可以是通过海量文本构建的。例如,没人会大量写“阅读的电影”,那么其在语料库中出现的次数必然很少,对应的语义合理性评分也会很低。参见图6,图6是本发明实施例提供的内容的检索方法的流程示意图,在一些实施例中,图4中步骤3053的确定目标文本的语义合理性评分可以通过以下方式实现:对目标文本进行分词处理,得到对应目标文本的词序列;获取词序列中各个词在语料库中出现的概率;确定各个词在语料库中出现的概率的乘积,将乘积作为语义合理性评分。在实际实施时,服务器可以将目标文本在语料库中出现的概率作为语义合理性评分,其中,目标文本在语料库中出现的概率为目标文本中各个词出现的概率的乘积。在一些实施例中,由于各个词在语料库中出现的概率与其在目标文本中前面的词有关,假设目标文本t是由词序列a1,a2,a3,…,an组成的,那么,p(t)=p(a1a2a3…an)=p(a1)p(a2|a1)p(a3|a1a2)…p(an|a1a2…an-1),其中,p(a1)、p(a2|a1)、p(a3|a1a2)、…、p(an|a1a2…an-1)分别为a1,a2,a3,…,an在语料库中出现的概率。需要说明的是,p(a1a2a3…an)表示a1,a2,a3,…,an同时发生的概率。图7为本发明实施例提供的ab交集示意图,在实际实施时,p(a,b)表示的是a、b同时发生的概率,当a、b相互独立时,也就是交集为空的时候,p(a,b)=p(a)p(b);当a、b相关联的时候,或者说存在交集的时候,如图7所示,p(a,b)=p(a)p(b|a)。在一些实施例中,服务器还可以通过以下方式确定各个词在语料库中出现的概率:将词与位于词前预设个数的词进行组合,得到第一文本;将位于词前预设个数的词进行组合,得到第二文本;分别获取第一文本及第二文本在语料库中出现的次数;获取第二文本在语料库中出现的次数与第一文本在语料库中出现的次数的比值,得到所述分词在语料库中出现的概率。这里,引入了马尔科夫假设,即:一个词的出现概率,只与其前m个词有关,如此,能够减少计算的复杂度。其中,m可以根据需要进行设置,当m=0时,就是unigram模型,m=1时,是bigram模型。以bigram模型为例,对于由词序列a1,a2,a3,…,an组成的目标文本t,p(t)=p(a1)p(a2|a1)p(a3|a2)…p(an|an-1),其中,p(a1),p(a2|a1),p(a3|a2),…,p(an|an-1)分别为a1,a2,a3,…,an在语料库中出现的概率。而对于p(an|an-1),可以通过极大似然估计求得,即p(an|an-1)=count(an-1,an)/count(an-1),其中,count(an-1,an)为(an-1,an)语料库中出现的次数,count(an-1)为an-1在语料库中出现的次数。在一些实施例中,服务器可以获取海量文本数据,以训练一个大规模语言模型,模型格式为<词条,词频,语义合理性评分>,如此,在需要获取目标文本的语义合理性评分时,仅需要将目标文本输入模型,就可以直接根据训练得到的模型确定目标文本的合理性评分,如此,减少了计算语义合理性评分的时间。其中,词条可以根据需要设置为2元词条、3元词条、4元词条等,通常设置为3元词条。例如,将训练得到一个3元语言模型,那么将3元词条“爱/看/电影”输入模型,输出其在语料库中出现的次数,及语义合理性评分。步骤306:基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果。这里,语义合理性评分越高,表示语句越通顺,越符合语言习惯。根据语义合理性评分,将符合语言习惯的检索结果筛选出来,返回给用户;而将不符合语言习惯的检索结果过滤掉。在一些实施例中,服务器可通过如下方式对多条检索结果进行筛选:基于获取的语义合理性评分,从多条检索结果中筛选出语义合理性评分达到分数阈值的检索结果。这里,分数阈值的大小可基于实际需要进行设定,在实际应用中,语义合理性评分达到分数阈值的检索结果可以为一个或多个,例如,将分数阈值设置为0.1,目标文本“爱阅读的电影”是语义合理性评分为0.01,不符合语言文法习惯的;而“爱阅读的书”的语义合理性评分为0.56,符合正常语言文法习惯,那么,将“爱阅读的书”所对应的检索结果“4种孩子爱看的书”返回给用户,而将“爱阅读的电影”所对应的检索结果“这一次,请您投票选您爱看的电影”过滤掉,不返回给用户。在一些实施例中,服务器还可通过如下方式对多条检索结果进行筛选:基于获取的语义合理性评分,对多条检索结果进行优先级排序;根据优先级排序,选取预设数量的检索结果。也即,在对检索结果进行筛选的过程中不去考虑具体的语义合理性评分的分数值,无论是否存在语义合理性评分达到分数阈值的检索结果,均选取预设数量的检索结果返回给终端,如此,给用户提供更多可选择的检索结果,用户体验好。本发明实施例基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分;基于获取的所述语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果;如此,由于在得到多条检索结果后,根据检索关键词及目标检索词,对检索结果的语义合理性进行了后验,保证了在检索结果中检索关键词与目标检索词的含义相同,提高了检索结果的准确性。下面以检索公众号中的文章为例,对本发明提供的内容检索方法进行说明。图8为本发明实施例提供的内容的检索方法的流程示意图,参见图8,本发明实施例提供的内容的检索方法包括:步骤401:客户端将携带检索文本的检索请求发送给服务器。这里,检索文本为用户在客户端的检索框内输入的,用户输入检索文本后,触发检索指令,以使客户端发送检索请求给服务器。步骤402:服务器对检索请求进行解析,得到检索文本。步骤403:服务器对检索文本进行分词,得到对应检索文本的多个词。步骤404:服务器根据词性,从对应检索文本的多个词中提取一个名词或动词,作为检索关键词。步骤405:服务器将目标检索词与检索文本中的检索关键词进行替换,得到目标检索文本。步骤406:服务器将目标检索文本与数据库中所有公众号文章的标题进行匹配,得到标题包括目标检索文本的多篇文章,对应多条检索结果。步骤407:服务器对于检索到的每一条检索结果,获取检索结果所对应的标题中目标检索词的前两个词和后两个词。例如,对于标题“这一次,请您投票选您爱看的电影”,目标检索词为“看”,那么可以获取“您”、“爱”、“的”、“电影”。步骤408:服务器将目标检索词的前两个词和后两个词及检索关键词进行组合,得到目标文本。例如,将“您”、“爱”、“的”、“电影”与检索关键词“阅读”进行组合,得到“您爱阅读的电影”。步骤409:服务器对目标文本进行分词处理,得到对应目标文本的词序列a1,a2,a3,a4,a5。步骤410:服务器计算a1在语料库中出现的次数与语料库中词的总数n的比值p(a1),并根据p(an|an-1)=count(an-1,an)/count(an-1),计算p(a2|a1)、p(a3|a2)、p(a4|a3)和p(a5|a4)。其中,count(an-1,an)为(an-1,an)语料库中出现的次数,count(an-1)为an-1在语料库中出现的次数,如“您爱阅读的电影”中,p(阅读|爱)为“爱阅读”在语料库中出现的次数与“爱”在语料库中出现的次数的比值。步骤411:服务器获取p(a1)、p(a2|a1)、p(a3|a2)、p(a4|a3)和p(a5|a4)的乘积,作为目标文本的语义合理性评分。步骤412:服务器从多条检索结果中筛选出语义合理性评分达到0.1的检索结果。步骤413:服务器将筛选得到的检索结果返回给客户端。步骤414:客户端显示筛选得到的检索结果。下面,继续对本发明实施例提供的内容的检索方法进行说明,在实际实施时,内容的检索方法包括大规模n-gram语言模型构建和同义词上下文后验两部分。首先,对大规模n-gram语言模型构建进行说明。这里,n-gram语言模型的思想,可以追溯到信息论大师香农的研究工作,他提出一个问题:给定一串字母,如“forex”,下一个最大可能性出现的字母是什么?从训练语料数据中,我们可以通过极大似然估计的方法,得到n个概率分布:是a的概率是0.4,是b的概率是0.0001,是c的概率是…,当然,所有的n个概率分布的总和为1。下面对n-gram模型概率公式推导进行说明。根据条件概率公式:p(b|a)=p(ab)/p(a),得到对应的乘法公式:p(ab)=p(a)p(b|a)(p(a)>0)。那么,p(a1a2a3…an)=p(a1)p(a2|a1)p(a3|a1a2)…p(an|a1a2…an-1),其中,p(a1a2a3…an-1)>0。假设t是由词序列a1,a2,a3,…,an组成的,那么p(t)=p(a1a2a3…an)=p(a1)p(a2|a1)p(a3|a1a2)…p(an|a1a2…an-1)。如果直接这么计算,是有很大困难的,需要引入马尔科夫假设,即:一个item的出现概率,只与其前m个items有关,当m=0时,就是unigram,m=1时,是bigram模型。因此,p(t)可以求得,例如,当利用bigram模型时,p(t)=p(a1)p(a2|a1)p(a3|a2)…p(an|an-1)。其中,p(an|an-1)条件概率可以通过极大似然估计求得,等于count(an-1,an)/count(an-1)。其中,count(an-1,an)为(an-1,an)语料库中出现的次数,count(an-1)为an-1在语料库中出现的次数。我们可以选取海量微信公众号文章全文,训练一个大规模n元n-gram语言模型,模型格式如下:<n元词条,词频,语义合理评分>。这里,词频即n元词条在海量微信公众号文章全文中出现的次数,语义合理评分可以为n元词条符合语言习惯的概率p(t)。接下来,对同义词上下文后验方法进行介绍。当用户需要对检索文本进行检索时,服务器会获取检索文本中的至少一个检索关键词,并通过同义词词典或相似度匹配等方式获取与至少一个检索关键词相匹配的目标关键词。将目标关键词与检索文本中的至少一个检索关键词进行替换,以得到扩充的目标检索文本。根据目标检索文本进行内容检索,得到多条检索结果。针对每一条检索结果,获取检索结果中目标关键词的上下文片段,将目标关键词的上下片段与检索关键词进行组合,得到目标文本。根据训练得到的n-gram语言模型,确定目标文本语义合理性评分。判断语义合理性评分是否达到评分阈值,若达到,则将对应的检索结果返回给用户;否则,不返回给用户。例如,用户输入检索文本“爱阅读”,将“爱阅读”中的“阅读”替换为与其相匹配的目标关键词“看”。图9为本发明实施例提供的检索结果的示意图,如图9所示,图9中的第一列为根据“爱看”进行检索,得到检索结果“只知道一味拖怨孩子不受读书,家长有问过自己,我,爱看书吗?”及“第四届银海社区奇趣电影季|这一次,请您投票选您爱看的电影”。这里,根据“看”的上下文片段及检索关键词“阅读”,得到目标文本“爱阅读书”和“爱阅读的电影”。根据训练好的n-gram语言模型可以得到目标文本的合理性评分,如下表所示,“阅读的电影”的语义合理性评分为0.01,“爱看的书”的语义合理性评分为0.56。将评分阈值设置为0.1,那么,将“爱看的书”返回给用户,而过滤掉“xxx爱看的电影”。目标检索词上下文词频目标文本词频语义合理性评分“爱看书”1449“爱阅读书”8140.56“爱看的电影”1636“爱阅读的电影”210.01在一些实施例中,还可以根据目标文本的词频对检索结果进行筛选,目标文本的词频越高说明目标文本越符合语言习惯,应该保留对应的检索结果,而词频越低,则越应该过滤掉对应的检索结果。接下来对本发明实施例提供的内容的检索装置进行说明,在一些实施例中,内容的检索装置可采用软件模块的方式实现,图10为本发明实施例提供的内容的检索装置的组成结构示意图,参见图10,内容的检索装置包括:确定单元601,用于响应于携带检索文本的内容检索请求,确定检索文本中的检索关键词;获取单元602,用于获取与检索关键词的语义相匹配的至少一个目标检索词;替换单元603,用于分别将至少一个目标检索词与检索文本中的检索关键词进行替换,得到至少一个目标检索文本;检索单元604,用于分别基于至少一个目标检索文本进行内容检索,得到多条检索结果;评分单元605,用于基于检索关键词及目标检索词,确定多条检索结果的语义合理性评分;筛选单元606,用于基于获取的语义合理性评分,对多条检索结果进行筛选,并返回筛选得到的检索结果。本发明实施例还提供一种服务器,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的内容的检索方法。本发明实施例还提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的内容的检索方法。在一些实施例中,存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1