首页> 中国专利> 歌曲搜索方法、装置、网络设备及存储介质

歌曲搜索方法、装置、网络设备及存储介质

摘要

本发明实施方式涉及通信技术领域,公开了一种歌曲搜索方法,包括:若搜索关键字的长度大于预设长度,则根据所述搜索关键字构造若干个长度不同且长度大于或等于所述预设长度的第一关键字子串;将每一所述第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。本发明实施方式还公开了一种歌曲搜索装置、网络设备及存储介质。本发明实施方式提供的歌曲搜索方法、装置、网络设备及存储介质,可以提高通过输入的歌词内容来搜索歌曲的搜索准确率。

著录项

  • 公开/公告号CN112182283A

    专利类型发明专利

  • 公开/公告日2021-01-05

    原文格式PDF

  • 申请/专利号CN202010995595.4

  • 发明设计人 赵玉申;李琳;张晓颖;

    申请日2020-09-21

  • 分类号G06F16/68(20190101);

  • 代理机构31260 上海晨皓知识产权代理事务所(普通合伙);

  • 代理人成丽杰

  • 地址 100088 北京市西城区德胜门外大街11号5幢400室(德胜园区)

  • 入库时间 2023-06-19 09:26:02

说明书

技术领域

本发明涉及通信技术领域,特别涉及一种歌曲搜索方法、装置、网络设备及存储介质。

背景技术

听歌曲能使人心情愉悦,是越来越多的现代人特别是年轻人所喜爱的一种活动。在听歌曲之前,首先要找到期望听取的歌曲,可以通过歌曲名、歌手名、专辑名等多种维度进行定位。通过输入歌词内容作为搜索关键字来搜索歌曲也是一种重要检索手段,特别是在不清楚歌曲的歌曲名或歌手等信息的情况下。

目前,通过输入的歌词内容来搜索歌曲主要通过对输入的搜索关键字进行分词,根据分词结果获取歌词对应的索引信息,计算分词结果与歌词的匹配程度来筛选并排序,获得最终的搜索结果。

然而,发明人发现现有技术至少存在以下问题:目前通过输入的歌词内容来搜索歌曲的方法,其结果的准确性是以输入的搜索关键字完全符合歌词内容为前提的,这样才能保证分词结果是准确的,进而搜索到准确的歌曲。然而,用户输入的搜索关键字往往存在错字、缺字、多字或字的顺序颠倒等情况,导致分词结果与搜索关键字正确时的分词结果有明显差异,例如,关键字“子弹在我心头上了膛”使用ANSJ的分词结果为:["子弹"、"在"、"我心"、"头上"、"了"、"膛"],若关键字变为“子弹在我心头中了膛”,其虽然只有一个字的变化,但是此时分词结果变为:["子弹"、"在"、"我"、"心头"、"中"、"了"、"膛"],这些情况下容易导致误命中其他歌曲,使得歌曲搜索的准确率较低。

发明内容

本发明实施方式的目的在于提供一种歌曲搜索方法、装置、网络设备及存储介质,使得通过输入的歌词内容来搜索歌曲的搜索准确率提高。

为解决上述技术问题,本发明的实施方式提供了一种歌曲搜索方法,包括:若搜索关键字的长度大于预设长度,则根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串;将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

本发明的实施方式还提供了一种歌曲搜索装置,包括:构造模块,用于在搜索关键字的长度大于预设长度时,根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串;搜索模块,用于将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

本发明的实施方式还提供了一种网络设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的歌曲搜索方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的歌曲搜索方法。

本发明实施方式相对于现有技术而言,通过根据搜索关键字构造多个关键字子串,根据关键字子串来搜索歌曲,可以使搜索的结果不受搜索关键字的分词结果的影响;并且,即使搜索关键字中存在错字、少字、多字或字的顺序颠倒等情况,亦可以通过部分准确的第一关键字子串获取准确的搜索结果,从而使得通过输入的歌词内容来搜索歌曲的搜索准确率提高。

