专利名称:一种自然语言的搜索方法及系统的利记博彩app
技术领域:
本发明涉及搜索技术领域,特别是关于一种自然语言的搜索方法及系统。
背景技术:
自然语言搜索技术其实是自然语言理解与搜索技术相结合的产物。但是现有实际应用中的大多数自然语言搜索仅仅是对搜索输入词语进行基于词典的分词,然后再用分词出来的关键词对索引文件进行搜索。
分词主要是针对非英语语系类的语言而言,比如汉语。例如“多么美丽的花啊!”一句话,可以依据汉语词典对句子进行语义的折分,即分词成美丽的、花,这些正是语义的主体,也是自然语言搜索需要的关键词。因为对于搜索而言,被搜索内容事先已经按词典里的词条进行索引的创建。所以,在搜索时可能用反向查找的方式就可以找到要搜索的内容。
但是,自然语言搜索的关键是在自然语言语解上。也就是如何从输入中找出关键词信息。
下面分别介绍两种现有技术中如何找出关键词信息的方法。
一、基于主题森林的应答推理针对特定的业务,确定其主题树所涉及的主题,通过与用户多次交互,最终通过主题信息推理并搜索出用户所要的信息。
如图1所示的航班信息,系统通过询问用户各个主题日期、出发城市、到达城市、机型等,再通过这些信息去搜索,返回给用户确定的航班。
这种方案也可以用在基于手机短消息接入的彩铃搜索中,那么如果铃音是歌曲,这种业务的主题就有铃音名称、铃音的演唱者,可能还会有歌词片段信息。
现有技术一的缺点是1)交互次过多,用户体验不好;2)对用户搜索主题要求太严,如音乐搜索仅提供歌手就可以进行;3)系统部署复杂,对维护人员要求太高;4)系统容错功能不足。
二、自然语言分词搜索这种方法以搜索技术为主导,对用户的搜索输入进行语义分析,配合词性标注,找出对搜索引擎有意义的关键词。然后再对业务数据的索引文件进行检索。
如在音乐搜索中输入“美丽的草园我的家”,那么这处搜索方案就会用“美丽”、“草园”和“家”来进行搜索。结果可想而知,导致用户体验很差。
现有技术二的缺点是1)没有理解用户的语义;2)准确性低。
综上所述,现有技术中还没有一种自然语言的搜索方法能准确、方便地搜索出结果。而且还没有容错机制,一旦用户输入错误,将无法提供结果。
发明内容
有鉴于此,本发明的主要目的是提供一种自然语言的搜索方法及系统,用以解决现有技术中对自然语言的搜索结果不准确的问题。
本发明提供的一种自然语言的搜索方法包括A.为一业务设定自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;B.针对自然语言搜索输入的语句,利用自然语言模板对应的正则表达式对所述语句进行匹配过滤,得到元数据;C.利用元数据搜索业务数据库得到输出的业务信息。
步骤A中所述每个自然语言模板包括头尾模板和主体模板,并且所述正则表达式包括两部分,每个头尾模板和主体模板分别对应所述正则表达式中的一部分。
步骤B包括B11、选择一个头尾模板,利用该头尾模板对应的正则表达式以及头尾模板对所述语句进行匹配过滤,如果匹配过滤成功,得到该语句的主体内容,执行步骤B13,否则,执行步骤B12;B12、判断头尾模板是否全部匹配完毕,如果没有,则执行步骤B11,否则,结束本流程;B13、选择一个主体模板,利用每个主体模板对应的正则表达式、主体模板对所述主体内容进行匹配过滤,如果匹配过滤成功,过滤后的数据为元数据,执行步骤C,否则,执行步骤B14;B14、判断主体模板是否全部匹配完毕,如果没有,则执行步骤B13,否则,结束本流程。
步骤B包括B20、将所述语句作为关键词查找业务数据库,判断是否查找到,如果是,则执行步骤C,否则,执行步骤B21;B21、利用预先配置的头尾模板对将该语句进行匹配过滤,如果匹配成功,则执行步骤B22,否则,执行步骤B23;B22、将过滤后得到的主体语句作为关键词查找业务数据库,判断是否查找到,如果是,则执行步骤C,否则,执行步骤B23;B23、利用预先配置的主体模板对主体语句进行匹配过滤,如果匹配成功,则执行步骤C,否则,对该语句进行精确查找,结束本流程。
步骤B11中头尾模板是从没有使用的头尾模板中随机选择或按优先级信息选择;步骤B13中主体模板是从没有使用的主体模板中随机选择或按优先级信息选择。
所述优先级是按照字符长度来设置的,字符长的优先级高。
该方法进一步包括预先设置容错语句,则步骤C包括判断业务数据库中是否含有元数据对应的业务信息,如果有直接获得该业务信息,否则,利用容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据库,得到输出的业务信息。
所述容错语句是根据拼音或语义设置;或所述容错语句是根据拼音以及容错前后的相关度对比来确定。
所述容错语句的个数为一个或一个以上。
当容错语句的个数为一个以上时,步骤C中是随机选择一个容错语句对元数据进行容错;当容错语句的个数为一个以上时,步骤C中是利用一个以上容错语句进行容错,并输出每个容错后的元数据对应的业务数据。
本发明提供的一种自然语言的搜索系统包括自然语言过滤装置,用于保存元数据对应的业务信息,保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;利用自然语言模板对应的正则表达式对来自自然语言收发装置的语句进行匹配过滤得到元数据,并将元数据对应的业务信息输出给自然语言收发装置;自然语言收发装置,用于将外部节点设备的语句发送给自然语言过滤装置,将来自自然语言过滤装置的业务信息向外部节点设备输出。
所述自然语言过滤装置包括自然语言模板存储装置,用于保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;业务数据存储装置,用于保存元数据对应的业务信息;
自然语言匹配控制装置,用于获取自然语言模板存储装置中的自然语言模板对应的正则表达式,对来自自然语言收发装置的语句进行匹配过滤得到元数据,并将元数据搜索业务数据存储装置得到的业务信息输出给自然语言收发装置。
所述自然语言匹配控制装置中还包括自然语言匹配单元,用于获取自然语言模板存储装置中的自然语言模板对应的正则表达式,对来自自然语言收发装置的语句进行匹配过滤得到元数据,并将元数据输出给容错装置;容错装置,用于查找业务数据存储装置中是否含有元数据对应的业务信息,如果有,直接将该业务信息输出给自然语言收发装置,否则,利用自身保存的容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据存储装置得到对应的业务信息,再将该业务信息输出给自然语言收发装置。
本发明针对具体搜索业务,采用语言模板的方式来模式匹配自然语言,并且采用汉字拼音和相关度容错以及同义容错的方法,得到元数据,从而提供正确的搜索结果。
基于上述本发明的技术方案,本发明具有如下优点和特点1)使搜索系统能够识别用户自然语言的输入;2)搜索系统具有了容错、联想功能;3)搜索系统具有对于自然语言学习的能力。
图1为现有技术中基于主题森林的应答推理的应用实例示意图;图2为实现本发明方法的流程示意图;图3为本发明中利用自然语言模板以及其对应的正则表达式对所述语句进行匹配过滤得到元数据的具体流程示意图;图4为本发明应用在彩铃自然语言搜索的实施例流程示意图;
图5为实现本发明系统的结构示意图;图6头尾模板单元的示意图;图7为主体模板单元的示意图;图8为铃音容错装置的示意图;图9为歌手“同义”容错装置示意图。
具体实施例方式
本发明针对具体搜索业务,采用自然语言模板以及该模板对应的正则表达式来匹配自然语言搜索输入的语句,从而找出元数据。元数据是指与某一类业务相关的基础数据信息,如音乐下载业务中的音乐的名称,演唱者就是描述音乐的元数据。正则表达式是描述一个字符串集合的模式或模板。这个模式决定了什么样的字符串属于这个集合,它由文本字符和元字符组成。元字符即为有特殊含义的字符。
参见图2所示,实现本发明的方法包括以下步骤步骤201为一业务设定自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式。
如彩铃搜索引擎中的自然语言模板单元包括头尾模板单元和主体模板单元。每个头尾模板单元包括多个头尾模板,主体模板单元包括多个主体模板单元。其中,头尾模板与主体模板可随意组合,从而识别更多的自然语言搜索输入。头尾模板单元和主体模板单元如图6和图7所示。
如果搜索输入的语句为“我想把刘德华唱的忘情水设置为彩铃”。对应的模板为“我想把……设置为彩铃”和“*唱的#”。其中,前者为头尾模板,后者为主体模板,特殊符号“*”和“#”分别代表铃音音乐的歌手和歌曲名。自然语言模板对应的正则表达式为“^头+([\\s\\S]+)+体$”。
步骤202针对自然语言搜索输入的语句,利用自然语言模板对应的正则表达式对所述语句进行匹配过滤,得到元数据。
步骤203利用元数据搜索业务数据库得到输出的业务信息。
自然语言模板可以包括头尾模板和主体模板,所述正则表达式包括两部分,并且分别头尾模板和主体模板分别对应正则表达式的一部分。利用正则表达式就可以将模式匹配上的自然语言搜索输入的头和尾去掉,然后再对主体部分进行主体模板的模式匹配。对于匹配次数较多的模板,系统为有一个自动优化的过程,从而依据统计规律提高搜索性能。
参见图3所示,步骤202中得到元数据的具体过程如下步骤301选择一个头尾模板,利用该头尾模板对应的正则表达式对所述语句进行匹配过滤,如果匹配过滤成功,得到该语句的主体内容,执行步骤303,否则,执行步骤302。
步骤302判断头尾模板是否全部匹配完毕,如果没有,则执行步骤301否则,结束本流程。这里,可以从没有使用的头尾模板中随机选择或按优先级信息选择头尾模板。并且,可以按照字符长度来设置优先级,字符长的优先级高。
步骤303选择一个主体模板,利用每个主体模板对应的正则表达式、对所述主体内容进行匹配过滤,如果匹配过滤成功,过滤后的数据为元数据,否则,执行步骤304。这里,可以从没有使用的主体模板中随机选择或按优先级信息选择主体模板。
步骤304判断主体模板是否全部匹配完毕,如果没有,则执行步骤303,否则,结束本流程。
从上述过程可以看出,在对主体进行模式识别的过程中,系统会将“主体内容”、“主体模板”和“主体模板对应正则表达式”三者结合起来,准确分析出其中的元数据。
例如主体内容=张惠妹和张雨生的最爱的人伤我最深主体模板=*和*的#
则系统会找出歌手为张惠妹、张雨生;歌曲名为《最爱的人伤我最深》,而不会出现歌手为张惠姝和张雨生的最爱;歌曲名为《人伤我最深》。
另外,主体模板在进行模式匹配的过程中,要遵循模板先长后短的原则。例如“*唱的#*”要在“*的#”之前进行匹配,否则解析出来的元数据不准确。
为了提高用户可用度,本发明还提供了一种容错机制。这需要预先设置容错语句,在步骤203中进行搜索时,需要首先判断业务数据库中是否含有元数据对应的业务信息,如果有直接获得该业务信息,否则,利用容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据库,得到输出的业务信息。
当然,容错语句可以根据很多容错机制设置,比如拼音、语义或两者的结合等,也可以是根据拼音以及容错前后的相关度对比来确定。容错语句的个数不限,可以为一个,也可以为多个。
当容错语句的个数为一个以上时,在步骤203进行搜索时,可以随机选择一个容错语句对元数据进行容错,也可以利用多个容错语句进行容错,并输出每个容错后的元数据对应的业务数据。
图8为针对铃音名的拼音容错示意。例如,用户自然语言搜索输入为“我想找《红都》”,其实用户要找的是《红豆》,而业务数据中却只有《红豆(月圆问候版)》。此时,容错机制会将铃音名元数据“红都”容错到“红豆”,同时,系统在运营初期会将业务数据将一定过滤策略生成“红豆(月圆问候版)”的真实数据“红豆”。在接下来的关键词查找中就可以找到用户想要的东西了。
拼音容错过程中,还需要配合容错前后的相关度对比来确定容错结果。如由于多音字问题,《红都》的拼音为HONG_DU、HONG_DOU。假如有另一首歌叫《哄逗》,其拼音为HONG_DOU,现在的拼音容错后,会用另外算法来计算“红豆”与“红都”和“哄逗”的相关度,然后返回最有可能的结果。
在“彩铃搜索引擎”应用中有针对业务数据“歌手”存在另外一种容错,即同义容错,参见图9所示,这种容错方式也就是指用户使用歌手的艺名、所在组合名等其它名称进行搜索,因此系统通过预先配置部分歌手的别名信息就可以很好地解决此问题。
另外,系统还会记录下“陌生语言”,供模板维护和优化参考。通过此方案可以识别绝大多数搜索请求,同时对剩下的请求系统会有引导性的提示。
下面以彩铃自然语言搜索为例对本发明技术方案作进一步阐述。
本实施例是针对特定的业务,通过丰富的自然语言模板实现搜索自然语言的匹配,从而定位其中关键词;通过中文拼音对应表来自动处理关键词的拼音标注,实现同音容错;通过维护同义词库来实现同义匹配,以及同义词的同音匹配。
参见图4所示,本实施例实现彩铃自然语言搜索的具体过程为步骤401~402接收需要搜索输入的语句,将所述语句作为关键词查找业务数据库,判断是否查找到,如果是,则结束本流程,否则,执行步骤403。
步骤403利用预先配置的头尾模板对将该语句进行匹配过滤,如果匹配成功,则执行步骤404,否则,执行步骤405。
步骤404将过滤后得到的主体语句作为关键词查找业务数据库,判断是否查找到,如果是,则结束本流程,否则,执行步骤405。
步骤405利用预先配置的主体模板对将主体语句进行匹配过滤,如果匹配成功,则执行步骤406,否则,执行步骤408。
步骤406判断是否排行,如果是,则取排行铃音,结束本流程,否则,执行步骤407。
步骤407判断是否需要精确查找,如果需要,则结束本流程,否则,执行步骤408。
步骤408判断是否需要全文搜索,如果需要,则结束本流程,否则,推荐铃音。
参见图5所示,本发明的一种自然语言搜索系统包括自然语言过滤装置51和自然语言收发装置52。
自然语言过滤装置51,用于保存元数据对应的业务信息,保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;利用自然语言模板对应的正则表达式对来自自然语言收发装置52的语句进行匹配过滤得到元数据,并将元数据对应的业务信息输出给自然语言收发装置52。
自然语言收发装置52,用于将外部节点设备的语句发送给所述自然语言过滤装置,将来自自然语言过滤装置的业务数据向外部节点设备输出。
所述自然语言过滤装置51可以包括自然语言模板存储装置511、业务数据存储装置512以及自然语言匹配控制装置513。
自然语言模板存储装置511,用于保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;业务数据存储装置512,用于保存元数据对应的业务信息;自然语言匹配控制装置513,用于获取自然语言模板存储装置511中的自然语言模板对应的正则表达式,对来自自然语言收发装置52的语句进行匹配过滤得到元数据,并将元数据搜索业务数据存储装置512得到的业务信息输出给自然语言收发装置52。
自然语言匹配控制装置513中可以包括自然语言匹配单元5131和容错装置5132。
自然语言匹配单元5131,用于获取自然语言模板存储装置511中的自然语言模板对应的正则表达式,对来自自然语言收发装置52的语句进行匹配过滤得到元数据,并将元数据输出给容错装置5132。
容错装置5132,用于查找业务数据存储装置512中是否含有元数据对应的业务信息,如果有,直接将该业务信息输出给自然语言收发装置52,否则,利用自身保存的容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据存储装置512得到对应的业务信息,再将该业务信息输出给自然语言收发装置52。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种自然语言的搜索方法,其特征在于,该方法包括以下步骤A.为一业务设定自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;B.针对自然语言搜索输入的语句,利用自然语言模板对应的正则表达式对所述语句进行匹配过滤,得到元数据;C.利用元数据搜索业务数据库得到输出的业务信息。
2.根据权利要求1所述的方法,其特征在于,步骤A中所述每个自然语言模板包括头尾模板和主体模板,并且所述正则表达式包括两部分,每个头尾模板和主体模板分别对应所述正则表达式中的一部分。
3.根据权利要求2所述的方法,其特征在于,步骤B包括B11、选择一个头尾模板,利用该头尾模板对应的正则表达式以及头尾模板对所述语句进行匹配过滤,如果匹配过滤成功,得到该语句的主体内容,执行步骤B13,否则,执行步骤B12;B12、判断头尾模板是否全部匹配完毕,如果没有,则执行步骤B11,否则,结束本流程;B13、选择一个主体模板,利用每个主体模板对应的正则表达式、主体模板对所述主体内容进行匹配过滤,如果匹配过滤成功,过滤后的数据为元数据,执行步骤C,否则,执行步骤B14;B14、判断主体模板是否全部匹配完毕,如果没有,则执行步骤B13,否则,结束本流程。
4.根据权利要求2所述的方法,其特征在于,步骤B包括B20、将所述语句作为关键词查找业务数据库,判断是否查找到,如果是,则执行步骤C,否则,执行步骤B21;B21、利用预先配置的头尾模板对将该语句进行匹配过滤,如果匹配成功,则执行步骤B22,否则,将该语句作为主体语句,执行步骤B23;B22、将过滤后得到的主体语句作为关键词查找业务数据库,判断是否查找到,如果是,则执行步骤C,否则,执行步骤B23;B23、利用预先配置的主体模板对主体语句进行匹配过滤,如果匹配成功,则执行步骤C,否则,对该语句进行精确查找,结束本流程。
5.根据权利要求3所述的方法,其特征在于,步骤B11中头尾模板是从没有使用的头尾模板中随机选择或按优先级信息选择;步骤B13中主体模板是从没有使用的主体模板中随机选择或按优先级信息选择。
6.根据权利要求5所述的方法,其特征在于,所述优先级是按照字符长度来设置的,字符长的优先级高。
7.根据权利要求1所述的方法,其特征在于,该方法进一步包括预先设置容错语句,则步骤C包括判断业务数据库中是否含有元数据对应的业务信息,如果有直接获得该业务信息,否则,利用容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据库,得到输出的业务信息。
8.根据权利要求7所述的方法,其特征在于,所述容错语句是根据拼音或语义设置。
9.根据权利要求7所述的方法,其特征在于,所述容错语句是根据拼音以及容错前后的相关度对比来确定。
10.根据权利要求7所述的方法,其特征在于,所述容错语句的个数为一个或一个以上。
11.根据权利要求10所述的方法,其特征在于,当容错语句的个数为一个以上时,步骤C中是随机选择一个容错语句对元数据进行容错;当容错语句的个数为一个以上时,步骤C中是利用一个以上容错语句进行容错,并输出每个容错后的元数据对应的业务数据。
12.一种自然语言的搜索系统,其特征在于,该系统包括自然语言过滤装置(51),用于保存元数据对应的业务信息,保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;利用自然语言模板对应的正则表达式对来自自然语言收发装置(52)的语句进行匹配过滤得到元数据,并将元数据对应的业务信息输出给自然语言收发装置(52);自然语言收发装置(52),用于将外部节点设备的语句发送给自然语言过滤装置(51),将来自自然语言过滤装置(51)的业务信息向外部节点设备输出。
13.根据权利要求12所述的系统,其特征在于,所述自然语言过滤装置(51)包括自然语言模板存储装置(511),用于保存业务的自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;业务数据存储装置(512),用于保存元数据对应的业务信息;自然语言匹配控制装置(513),用于获取自然语言模板存储装置(511)中的自然语言模板对应的正则表达式,对来自自然语言收发装置(52)的语句进行匹配过滤得到元数据,并将元数据搜索业务数据存储装置(512)得到的业务信息输出给自然语言收发装置(52)。
14.根据权利要求13所述的系统,其特征在于,所述自然语言匹配控制装置(513)中还包括自然语言匹配单元(5131),用于获取自然语言模板存储装置(511)中的自然语言模板对应的正则表达式,对来自自然语言收发装置(52)的语句进行匹配过滤得到元数据,并将元数据输出给容错装置(5132);容错装置(5132),用于查找业务数据存储装置(512)中是否含有元数据对应的业务信息,如果有,直接将该业务信息输出给自然语言收发装置(52),否则,利用自身保存的容错语句对元数据进行容错,并利用容错后的元数据搜索业务数据存储装置(512)得到对应的业务信息,再将该业务信息输出给自然语言收发装置(52)。
全文摘要
本发明公开了一种自然语言的搜索方法,该方法为为一业务设定自然语言模板单元,所述自然语言模板单元包括一个以上自然语言模板,每个自然语言模板对应一个正则表达式;针对自然语言搜索输入的语句,利用自然语言模板以及其对应的正则表达式对所述语句进行匹配过滤,得到元数据;利用元数据搜索业务数据库得到输出的业务信息。同时,本发明还公开了一种自然语言的搜索系统。应用本发明,能够识别用户自然语言的输入,具有了容错、联想功能,而且具有对于自然语言学习的能力。
文档编号H04M3/42GK1908935SQ20061010409
公开日2007年2月7日 申请日期2006年8月1日 优先权日2006年8月1日
发明者张涛 申请人:华为技术有限公司