一种识别搜索需求的方法和装置制造方法及图纸

技术编号:8532883 阅读:179 留言:0更新日期:2013-04-04 15:54
本发明专利技术提供了一种识别搜索需求的方法和装置,在数据库中分别以特里(Trie)树的形式存储词典和需求识别模板,分别得到词典Trie树和模板Trie树;该方法包括:接收到用户搜索请求(query)后,结合词典Trie树和模板Trie树对用户query进行匹配,确定匹配到的模板所对应的需求类型。通过本发明专利技术能够提高识别搜索需求的效率,降低了搜索对搜索引擎的性能所带来的计算压力。

【技术实现步骤摘要】
一种识别搜索需求的方法和装置
本专利技术涉及计算机
,特别涉及一种识别搜索需求的方法和装置。
技术介绍
在搜索技术中,搜索引擎为了能够向用户返回准确的搜索结果,需要对用户搜索请求(query)进行需求识别,从而能够根据识别出的需求返回相应数据资源的搜索结果,或者根据识别出的需求对搜索结果进行相应形式的展现。用户表达的某一类query通常符合某种模式,在现有的搜索需求识别技术中,通常将具有相同需求的query归纳起来形成一种或多种模板的形式,预先建立模板与搜索需求的对应关系。接收到用户query后,首先将用户query与词典进行匹配,根据词典的匹配结果确定出用户query中各词语的属性,利用确定的各词语的属性与模板逐一进行匹配,将匹配的模板对应的搜索需求识别为用户query的搜索需求。然而,在现有的搜索需求中,在匹配过程中需要逐一与数据库中的词典和各模板进行匹配,而通常数据库中的词典和模板的数量很大,这就会造成识别用户query的搜索需求的效率很低,每天海量的搜索会对搜索引擎的性能带来很大的计算压力。
技术实现思路
有鉴于此,本专利技术提供了一种识别搜索需求的方法和装置,以便于提高识别搜索需求的效率,降低搜索对搜索引擎的性能所带来的压力。具体技术方案如下:一种识别搜索需求的方法,在数据库中分别以特里Trie树的形式存储词典和需求识别模板,分别得到词典Trie树和模板Trie树;所述方法包括:接收到用户搜索请求query后,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型。其中,所述词典Trie树中根节点指示初始状态,叶节点和部分中间节点指示匹配到的词语属性,节点与节点之间的转移条件为字符;所述模板Trie树中根节点指示初始状态,叶节点指示模板匹配成功,节点和节点之间的转移条件包括:具体词语、词语属性、通配符或函数。具体地,在数据库中以Trie树的形式存储词典得到词典Trie树包括:A1、在数据库中建立词典Trie树的根节点,该根节点指示初始状态;A2、从所述词典中获取一个尚未添加到词典Trie树中的词语,读取当前获取的词语中的第一个字符,将词典Trie树的根节点作为当前添加位置;A3、判断当前读取到的字符是否已经存在于从当前添加位置开始的转移条件,如果是,执行步骤A4;否则,执行步骤A6;A4、在词典Trie树中,将当前读取到的字符所存在的转移条件对应的下一级节点作为当前添加位置;A5、判断当前读取到的词语是否存在下一个字符,如果是,读取当前获取的词语的下一个字符,转至步骤A3;否则,执行步骤A9;A6、将当前读取到的字符添加为从当前添加位置开始的一个转移条件;A7、判断当前获取的词语中是否存在下一个字符,如果是,执行步骤A8;否则,将当前获取的词语的属性添加到步骤A6所添加转移条件对应的下一级节点中,执行步骤A9;A8、将步骤A6所添加转移条件对应的下一级节点作为当前添加位置,读取当前获取的词语中的下一个字符,转至步骤A3;A9、结束当前获取的词语的添加过程,如果所述词典中存在尚未添加到词典Trie树中的词语,则转至步骤A2;否则,得到词典Trie树。具体地,在数据库中以Trie树的形式存储模板得到模板Trie树包括:B1、在数据库中建立模板Trie树的根节点,该根节点指示初始状态;B2、获取一个尚未添加到模板Trie树中的模板,读取当前获取的模板中第一个模板槽的内容,将模板Trie树的根节点作为当前添加位置;B3、判断当前读取到的模板槽的内容是否已经存在于当前添加位置开始的转移条件,如果是,执行步骤B4;否则执行步骤B7;B4、在模板Trie树中,将当前读取到的模板槽的内容所在的转移条件对应的下一级节点作为当前添加位置;B5、判断当前读取的模板槽是否存在下一个模板槽,如果是,读取下一个模板槽的内容,转至步骤B3;否则,执行步骤B6;B6、在当前添加位置中添加模板匹配成功的指示,执行步骤B8;B7、将当前读取的模板槽的内容添加为从当前添加位置开始的一个转移条件,将该转移条件对应的下一级节点作为当前添加位置,转至步骤B5;B8、结束当前获取的模板的添加过程,如果存在尚未添加到模板Trie树的模板,则转至步骤B2;否则,得到模板Trie树。更进一步地,在所述步骤B6中还可以包括:在当前添加位置中添加当前获取的模板所对应需求类型信息的出口,或者添加当前获取的模板所对应的需求类型信息。其中,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型具体包括:C1、从所述用户query的第一个字符开始与所述词典Trie树进行匹配,记录每一轮词典Trie树匹配到的各项内容得到所述用户query的各种词全切分结果,所述词全切分结果包括词语以及词语的属性,且每一种词全切分结果中的词语构成所述用户query;C2、逐一针对每一种词全切分结果分别在所述模板Trie树上进行匹配,确定匹配到的模板所对应的需求类型。具体地,所述步骤C1可以包括:C11、接收到所述用户query后,词典指针指向所述用户query的第一个字符;C12、将词典Trie树的根节点作为当前匹配位置;C13、判断当前读取的字符是否匹配到从当前匹配位置开始的转移条件,如果是,执行步骤C14;否则,执行步骤C17;C14、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示词语属性,如果是,执行步骤C15;否则,执行步骤C16;C15、获取并记录当前确定的节点指示的词语属性和匹配到的字符构成的词语;C16;判断当前读取的字符在所述用户query中是否存在下一个字符,如果是,读取下一个字符转至所述步骤C13;否则结束步骤C1;C17、确定当前词典指针位置时记录的词语中的最短词语,判断该最短词语在用户query中是否存在下一个字符,如果是,将词典指针指向该最短词语在用户query中的下一个字符,读取词典指针指向的字符,转至步骤C12。具体地,在所述步骤C2中针对每一种词全切分结果分别执行以下步骤:C21、将模板指针指向所述用户query的第一个字符,将模板Trie树的根节点作为当前匹配到的节点;C22、确定当前词全切分结果中以当前模板指针所指向的字符开始的词语;C23、判断当前读取的词语或该词语的属性是否匹配到模板Trie树中从当前匹配到的节点开始的转移条件,如果是,执行步骤C24;否则,结束对当前词全切分结果的模板匹配;C24、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示模板匹配成功,如果是,执行步骤C25;否则,执行步骤C26;C25、获取当前确定的节点指示的搜索需求,结束步骤C2;C26、判断当前读取的词语在所述用户query中是否存在下一个字符,如果是,执行步骤C27;否则,结束步骤C2;C27、将模板指针指向当前读取的词语在所述用户query中的下一个字符,转至步骤C22。另外,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型具体包括:D1、将词典指针指向用户query的第一个字符;D2、从词典指针指向的字符开始与所述词典Trie树进行匹配;D3、一本文档来自技高网...
一种识别搜索需求的方法和装置