另外,在将每一第一关键字子串与每一歌曲的歌词进行匹配之前,还包括:确定每一第一关键字子串的权重;将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果,包括:将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果。

另外,确定每一第一关键字子串的权重,包括:根据每一第一关键字子串的长度和每一第一关键字子串在搜索关键字中的位置中的至少一个,确定每一第一关键字子串的权重。在确定第一关键字子串的权重时,结合第一关键字子串的长度和第一关键字子串在搜索关键字中的位置中的至少一个来确定,可以使正确歌曲的排序靠前,从而提高歌曲搜索的准确性。

另外,根据每一第一关键字子串在搜索关键字中的位置、确定每一第一关键字子串的权重,包括:若第一关键字子串处于搜索关键字的开头位置或结尾位置,则确定第一关键字子串的权重为第一权重;若第一关键字子串处于搜索关键字中除开头位置和结尾位置以外的位置,则确定第一关键字子串的权重为第二权重,第一权重为第二权重的n倍,n大于1。根据搜索关键字的开头部分或结尾部分较为准确的特点,将处于搜索关键字的开头位置或结尾位置的第一关键字子串设置较高的权重,而将处于搜索关键字的其它位置的第一关键字子串设置较低的权重,使正确的歌曲在搜索时排序靠前,从而更容易返回正确的歌曲,提高了歌曲搜索的准确率。

另外,在根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串之后,还包括:生成与每一第二关键字子串编辑距离为预设距离的容错子串,第二关键字子串为长度大于预设长度的第一关键字子串;根据每一第二关键字子串的权重确定与第二关键字子串对应的容错子串的权重;将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果,包括:将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果、第一关键字子串的权重和容错子串的权重返回歌曲的搜索结果。由于容错子串可以在搜索关键字存在错字、少字、多字等情况下仍然能匹配到歌曲,因此结合容错子串进行匹配,可以有效地提高歌曲搜索的成功率;同时,根据第二关键字子串确定容错子串的权重,通过合理设置容错子串的权重,可以使正确的歌曲在搜索时排序靠前,更容易返回正确的歌曲搜索结果,从而提高歌曲搜索的准确率。

另外,在根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串之后,还包括:生成与每一第三关键字子串编辑距离为预设距离的容错子串,第三关键字子串为长度大于预设长度的第一关键字子串;将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果,包括:将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。由于容错子串可以在搜索关键字存在错字、少字、多字等情况下仍然能匹配到歌曲,因此结合容错子串进行匹配,可以有效地提高歌曲搜索的成功率。

另外,根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串,包括:

执行第一循环过程直至起点为所述搜索关键字右侧最后一个汉字或外文单词,所述第一循环过程为:将第一初始起点作为当前起点,或将前一次起点右侧的下一个汉字或外文单词作为当前起点,向右截取长度不同的子字串作为所述第一关键字子串,其中,第一初始起点为所述搜索关键字左侧第一个汉字或外文单词;或,执行第二循环过程直到起点为所述搜索关键字左侧最后一个汉字或外文单词,所述第二循环过程为:将第二初始起点作为当前起点,或将前一次起点左侧的下一个汉字或外文单词作为当前起点,向左截取长度不同的子字串作为所述第一关键字子串,其中,第二初始起点为所述搜索关键字右侧第一个汉字或外文单词。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是本发明第一实施方式提供的歌曲搜索方法的流程示意图;

图2是本发明第一实施方式提供的歌曲搜索方法的具体示例图;

图3是本发明第二实施方式提供的歌曲搜索方法的流程示意图;

图4是本发明第三实施方式提供的歌曲搜索方法的流程示意图;

图5是本发明第四实施方式提供的歌曲搜索方法的流程示意图;

图6是本发明第四实施方式提供的歌曲搜索方法具体处理过程的示例图;

