一种搜索方法和系统的制作方法_3

文档序号:8528166阅读:来源:国知局
27]2、在句库的基础上上,学习得到 PCFG(Probabilistic Context-free Grammar,概率上下文无关文法)模型;
[0128]3、采用PCFG模型对句子分析,得到相应句子成分(主语、谓语、宾语、修饰成分等等)和各个成分之间的依赖关系。此依赖关系可以包括主语依赖修饰词的依赖关系,或者,修饰词依赖主语的依赖关系。
[0129]子步骤S342,当所述主语为所述实体词、所述修饰词为所述属性词,并且,所述依赖关系为所述主语依赖所述修饰词的依赖关系时,则所述查询词串符合逆向表达的句法规则。
[0130]此时,主语依赖修饰词的依赖关系即为实体词依赖于属性词的依赖关系。
[0131]此外,当所述主语为所述实体词、所述修饰词为所述属性词,并且,所述依赖关系为所述修饰词依赖所述主语的依赖关系时,则所述查询词串符合正向表达的句法规则。
[0132]此时,修饰词依赖主语的依赖关系即为属性词依赖于实体词的依赖关系。例如,查询词串“谢霆锋的父亲是谁”中属性词“父亲”依赖于实体词“谢霆锋”,因此“谢贤的父亲是谁”符合正向表达的句法规则;而对于查询词串“谢霆锋是谁的儿子”,实体词“谢霆锋”依赖于属性词“儿子”,因此,“谢霆锋是谁的儿子”符合逆向表达的句法规则。所谓依赖,为PCFG模型中当前事物不能离开某个事物而独立存在。例如,在查询词串“谢霆锋的父亲是谁”中,“父亲”不能离开“谢霆锋”独立存在,则“父亲”依赖于“谢霆锋”,反之,“谢霆锋”可以离开“父亲”而独立存在。
[0133]子步骤S35,获取在服务器存储的符合正向表达的句法规则对应的预置表达式;所述预置表达式具有使用频次;
[0134]在具体实现中,正向表达和逆向表达的对应关系可以基于知识库通过互联网网页挖掘得到。基于知识库实体和属性值的文本对,通过机器翻译模型在互联网中挖掘出实体属性的所有的正向表达的表达式和逆向表达的表达式。
[0135]子步骤S36,当所述预置表达式的使用频次高于预设阈值时,将所述查询词串按照正向表达的句法规则进行改写。
[0136]本申请实施例中,可以统计出各种正向表达的表达式的使用频次,将使用频次高于预示阈值的正向表达的表达式作为搜索引擎友好的句式。
[0137]在具体实现中,可以将查询词串中实体词依赖于属性词的依赖关系改写为属性词依赖于实体词的依赖关系,进而将查询词串改写为符合正向表达的句法规则的查询词串
[0138]例如,如图3所示,对于查询词串“谢霆锋是谁的儿子”,实体词“谢霆锋”依赖于属性词“儿子”,通过句法树分析可以看出实体词和属性词之间是逆向表达的关系,在知识库中预先制作的逆向表达和正向表达对应关系表中,查找到对应的正向表达,及对应的使用频次。此示例的逆向表达的句法规范为“〈实体_人 > 是谁的〈属性_人_儿子 >”,对应的正向表达的句法规范为“〈实体_人 > 的〈属性_人_父亲〉是谁”。进一步地,可以通过查找翻译字典中得到实体词“谢霆锋”对应的搜索引擎的标识实体词为“谢霆锋”,查找翻译翻译字典得到属性词“〈属性_人_父亲 >”对应的搜索引擎友好词为“父亲”(即标识属性词),采用标识实体词和标识属性词按照正向表达的句法规则进行改写,得到最终的改写的查询词串为“谢霆锋的父亲是谁”,以改写后的查询词串“谢霆锋的父亲是谁”代替原有的“谢霆锋是谁的儿子”进行搜索,得到与谢贤相关的网页。
[0139]需要说明的是,对于实体词的改写(对应为子步骤S31和子步骤S32)、属性词的改写(对应为子步骤S33)和句式的改写(对应为子步骤S34、子步骤S35和子步骤S36)可以单个使用,也可以两个或三个的组合使用,本申请实施例对此不加以限制。
[0140]步骤204,以改写后的查询词串进行搜索,得到匹配的网络信息。
[0141]在查询词串改写结束之后,便可以进行网络信息的检索匹配。
[0142]如图4所示,应用本申请实施例,可以对用户输入的查询词串“谢霆锋是谁的儿子”改写为“谢霆锋的父亲是谁”,进而基于“谢霆锋的父亲是谁”进行搜索,相比于图2所示的搜索结果,本申请实施例返回的信息更为符合用户的需求。
[0143]本申请通过对查询词串中的自然语言进行语义分析,得到语义表达式,进而确定符合当前语境的语义表达式中各词所属的语义标签,基于该语义标签进行查询词串的改写,更为符合用户意图,使得在搜索时信息匹配的成功率高,提高了搜索的质量,并且搜索效率高,满足了用户需求,提高了用户体验。
[0144]本申请可以将实体词、属性词改写为与搜索引擎友好的标识实体词、标识属性词,可以将不常用的逆向表达的查询词串改写为常用的正向表达的查询词串,提高了搜索引擎搜索信息的覆盖率,进一步提高了信息匹配的成功率高。
[0145]为使本领域技术人员更好地理解本申请,以下提供一个例子来说明本申请实施例应用于查询词串“任丘在什么地方”的具体实现过程。
[0146]1、结合知识库对所述查询词串“任丘在什么地方”进行语义分析,其中包括:
[0147]实体词分析:通过查询知识库中的实体词列表,识别出“任丘”为实体词,类型(原始语义标签)为“人”、“地名”,语义表达式为“任丘〈实体_人 >〈实体_地点>”;
[0148]属性词分析:通过查询知识库中的属性词列表,识别出“在什么地方”为属性词,类型为地点,标记语义标签后,表示为“在什么地方〈属性_地点_位置>”,
[0149]则查询词串对应的语义表达式为“任丘〈实体_人X实体_地点 > 在什么地方〈属性_地点_位置〉”。
[0150]3、结合所述语义表达式进行匹配分析:首先进行句法分析,获得属性词“在什么地方”依赖于实体词“任丘”,“任丘”有二个类型:“人”和“地名”。通过检查实体词和属性词的类型一致性,属性词“在什么地方”和实体词“任丘”共有类型为〈地点 >,从而确定当前实体词“任丘”的语义标签为“地点”。这样可以得到语义标签分析后的结果,为“任丘〈实体_地点 > 在什么地方〈属性_地点_位置>”;
[0151]4、根据所述语义标签对所述查询词串进行改写:
[0152]a)查询实体词和属性词对应的搜索引擎友好的标识实体词和标识属性词。通过查找翻译字典,得到实体词“任丘”对应的标识实体词“任丘市”,属性词“在什么地方”对应的标识属性词“地理位置”;
[0153]b)将查询词串中的实体和属性替换为搜索引擎的友好词(即标识实体词和标识属性词),得到改写后的查询词串“任丘市地理位置”;
[0154]5、使用“任丘市地理位置”作为改写后的查询词串进行搜索,并返回结果给用户。
[0155]可以理解,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请实施例所必须的。
[0156]参照图5,其示出了本申请的一种搜索系统实施例的结构框图,具体可以包括如下模块:
[0157]词性解析模块501,用于在接收到查询词串时,对所述查询词串进行语义分析,得到所述查询词串对应的语义表达式;
[0158]语义标签确定模块502,用于结合所述语义表达式进行匹配分析,确定当前查询词串中各词所属的语义标签;
[0159]改写模块503,用于根据所述语义标签对所述查询词串进行改写;
[0160]查询模块504,用于以改写后的查询词串进行搜索,得到匹配的网络信息。
[0161]在本申请的一种优选实施例中,所述词性解析模块501可以包括如下子模块:
[0162]实体词查找模块,用于在知识库预置的实体词列表中查找所述查询词串对应的实体词;
[0163]属性词查找模块,用于在知识库预置的属性词列表中查找所述查询词串对应的属性词。
[0164]在本申请的一种优选实施例中,所述语义标签确定模块502可以包括如下子模块:
[0165]提取子模块,用于提取所述属性词的预置的语义标签;
[0166]标记子模块,用于对所述实体词标记一个或多个原始语义标签;
[0167]关联关系判断模块,用于分别判断被标记原始语义标签的所述实体词,与被标记语义标签的所述属性词是否存在预定义的关联关系;若是,则调用确定子模块;
[0168]确定子模块,用于确定存在所述预定义关联关系的原始语义标签为当前所述实体词所属的语义标签。
[0169]在本申请的一种优选实施例中,所述改写模块503可以包括如下子模块:
[0170]标识实体词查找子模块,用于采用所述语义标签查找预置的标识实体词;
[0171]标识实体词替换子模块,用于将所述实体词替换为预置的标识实体词;
[0172]和/ 或,
[0173]标识属性词替换子模块,用于将所述属性词替换为预置的标识属性词;
[0174]和/ 或,
[0175]逆向表达判断子模块,用于判断所述查询词串是否符合逆向表达句法规则;若是,则调用预置表达式获取子模块;
[0176]预置表达式获取子模块,用于获取对应的在服务器存储的符合正向表达句法规则的预置表达式;所述预置表达式具有使用频次;
[0177]正向表达改写子模块,用于在所述预置表达式的使用频次高于预设阈值时,将所述查询词串按照正向表达句法规则进行改写。
[01
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1