【技术保护点】
一种识别搜索需求的方法,其特征在于,在数据库中分别以特里Trie树的形式存储词典和需求识别模板,分别得到词典Trie树和模板Trie树;所述方法包括:接收到用户搜索请求query后,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型。

【技术特征摘要】
1.一种识别搜索需求的方法,其特征在于,在数据库中分别以特里Trie树的形式存储词典和需求识别模板,分别得到词典Trie树和模板Trie树;所述方法包括:接收到用户搜索请求query后,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型。2.根据权利要求1所述的方法,其特征在于,所述词典Trie树中根节点指示初始状态,叶节点和部分中间节点指示匹配到的词语属性,节点与节点之间的转移条件为字符;所述模板Trie树中根节点指示初始状态,叶节点指示模板匹配成功,节点和节点之间的转移条件包括:具体词语、词语属性、通配符或函数。3.根据权利要求1或2所述的方法,其特征在于,在数据库中以Trie树的形式存储词典得到词典Trie树具体包括:A1、在数据库中建立词典Trie树的根节点,该根节点指示初始状态;A2、从所述词典中获取一个尚未添加到词典Trie树中的词语,读取当前获取的词语中的第一个字符,将词典Trie树的根节点作为当前添加位置;A3、判断当前读取到的字符是否已经存在于从当前添加位置开始的转移条件,如果是,执行步骤A4;否则,执行步骤A6;A4、在词典Trie树中,将当前读取到的字符所存在的转移条件对应的下一级节点作为当前添加位置;A5、判断当前读取到的词语是否存在下一个字符,如果是,读取当前获取的词语的下一个字符,转至步骤A3;否则,执行步骤A9;A6、将当前读取到的字符添加为从当前添加位置开始的一个转移条件;A7、判断当前获取的词语中是否存在下一个字符,如果是,执行步骤A8;否则,将当前获取的词语的属性添加到步骤A6所添加转移条件对应的下一级节点中,执行步骤A9;A8、将步骤A6所添加转移条件对应的下一级节点作为当前添加位置,读取当前获取的词语中的下一个字符,转至步骤A3;A9、结束当前获取的词语的添加过程,如果所述词典中存在尚未添加到词典Trie树中的词语,则转至步骤A2;否则,得到词典Trie树。4.根据权利要求1或2所述的方法,其特征在于,在数据库中以Trie树的形式存储模板得到模板Trie树具体包括:B1、在数据库中建立模板Trie树的根节点,该根节点指示初始状态;B2、获取一个尚未添加到模板Trie树中的模板,读取当前获取的模板中第一个模板槽的内容,将模板Trie树的根节点作为当前添加位置;B3、判断当前读取到的模板槽的内容是否已经存在于当前添加位置开始的转移条件,如果是,执行步骤B4;否则执行步骤B7;B4、在模板Trie树中,将当前读取到的模板槽的内容所在的转移条件对应的下一级节点作为当前添加位置;B5、判断当前读取的模板槽是否存在下一个模板槽,如果是,读取下一个模板槽的内容,转至步骤B3;否则,执行步骤B6;B6、在当前添加位置中添加模板匹配成功的指示,执行步骤B8;B7、将当前读取的模板槽的内容添加为从当前添加位置开始的一个转移条件,将该转移条件对应的下一级节点作为当前添加位置,转至步骤B5;B8、结束当前获取的模板的添加过程,如果存在尚未添加到模板Trie树的模板,则转至步骤B2;否则,得到模板Trie树。5.根据权利要求4所述的方法,其特征在于,在所述步骤B6中还包括:在当前添加位置中添加当前获取的模板所对应需求类型信息的出口,或者添加当前获取的模板所对应的需求类型信息。6.根据权利要求1所述的方法,其特征在于,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型具体包括:C1、从所述用户query的第一个字符开始与所述词典Trie树进行匹配,记录每一轮词典Trie树匹配到的各项内容得到所述用户query的各种词全切分结果,所述词全切分结果包括词语以及词语的属性,且每一种词全切分结果中的词语构成所述用户query;C2、逐一针对每一种词全切分结果分别在所述模板Trie树上进行匹配,确定匹配到的模板所对应的需求类型。7.根据权利要求6所述的方法,其特征在于,所述步骤C1具体包括:C11、接收到所述用户query后,词典指针指向所述用户query的第一个字符;C12、将词典Trie树的根节点作为当前匹配位置;C13、判断当前读取的字符是否匹配到从当前匹配位置开始的转移条件,如果是,执行步骤C14;否则,执行步骤C17;C14、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示词语属性,如果是,执行步骤C15;否则,执行步骤C16;C15、获取并记录当前确定的节点指示的词语属性和匹配到的字符构成的词语;C16;判断当前读取的字符在所述用户query中是否存在下一个字符,如果是,读取下一个字符转至所述步骤C13;否则结束步骤C1;C17、确定当前词典指针位置时记录的词语中的最短词语,判断该最短词语在用户query中是否存在下一个字符,如果是,将词典指针指向该最短词语在用户query中的下一个字符,读取词典指针指向的字符,转至步骤C12。8.根据权利要求6所述的方法,其特征在于,在所述步骤C2中针对每一种词全切分结果分别执行以下步骤:C21、将模板指针指向所述用户query的第一个字符,将模板Trie树的根节点作为当前匹配到的节点;C22、确定当前词全切分结果中以当前模板指针所指向的字符开始的词语;C23、判断当前读取的词语或该词语的属性是否匹配到模板Trie树中从当前匹配到的节点开始的转移条件,如果是,执行步骤C24;否则,结束对当前词全切分结果的模板匹配;C24、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示模板匹配成功,如果是,执行步骤C25;否则,执行步骤C26;C25、获取当前确定的节点指示的搜索需求,结束步骤C2;C26、判断当前读取的词语在所述用户query中是否存在下一个字符,如果是,执行步骤C27;否则,结束步骤C2;C27、将模板指针指向当前读取的词语在所述用户query中的下一个字符,转至步骤C22。9.根据权利要求1所述的方法,其特征在于,结合所述词典Trie树和模板Trie树对所述用户query进行匹配,确定匹配到的模板所对应的需求类型具体包括:D1、将词典指针指向用户query的第一个字符;D2、从词典指针指向的字符开始与所述词典Trie树进行匹配;D3、一轮词典Trie树匹配结束后,将本轮词典Trie树匹配到的各项内容从上一轮模板Trie树匹配结束时匹配到的位置开始进行匹配,所述各项内容包括词语以及词语的属性,本轮模板Trie树匹配结束后,将词典指针指向本轮模板Trie树匹配所使用词语在用户query中的下一个字符,转至步骤D2开始下一轮词典Trie树的匹配,直至匹配到模板或者模板Trie树匹配失败;确定匹配到的模板所对应的需求类型。10.根据权利要求9所述的方法,其特征在于,所述步骤D2具体包括:D21、将词典Trie树的根节点作为当前匹配位置;D22、读取当前词典指针指向的字符,判断当前读取的字符是否匹配到从当前匹配位置开始的转移条件,如果否,本轮词典Trie树匹配结束,记录本轮词典Trie树匹配到的各项内容;如果是,执行步骤D23;D23、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示词语属性,如果是,执行步骤D24;否则,执行步骤D25;D24、获取并记录当前确定的节点指示的词语属性以及匹配到的字符构成的词语,执行步骤D25;D25、判断当前读取的字符在所述用户query中是否存在下一个字符,如果是,读取下一个字符,将当前确定的节点作为当前匹配位置,转至所述步骤D22;否则,转至所述步骤D3。11.根据权利要求9所述的方法,其特征在于,在步骤D3中,分别读取本轮词典Trie树匹配到的各项内容,并分别针对读取的各项内容执行以下匹配过程:D31、判断当前读取的词语或该词语的属性是否匹配到模板Trie树中从当前匹配到的节点开始的转移条件,所述当前匹配到的节点的初始位置为所述模板Trie树的根节点;如果是,执行步骤D32;否则,结束针对当前读取的内容的模板Trie树匹配;D32、确定匹配到的转移条件对应的下一级节点,判断当前确定的节点是否指示模板匹配成功,如果是,执行步骤D33;否则,将当前确定的节点作为当前匹配位置,词典指针指向当前读取的内容中词语在用户query中的下一个字符,转至所述步骤D2;D33、确定匹配到的模板对应的搜索需求,结束针对当前读取的内容的模板Trie树匹配。12.根据权利要求8或11所述的方法,其特征在于,判断当前读取的词语或该词语的属性是否匹配到模板Trie树中从当前匹配到的节点开始的转移条件包括:如果从当前匹配到的节点开始的转移条件是词语属性,则如果当前读取的词语的属性与转移条件中的词语属性一致,则确定两者匹配;或者,如果从当前匹配到的节点开始的转移条件是具体词语,则如果当前读取的词语与转移条件中的具体词语一致,则确定两者匹配;或者,如果从当前匹配到的节点开始的转移条件是通配符,则确认两者匹配,从当前读取的词语开始在query中截取通配符所指示长度,将截取的内容作为当前读取的词语;或者,如果从当前匹配到的节点开始的转移条件是函数,则调用所述函数从读取的词语开始在所述用户query中进行识别,如果识别结果满足预设的函数要求,则确认两者匹配,将满足预设的函数要求的识别结果所对应的词语作为当前读取的词语。13.一种识别搜索需求的装置,其特征在于,在数据库中分别以特里Trie树的形式存储词典和需求识别模板,分...

【专利技术属性】
技术研发人员:施少杰刘建柱薛阳阳
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1