图7是本发明第五实施方式提供的歌曲搜索装置的模块结构示意图;

图8是本发明第六实施方式提供的网络设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种歌曲搜索方法,在搜索关键字的长度大于预设长度时,根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串;将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。通过根据搜索关键字构造多个关键字子串,根据关键字子串来搜索歌曲,可以使搜索的结果不受分词结果的影响;并且,即使搜索关键字中存在错字、少字、多字等情况,亦可以通过部分准确的关键字子串获得准确的搜索结果,从而提高了搜索的准确率。

应当说明的是,本发明实施方式提供的歌曲搜索方法的执行主体可以为服务端,其中,服务端可由单独的服务器或多个服务器组成的集群来实现,以下以服务端为例进行说明。

本发明实施方式提供的歌曲搜索方法的具体流程如图1所示,具体包括以下步骤:

S101:若搜索关键字的长度大于预设长度,则根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串。

其中,搜索关键字是指用户输入的用于搜索歌曲的信息内容,例如是“大河向东流”等。搜索关键字的语言可以为汉字、英语、日语等,语言的形式此处不做具体限制。

预设长度可以根据实际需要进行设置,例如是6个汉字或4个英文单词对应的长度等。由于中文的成语为4个汉字组成,当搜索关键字少于5个汉字时,搜索的范围会变得很大,也容易匹配到其它不相关的歌曲,影响歌曲搜索的准确率,因此,优选地,预设长度为4个汉字对应的长度;而对于英文而言,由于连续2个英文单词相同的情况很多,当搜索关键字少于3个英文单词时,搜索的范围会变得很大,也容易匹配到其它不相关的歌曲,影响歌曲搜索的准确率,因此,优选地,预设长度为3个英文单词对应的长度。以上仅是以中文、英文为例进行说明,当搜索关键字为其它种语言时,也可以进行类似的设置。

可以理解的是,当搜索关键字的长度小于或等于预设长度时,一方面搜索的范围较大,另一方面,搜索关键字出现错字、少字、多字或字的顺序颠倒等情况的概率较低,因此,在搜索关键字的长度大于预设长度时,才构造第一关键字子串进行匹配较为合理。

可选地,当搜索关键字的长度小于或等于预设长度时,服务端可直接根据搜索关键字进行歌曲的搜索。当然,当搜索关键字的长度大于预设长度时,服务端除了使用第一关键字子串进行歌曲的搜索外,还可以结合搜索关键字本身进行歌曲的搜索。

由于用户输入的内容可能包括空格、不可见字符或标点符号等,因此,可选地,服务端可以对用户输入的内容进行预处理,去除这些空格、不可见字符或标点符号等,再将进行预处理后的内容作为搜索关键字。

在根据搜索关键字构造第一关键字子串时,只要根据搜索关键构造出若干个长度不同且长度大于或等于预设长度的第一关键字子串即可,具体使用的构造方法、第一关键字子串的个数和第一关键字子串的具体长度可以根据实际需要进行设置,此处不做具体限制。应当说明的是,第一关键字子串应与搜索关键字不同,即第一关键字子串的最大长度应小于搜索关键字的长度。

在一个具体的例子中,根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串,具体可以包括:

执行第一循环过程直至起点为所述搜索关键字右侧最后一个汉字或外文单词,所述第一循环过程为:将第一初始起点作为当前起点,或将前一次起点右侧的下一个汉字或外文单词作为当前起点,向右截取长度不同的子字串作为所述第一关键字子串,其中,第一初始起点为所述搜索关键字左侧第一个汉字或外文单词;或,执行第二循环过程直到起点为所述搜索关键字左侧最后一个汉字或外文单词,所述第二循环过程为:将第二初始起点作为当前起点,或将前一次起点左侧的下一个汉字或外文单词作为当前起点,向左截取长度不同的子字串作为所述第一关键字子串,其中,第二初始起点为所述搜索关键字右侧第一个汉字或外文单词。

其中,外文单词是相对于汉字而言的,可包括英文、日文、法文等外文的单词。

例如,若搜索关键字为“我知道我的未来不是梦”,则可以是首先从左侧第一个字为起点,截取长度不同的子字串,例如是“我知道我的未来不是”、“我知道我的未来”、“我知道我的未”……等,然后从第2个字为起点截取长度不同的子字串,例如是“知道我的未来不是”、“知道我的未来不”、“知道我的未来”……等,再以第3个字为起点……直到最后截取的子字串为“来不是梦”(即以第6个字“未”为起点,以最后一个字“梦”为终点截取),将这些截取的子字串作为第一关键字子串。向左截取的方法跟上述类似,这里不再赘述。

可选地,第一初始起点也可以为左侧的第i个汉字或英文单词,第二初始起点也可以为右侧的第i个汉字或英文单词,其中,i为正整数且小于或等于N,N为搜索关键字的总字数。

应当理解的是,截取的子字串的长度此处不做具体限制,但为了使搜索的范围最大化,截取子字串时应按一个字的间隔进行截取,例如,在截取完“我知道我的未来不是”子字串之后,应该截取“我知道我的未来不”的子字串,使两个子字串的间隔相差一个字。

同样应当说明的是,以上仅以汉字或英文单词为例进行说明,当搜索关键字为其它语言时,也可以进行类似的操作。

S102:将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

其中,歌曲的搜索结果可以包括歌曲名、歌词或歌词的链接等,具体可以根据实际需要进行设置,这里不做具体限制。并且,歌曲的搜索结果也可以为两个或以上,由用户自行确定期望搜索的歌曲。

可选地,在将第一关键字子串与每一歌曲的歌词进行匹配前,可以先对每一歌曲的歌词创建歌词的索引,例如,可以用solr的Standard Tokenizer创建出歌词的单字索引,这样,在进行歌词的匹配后,就可以根据匹配的结果返回歌曲和相应的歌词。

在根据匹配的结果返回歌曲的搜索结果时,可选地,当匹配命中多首歌曲时,可根据匹配的结果进行评分,按照评分的高低返回搜索结果,具体评分的规则可以根据实际需要进行设置,这里不做限制。

可以理解的是,通过第一关键字子串进行歌词的匹配,即使搜索关键字中存在错字、少字、多字等情况,但是由于第一关键字子串很大程度上会包括正确的歌词部分,因此仍然可以根据部分正确的第一关键字子串搜索到正确的歌曲。例如,正确的歌词内容为“我知道我的未来不是梦”,若搜索关键字为“我知道未来不是梦”,由于第一关键字子串包括“未来不是梦”这一正确的歌词部分,因此仍然可以根据“未来不是梦”这一第一关键字子串匹配到正确的歌曲。

请参考图2,其为本发明实施方式提供的歌曲搜索方法的一具体示例图。具体的流程如下:1、对歌曲的歌词内容进行预处理,导入solr工具,生成歌词内容的单字索引;2、接收用户的歌词搜索请求,对用户输入的搜索内容进行预处理,获取搜索关键字;3、通过搜索关键字的长度进行判断,判断是否需要构造关键字子串,若判断的结果为不需要构建关键字子串,则进入4,若判断的结果为需要构建关键字子串,则进入5;4、根据搜索关键字本身生成查询请求,进入7;5、根据搜索关键字构造关键字子串;6、根据搜索关键字和构造的关键字子串生成查询请求;7、根据solr的匹配结果获取最终的查询结果,例如可以根据匹配的结果进行评分,将评分最高的歌曲以及歌词等作为最终的查询结果。

与现有技术相比,本发明实施方式提供的歌曲搜索方法,通过根据搜索关键字构造多个关键字子串,根据关键字子串来搜索歌曲,可以使搜索的结果不受搜索关键字的分词结果的影响;并且,即使搜索关键字中存在错字、少字、多字或字的顺序颠倒等情况,亦可以通过部分准确的第一关键字子串获取准确的搜索结果,从而使得通过输入的歌词内容来搜索歌曲的准确率提高。

本发明的第二实施方式涉及一种歌曲搜索方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在构造第一关键字子串后,还根据第一关键字子串在搜索关键字中的位置确定第一关键字子串的权重;在返回歌曲的搜索结果时,根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果。

本发明实施方式提供的歌曲搜索方法的具体流程如图3所示,具体包括以下步骤:

S201:若搜索关键字的长度大于预设长度,则根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串。

S202:判断第一关键字子串是否处于搜索关键字的开头位置或结尾位置,若第一关键字子串处于搜索关键字的开头位置或结尾位置,则进入S203;若第一关键字子串处于搜索关键字中除开头位置和结尾位置以外的位置,则进入S204。

S203:确定第一关键字子串的权重为第一权重。

S204:确定第一关键字子串的权重为第二权重,第一权重是第二权重的n倍,n大于1。

S205:将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果。

其中,S201与第一实施方式中的S101相同,具体参见第一实施方式中的相关描述,这里不再赘述。

对于S202-S205,详细说明如下:

第一关键字子串处于搜索关键字的开头位置或结尾位置是指第一关键字子串包括搜索关键字的开头部分或结尾部分,可选地,搜索关键字的开头部分可以指搜索关键字的开头的第一个字,搜索关键字的结尾部分可以指搜索关键字的结尾的第一个字。例如,若搜索关键字为“我知道我的未来不是梦”,则处于搜索关键字的开头位置的第一关键字子串为带有开头第一个字“我”的第一关键字子串,例如“我知道我的未来”、“我知道我的”等;处于搜索关键的结尾位置的第一关键字子串为带有结尾第一个字“梦”的第一关键字子串,例如“的未来不是梦”、“未来不是梦”等。

由于用户在输入歌词的搜索内容时,一般情况下对开头位置和结尾位置的记忆是较为准确的,因此将处于搜索关键字的开头位置或结尾位置的第一关键字子串的权重设置为其它位置的第一关键字子串的权重的n倍,可以有效地利用开头位置和结尾位置较为准确这一规律,使正确的歌曲根据权重的得分更高,从而更容易返回准确的歌曲搜索结果,提高歌曲搜索的准确性。

为了使处于搜索关键字的开头位置或结尾位置的第一关键字子串的权重(第一权重)、明显有别于处于搜索关键字的其它位置的第一关键字子串的权重(第二权重),可以使n的取值较大,可选地,n大于等于10。应当说明的是,n也可以为小数,例如10.5,具体取值可以根据实际需要进行设置,这里不做限制。

可以理解的是,以上是将处于搜索关键字的开头位置和结尾位置的第一关键字子串均设置为第一权重。但实际上,也可以只将处于搜索关键字的开头位置的第一关键字子串设置为第一权重,或者只将处于搜索关键字的结尾位置的第一关键字子串设置为第一权重;然而,由于开头位置或结尾位置也有可能出错,而开头位置和结尾位置同时出错的概率极低,因此,为了有效发挥处于搜索关键字的开头位置和结尾位置的第一关键字子串的较为准确的优势,将处于搜索关键字的开头位置和结尾位置的第一关键字子串均设置为第一权重是比较好的一种设置方式。

在根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果时,可选地,若第一关键字子串与某一歌曲的歌词匹配成功,则将第一关键字子串的权重作为该歌曲的得分;在所有第一关键字子串均匹配完之后,根据歌曲的得分从高到低进行排序,再根据排序的结果返回歌曲的搜索结果。

在一个具体的例子中,在确定每一第一关键字子串的权重时,还可以是:

根据每一第一关键字子串的长度和每一第一关键字子串在搜索关键字中的位置中的至少一个,确定每一第一关键字子串的权重。

可选地,服务端在根据第一关键字子串的长度确定每一第一关键字子串的权重时,可以将第一关键字子串的权重设置为与第一关键字子串的长度正相关函数。具体地,可以直接将第一关键字子串的长度作为权重,例如第一关键字子串“我知道我的”为5个字的长度,则可以确定其权重为5;也可以是每增加一个字的权重比未增加字之前的权重2倍,例如,第一关键字子串“我知道我的”(5个字)的权重为5,第一关键子串“我知道我的未”(6个字)的权重为5*2=10等,正相关函数具体可以根据实际需要进行设置,这里不做具体限制。

可选地,服务端可以根据第一关键字子串的长度确定一个子权重,并根据第一关键字子串在搜索关键键字中的位置确定另一个子权重,将两个子权重作运算后(例如相乘),将运算后的结果作为第一关键字子串的权重。

可以理解的是,若第一关键字子串的长度越短,越容易匹配到歌曲,匹配的歌曲往往较多,但匹配的歌曲的准确率较低;若第一关键字子串的长度越长,越难匹配到歌曲,但匹配的歌曲的准确率较高,因此,在确定第一关键字子串的权重时,结合第一关键字子串的长度来确定,可以使正确歌曲的排序靠前,从而提高歌曲搜索的准确性。

与现有技术相比,本发明实施方式提供的歌曲搜索方法,根据搜索关键字的开头部分或结尾部分较为准确的特点,将处于搜索关键字的开头位置或结尾位置的第一关键字子串设置较高的权重,而将处于搜索关键字的其它位置的第一关键字子串设置较低的权重,使正确的歌曲在搜索时排序靠前,从而更容易返回正确的歌曲,提高了歌曲搜索的准确率。

本发明的第三实施方式涉及一种歌曲搜索方法。第三实施方式与第一实施方式大致相同,主要区别之处在于:在根据搜索关键字构造第一关键字子串之后,还生成与第二关键字子串编辑距离为预设距离的容错子串,其中,第二关键字子串为长度大于预设长度的第一关键字子串;在将每一第一关键字子串与每一歌曲的歌词进行匹配时,结合容错子串一起进行匹配。

本发明实施方式提供的歌曲搜索方法的具体流程如图4所示,具体包括以下步骤:

S301:若搜索关键字的长度大于预设长度,则根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串。

S302:生成与每一第二关键字子串编辑距离为预设距离的容错子串,第二关键字子串为长度大于预设长度的第一关键字子串。

S303:将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

其中,S301与第一实施方式中的S101相同,具体可以参见第一实施方式中的相关描述,这里不再赘述。

对于S302-S303,详细说明如下:

其中,预设距离可以根据实际需要进行设置,此处不做具体限制。考虑到预设距离较大时,会大大增加搜索的范围,也可能会使某一第一关键字子串的容错子串与其它的第一关键子子串的容错子串存在较大的重叠部分,因此,优选地,预设距离为1。

以预设距离等于1为例,若第一关键字子串为“我知道我的”,则与“我知道我的”相差一个字的字串即为该第一关键字子串的容错子串,例如为“我知道我”、“知道我的”、“我知道的”等。

本发明实施方式对长度等于预设长度的第一关键字子串不生成容错子串,是因为对等于预设长度的第一关键字子串设容错子串会造成查找的范围较大,影响查询的效率,同时也容易匹配到较多歌曲,影响歌曲搜索的准确率。但是,在查询的效率和准确率要求较低的情况下,也可以对长度等于预设长度的第一关键字子串生成容错子串。

可以理解的是,由于搜索关键字很可能存在错字、少字、多字等情况,因此,通过第一关键字子串的容错子串可以有效地提高歌曲搜索的成功率。例如,若搜索关键字为ABCD四个字,假设B存在错误,则与B相关的第一关键字子串不能匹配到正确的歌曲,但容错子串ABC、BDC仍然可能匹配到正确的歌曲。

与现有技术相比,本发明实施方式提供的歌曲搜索方法,在根据搜索关键字构造第一关键字子串后,还生成与第二关键字子串编辑距离为预设距离的容错子串,在将第一关键字子串与每一歌曲的歌词进行匹配时,结合容错子串一起匹配;由于容错子串可以在搜索关键字存在错字、少字、多字等情况下仍然能匹配到歌曲,因此结合容错子串进行匹配,可以有效地提高歌曲搜索的成功率。

本发明的第四实施方式涉及一种歌曲搜索方法。第四实施方式与第三实施方式大致相同,主要区别之处在于:在构造第一关键字子串后,根据第一关键字子串在搜索关键子中的位置确定第一关键字子串的权重;同时,根据第二关键字子串的权重确定与第一关键字子串对应的容错子串的权重;根据匹配的结果返回歌曲的搜索结果时,根据匹配的结果、第一关键字子串的权重和容错子串的权重返回歌曲的搜索结果。

本发明实施方式提供的歌曲搜索方法的具体流程如图5所示,具体包括以下步骤:

S401:若搜索关键字的长度大于预设长度,则根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串。

S402:生成与每一第二关键字子串编辑距离为预设距离的容错子串,第二关键字子串为长度大于预设长度的第一关键字子串。

S403:根据每一第一关键字子串在搜索关键字中的位置、确定每一第一关键字子串的权重。

S404:根据每一第二关键字子串的权重确定与第二关键字子串对应的容错子串的权重。

S405:将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果、第一关键字子串的权重和容错子串的权重返回歌曲的搜索结果。

其中,S401、S402与第三实施方式中的S301、S302相同,请参见第三实施方式中的相关描述,这里不再赘述。

S403与第二实施方式中的S202-S204相同,请参见第二实施方式中的相关描述,这里也不再赘述。优选地,在确定第一关键字子串的权重时,根据第一关键字子串的长度和在搜索关键字中的位置确定。

对于S404-S405,详细说明如下:

可以理解的是,由于容错子串是根据第二关键字子串生成的,因此,第二关键字子串对应的容错子串即是指生成的与第二关键字子串编辑距离为预设距离的子串。

可选地,可使第二关键字子串的权重大于与第二关键字子串对应的容错子串的权重,具体可以是将第二关键字子串的权重减去一个常数得到对应的容错子串的权重。当预设距离较小(例如为1)时,减去的常数可以设置较小,例如为1,即容错子串的权重=对应的第二关键字子串的权重-1;当预设距离较大(例如为2以上)时,减去的常数可以设置较大,例如为4等,具体可以根据实际需要进行设置,此处不做具体限制。

请参考图6,其为本发明实施方式提供的歌曲搜索方法处理过程的一具体示例图。其中,(“我不需要告诉我叫精”~)为第一关键字子串“我不需要告诉我叫精”的容错子串,其它以此类推。图中第一关键字子串的权重为:第一关键字子串的长度*(第一权重或第二权重),其中,第一权重为10,第二权重为1,即第一权重为第二权重的10倍;容错子串的权重为对应的第二关键字子串的权重-1。具体地,从i=1(即第一个字“我”)开始,截取长度不同的子字串作为第一关键字子串;在截取完i=1的子字串后,截取当i=2的子字串,直到i=7,截取的字串为“我叫精彩”(结尾部分且长度为4)为止。

在全部处理完成后,将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果、第一关键字子串的权重和容错子串的权重可以得到歌曲的评分,再根据歌曲的评分高低返回歌曲的搜索结果。

另外,从图6可以看出,第一关键字子串“我不需要告诉我叫精”的权重较高,但同时第一关键字子串“我不需要告诉我叫精”不存在错字、少字、多字的情况的概率是比较低的,而通过将其对应的容错子串的权重也设置得较高,则可以在“我不需要告诉我叫精”存在错字、少字、多字的情况下仍然可能返回正确的歌曲;并且,由于第一关键字子串“我不需要告诉我叫精”的长度较长,其对应的容错子串在匹配时若能匹配到相应的歌词,则相应的歌曲的得分就会较高,从而使相应的歌曲排序靠前,最终容易返回正确的歌曲搜索结果。

与现有技术相比,本发明实施方式提供的歌曲搜索方法,由于容错子串可以在搜索关键字存在错字、少字、多字等情况下仍然能匹配到歌曲,因此结合容错子串进行匹配,可以有效地提高歌曲搜索的成功率;同时,根据第二关键字子串确定容错子串的权重,通过合理设置容错子串的权重,可以使正确的歌曲在搜索时排序靠前,更容易返回正确的歌曲搜索结果,从而提高歌曲搜索的准确率。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第五实施方式涉及一种歌曲搜索装置500,如图7所示,包含:构造模块501和搜索模块502,各模块功能详细说明如下:

构造模块501,用于在搜索关键字的长度大于预设长度时,根据搜索关键字构造若干个长度不同且长度大于或等于预设长度的第一关键字子串;

搜索模块502,用于将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

进一步地,本发明实施方式提供的歌曲搜索装置500还包括确定模块,其中,确定模块用于:

确定每一第一关键字子串的权重;

搜索模块502还用于:

将每一第一关键字子串与每一歌曲的歌词进行匹配,根据匹配的结果和第一关键字子串的权重返回歌曲的搜索结果。

进一步地,确定模块还用于:

根据每一第一关键字子串的长度和每一第一关键字子串在搜索关键字中的位置中的至少一个,确定每一第一关键字子串的权重。

进一步地,确定模块还用于:

若第一关键字子串处于搜索关键字的开头位置或结尾位置,则确定第一关键字子串的权重为第一权重;

若第一关键字子串处于搜索关键字中除开头位置和结尾位置以外的位置,则确定第一关键字子串的权重为第二权重,第一权重为第二权重的n倍,n大于1。

进一步地,本发明实施方式提供的歌曲搜索装置500还包括生成模块,其中,生成模块用于:

生成与每一第二关键字子串编辑距离为预设距离的容错子串,第二关键字子串为长度大于预设长度的第一关键字子串;

根据每一第二关键字子串的权重确定与第二关键字子串对应的容错子串的权重;

搜索模块502还用于:

将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果、第一关键字子串的权重和容错子串的权重返回歌曲的搜索结果。

进一步地,生成模块还用于:

生成与每一第三关键字子串编辑距离为预设距离的容错子串,第三关键字子串为长度大于预设长度的第一关键字子串;

搜索模块502还用于:

将每一第一关键字子串和每一容错子串与每一歌曲的歌词进行匹配,根据匹配的结果返回歌曲的搜索结果。

进一步地,构造模块501还用于:

执行第一循环过程直至起点为搜索关键字右侧最后一个汉字或外文单词,第一循环过程为:将第一初始起点作为当前起点,或将前一次起点右侧的下一个汉字或外文单词作为当前起点,向右截取长度不同的子字串作为第一关键字子串,其中,第一初始起点为搜索关键字左侧第一个汉字或外文单词;

或,

执行第二循环过程直到起点为搜索关键字左侧最后一个汉字或外文单词,第二循环过程为:将第二初始起点作为当前起点,或将前一次起点左侧的下一个汉字或外文单词作为当前起点,向左截取长度不同的子字串作为第一关键字子串,其中,第二初始起点为搜索关键字右侧第一个汉字或外文单词。

不难发现,本实施方式为与第一、第二、第三、第四实施方式相对应的装置实施例,本实施方式可与第一、第二、第三、第四实施方式互相配合实施。第一、第二、第三、第四实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一、第二、第三、第四实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第六实施方式涉及一种网络设备,如图8所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述的歌曲搜索方法。

其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。

处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。

本发明第七实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号