歌曲标签预测方法、装置、服务器及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种歌曲标签预测方法、装置、服务器及存储介质。
背景技术
现有技术中,在线音乐平台的歌曲库中包含有数量庞大的歌曲,为了能够实现歌曲推荐的个性化,可以对歌曲进行标签标记,例如,将歌曲按照风格、年代、情感等元素进行分类。
通常来说,歌曲的标签是通过人工进行标记的,例如,通过音乐平台的用户来标记。当用户在使用音乐平台欣赏歌曲时,可以根据自己的判断对歌曲进行添加标签的操作。但是,由于歌曲库中的歌曲数量庞大,无法保证人工标记对每首歌曲都添加了标签,且人工标记存在耗时长、效率低的缺点。
发明内容
本说明书实施例提供及一种歌曲标签预测方法、装置、服务器及存储介质。
第一方面,本说明书实施例提供一种歌曲标签预测方法,包括:
获取待预测歌曲的目标歌词文本,所述目标歌词文本中包括若干目标词语;
当所述目标词语包含在预设样本词语库中时,根据所述预设样本词语库中各个词语和词向量之间的映射关系,确定所述目标词语的目标词向量;当所述目标词语未包含在所述预设样本词语库中时,根据所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定所述目标词语的笔画元素对应的目标笔画向量,并基于所述目标笔画向量构建所述目标词语的所述目标词向量;
根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,所述文本分类结果为所述目标歌词文本对应的歌曲标签。
第二方面,本说明书实施例提供一种歌曲标签预测装置,包括:
获取模块,用于获取待预测歌曲的目标歌词文本,所述目标歌词文本中包括若干目标词语;
词向量确定模块,用于当所述目标词语包含在预设样本词语库中时,根据所述预设样本词语库中各个词语和词向量之间的映射关系,确定所述目标词语的目标词向量;当所述目标词语未包含在所述预设样本词语库中时,根据所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定所述目标词语的笔画元素对应的目标笔画向量,并基于所述目标笔画向量构建所述目标词语的所述目标词向量;
标签确定模块,用于根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,所述文本分类结果为所述目标歌词文本对应的歌曲标签。
第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述第一方面所述方法的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
本说明实施例中的方案,在获取待预测歌曲的目标歌词文本之后,确定目标歌词文本中包含的各个目标词语是否在预设样本词语库中,若是,则根据预设样本词语库中各个词语和词向量之间的映射关系,确定目标词语的目标词向量,若否,则根据预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定目标词语的笔画元素对应的目标笔画向量,并基于目标笔画向量构建目标词语的目标词向量。进一步的,根据目标歌词文本、目标词向量以及已训练的文本分类模型,获得文本分类结果,并将文本分类结果作为目标歌词文本对应的歌曲标签。上述方案中,由于歌词文本能够表达歌曲的内容,将歌词文本作为信息的载体,并通过将歌词文本转换为词向量,并基于词向量来进行文本分类,有效的实现了对歌曲的标签预测,提高了标签添加的效率。另外,对于未包含在预设样本词语库中的目标词语,可以通过预设样本词语库中各个词语的笔画向量来构建目标词语的目标词向量,因此,本说明书实施例中的方案能够获取目标歌词文本中每个目标词语的目标词向量,这样,在标签预测时可以全面考虑到歌词文本中的每个目标词语的含义,提高了歌曲的标签预测的准确率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例第一方面提供的一种歌曲标签预测方法的流程图;
图2为本说明书实施例第二方面提供的一种歌曲标签预测装置的示意图;
图3为本说明书实施例第三方面提供的服务器的示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供一种歌曲标签预测方法,该方法可以应用于在线音乐平台中,对在线音乐平台的歌曲库中的歌曲进行标签预测。如图1所示,为本说明书实施例提供的一种歌曲标签预测方法,该方法包括以下步骤:
步骤S11:获取待预测歌曲的目标歌词文本,所述目标歌词文本中包括若干目标词语;
步骤S12:当所述目标词语包含在预设样本词语库中时,根据所述预设样本词语库中各个词语和词向量之间的映射关系,确定所述目标词语的目标词向量;当所述目标词语未包含在所述预设样本词语库中时,根据所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定所述目标词语的笔画元素对应的目标笔画向量,并基于所述目标笔画向量构建所述目标词语的所述目标词向量;
步骤S13:根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,所述文本分类结果为所述目标歌词文本对应的歌曲标签。
上述方案中,由于歌词文本能够表达歌曲的内容,将歌词文本作为信息的载体,并通过将歌词文本中的各个词语转换为词向量,并基于词向量来进行文本分类,有效的实现了对歌曲的标签预测,提高了标签添加的效率。另外,本说明书实施例中,可以根据预设样本词语库中各个词语和词向量之间的映射关系、以及预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,获取歌词文本中所有目标词语的目标词向量,这样,在进行标签预测时可以全面考虑到歌词文本中的每个词语的含义,提高了歌曲的标签预测的准确率。
首先,在步骤S11中,待预测歌曲可以是在线音乐平台中歌曲库中未进行标签标记的歌曲。待预测歌曲的目标歌词文本可以通过多种方式进行获取,例如,可以根据与待预测歌曲关联好的歌词信息来获取目标歌词文本;还可以根据待预测歌曲的信息在音乐平台的歌词库中确定,如,根据待预测歌曲的歌名、演唱者等信息在歌词库中查找对应的歌词文本;还可以根据待预测歌曲的信息在互联网上查找对应的歌词文本。当然,还可以根据其他方式来获取,这里不做确定。
在确定了待预测歌曲的目标歌词文本之后,进一步通过步骤S12来确定目标歌词文本中的目标词语所对应的目标词向量。目标词语可以是目标歌词文本中包含的全部词语,也可以是目标歌词文本中包含的部分词语,这里不做限定。为了得到目标歌词文本中的目标词语,可以对目标歌词文本进行分词处理,例如,对目标歌词文本的每句歌词都进行分词,将分词结果作为目标词语。举例来讲,对于歌词“一闪一闪亮晶晶”,其分词结果可以为“一闪”、“一闪”、“亮晶晶”,可以将这三个词语作为该句歌词对应的目标词语。由于一首歌曲的歌词文本由很多句歌词构成,通过对每句歌词进行分词处理,最终可以得到全部的目标歌词。
应说明的是,由于一首歌的歌词文本可能会存在许多重复的地方,例如,副歌部分可能存在两次、甚至更多次数的重复,为了减少计算量、增加标签预测的效率,在获取了待预测歌曲的目标歌词文本之后,可以先将目标歌词文本进行句子级别的去重,即去除重复出现的句子,然后在句子去重之后,再进行歌词句子的分词处理,得到目标歌词。
在得到目标歌词之后,可以根据预设样本词语库中各个词语和词向量之间的映射关系、或预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系得到各个目标歌词对应的目标词向量。本说明书实施例中,上述映射关系可以是预先训练好的,在一种实施方式中,预设样本词语库中各个词语和词向量之间的映射关系,以及预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系可以通过以下方式获取:
获取所述预设样本词语库;根据预设的词向量生成模型对所述预设样本词语库中各个词语的初始词向量、以及所述各个词语的笔画元素的初始笔画向量进行训练,获得训练好的所述各个词语的最终词向量、以及训练好的所述各个词语的笔画元素的最终笔画向量;其中,将所述各个词语与所述最终词向量之间的对应关系作为所述预设样本词语库中各个词语和词向量之间的映射关系,将所述各个词语的笔画元素与所述最终笔画向量之间的对应关系作为所述预设样本词语库中各个词语的笔画元素和笔画向量的映射关系。
具体来讲,预设样本词语库可以通过多种方式获取,例如,可以在互联网上获取样本词语,构成预设样本词语库,或者,将预设的中文词语数据库作为预设样本词语库等。本说明书实施例中,为了更贴近歌曲标签预测的场景,可以通过以下方式获取预设样本词语库:在预设歌曲库中选取带有标签的歌曲作为歌曲样本;对所述歌曲样本的歌词文本进行分词处理,获得分词结果,并基于所述分词结果构建所述预设样本词语库。
在该实施例中,预设歌曲库可以是在线音乐平台的歌曲库,在歌曲库中,包含有大量的带有标签的歌曲。在确定歌曲样本时,可以将带有标签的歌曲全部提取出来作为歌曲样本,也可以按照预设规则来对带有标签的歌曲进行筛选,筛选出歌曲样本。预设规则可以根据实际需要进行设定,这里不做限定。在一个实施例中,可以获取预设歌曲库中每种标签下所包含的歌曲数量,将歌曲数量大于一阈值的歌曲作为歌曲样本,然后根据每首歌曲样本确定样本词语。
举例来讲,歌曲库中包含有许多标签,如,有些歌曲的标签为“伤感”,有些歌曲的标签为“愉快”,有些歌曲的标签为“神奇”等。分别确定每种标签下所包含的歌曲数量,如,“伤感”标签下的歌曲数量为109首,“愉快”标签下的歌曲数量为298首,“神奇”标签下的歌曲数量为2首。如果一个标签下包含的歌曲数量太少,可能是这些标签的描述不符合一般的命名规则,或者标签的描述存在错别字(比如将“欢快”写成了“欢筷”)等。因此,可以将这些标签下的歌曲去除掉,选择歌曲数量较多的标签所对应的歌曲作为歌曲样本。应理解的是,阈值的选择可以根据实际情况来设定,例如,将阈值设定为3,将歌曲数量小于或等于3的标签去除,将歌曲数量大于3的标签所对应的歌曲作为歌曲样本。沿用上面的例子,将“神奇”标签下的2首歌曲排除,将“伤感”标签下的109首歌曲以及“愉快”标签下的298首歌曲作为歌曲样本。需要说明的是,由于一首歌曲可以带有多个标签,所以不同的标签下可能包含有相同的歌曲,因此在获取了每个标签下的歌曲之后,可以对相同的歌曲进行去重处理,保证歌曲样本中不会出现相同的歌曲,但是需要保留每首歌曲的标签,即可以将一首歌曲与多个标签进行关联。
接下来,在确定了歌曲样本之后,根据歌曲样本的歌词文本,确定预设样本词语库。应理解的是,根据歌曲样本的歌词文本来确定预设样本词语库的方式存在多种。例如,对每首歌词文本按照预设规律进行词语采样,将每首歌词文本的词语采样结果加入到初始状态为空集的预设样本词语库中,以获得预设样本词语库。或者,将每首歌词文本中出现频率高于阈值的词语提取出来,并基于提取到的词语来构建预设样本词语库。当然,还可以通过其他方式来确定预设样本词语库,这里不做限定。下面,以对每首歌曲样本的歌词文本进行分词为例,来说明获取预设样本词语库的过程。在该实施例中,对每首歌曲样本的歌词文本进行句子去重,获得去重结果;对去重结果进行分词处理,根据分词结果构建预设样本词语库。
在具体实施过程中,由于对于每首歌曲样本来说,歌词文本中可能会存在重复的部分,例如,歌曲的副歌部分,因此,为了减少计算量,可以先对每首歌词文本进行句子级别的去重,获得去重结果。然后,对去重结果进行分词处理,获得分词结果。具体的,分词处理可以通过多种方式实现,例如,采用基于字符串匹配的分词方法、采用机器学习的方法等等,这里不做限定。将所有歌词文本的分词结果所组成的集合作为预设样本词语库。
进一步的,在获得了预设样本词语库之后,根据预设样本词语库中包含的各个词语、以及预设的词向量生成模型,生成与各个词语对应的词向量以及与所述训练词语对应的笔画向量。下面,对预设样本词语库中的各个词语的词向量以及笔画向量的训练过程进行说明,该过程包括:将所述各个词语进行笔画拆分,获得所述各个词语的笔画拆分结果;根据预设的笔画与编码之间的对应关系,确定与所述各个词语的笔画拆分结果对应的编码序列;根据所述编码序列,构建所述各个词语的笔画元素集合,其中,所述笔画元素集合中的每个笔画元素由所述编码序列中的多个编码元素组成;通过所述预设的词向量生成模型,对所述笔画元素集合中的每个笔画元素的初始笔画向量以及所述各个词语的初始词向量进行训练,获得所述各个词语的最终词向量以及所述各个词语的每个笔画元素的最终笔画向量。
首先,对于预设样本词语库中的每一个词语来说,可以按照笔画进行拆分,以“大人”为例,“大”可以按照笔画拆分为“横”、“撇”、“捺”,人可以拆分为“撇”、“捺”,那么“大人”的笔画拆分结果由五个笔画构成,即“横”、“撇”、“捺”、“撇”、“捺”。进一步的,将每个笔画映射到数字编码,在一个实施例中,笔画与编码的对应关系可以是预先设置好的,例如,笔画与编码的对应关系可以为:笔画“横”“提”对应编码1,笔画“竖”、“竖钩”对应编码2,笔画“撇”对应编码3,笔画“捺”、“点”对应编码4,笔画“横折钩”、“竖弯钩”对应编码5。那么,上面的“大人”的笔画拆分结果可以转化为编码序列:13434。当然,笔画与编码的对应关系可以根据实际需要进行设置,这里不做限定。
进一步的,在获得了编码之后,构建该词语的笔画元素集合。应说明的是,笔画元素集合中包含的每个笔画元素由编码序列中的多个编码元素组成。例如,每个笔画元素包含有n个编码元素,n的取值可以是动态可调的,根据实际需要来进行选择。笔画元素集合可以通过n-gram来进行构建,在一个实施例中,n设置为3-5之间的正整数,仍沿用上面“大人”的编码序列13434来进行说明,当n为3时,3-gram对应的笔画元素为:134、343、434,当n为4时,4-gram对应的笔画元素为1343、3434,当n为5时,5-gram对应的笔画元素为13434,那么对于词语“大人”来说,笔画元素集合就包括有134、343、434、1343、3434、13434这6个元素。应理解的是,对于预设样本词语库中的每个词语,都进行笔画拆分,则每个词语都对应有一个笔画元素集合。
本说明书实施例中,为了对词向量和笔画向量进行训练,针对预设样本词语库中的每个词语,以及每个词语的笔画元素集合中的每个笔画元素,都进行向量初始化。仍以词语“大人”为例,会设置一个与“大人”对应的初始词向量,同时,对于“大人”对应的笔画元素集合来说,对于每个笔画元素,均设置一个初始笔画向量,那么“大人”对应的初始笔画向量总共有6个。词向量以及笔画向量的初始化可以采用随机初始化,也可以采用其他方式的初始化,在一个实施例中,各个初始笔画向量以及初始词向量的维度均相同。
接下来,通过预设的词向量生成模型来训练词向量以及笔画向量。预设的词向量生成模型可以根据实际需要进行选择,例如Skip-Gram模型,CBOW(continuous bag ofword)模型等。下面,为了便于说明,以Skip-Gram模型为例来对词向量以及笔画向量的训练过程来进行描述。
需要说明的是,Skip-Gram模型是用中心词语来预测上下文词语,在向量训练的过程中,通过梯度下降的方法来不断的调整中心词语的笔画向量,以及上下文词语的词向量。在预设样本词语库中的所有词语遍历完毕之后,得到所有词语的最终笔画向量以及最终词向量。
以歌词“试着忍住眼泪”为例,经过分词处理,得到分词结果“试着”、“忍住”、“眼泪”,将这三个词语作为预设样本词语库中的词语。本说明书实施例中,将中心词语的笔画向量作为预设的词向量生成模型的输入,将上下文词语的词向量作为模型的输出。以“忍住”为中心词语为例,上下文词语为“试着”和“眼泪”,则将“忍住”对应的初始笔画向量作为输入,并根据上下文词语的初始词向量以及损失函数,计算每个笔画向量和上下文词语的相似度,进而根据损失函数计算梯度,并对上下文词语的初始词向量以及中心词语的初始笔画向量进行迭代更新。当迭代次数满足预设的迭代次数,或者模型输出的准确率满足预设条件时,完成训练。应理解的是,在训练过程中,会将每个词语依次作为中心词语,来预测该词语的上下文词语,通过这种方式,能够遍历预设样本词语库中的所有词语,得到最终训练好的各个词语的最终笔画向量以及最终词向量。通过上述训练过程,能够使得中心词语与上下文词语的关联度较高,而且词义相同或相近的词语对应的上下文词语往往也是相同或相近的,而中心词语与非上下文词语的关联度较低。
进一步的,由于预设样本词语库中的词语是有限的,因此,当目标歌词文本中的目标词语未在预设样本词语库中出现时,一般来说,无法通过词语和词向量的映射关系得到该目标词语的词向量。如果该目标词语是对标签预测较为关键的词,若不能得到该目标词语的词向量,就会默认将该目标词语抛弃,不做考虑,最终导致标签预测不准确。但是,在本说明书实施例中,由于词向量的训练结果不仅包含有与预设样本词语库中各个词语对应的词向量,还包含了与预设样本词语库中各个词语的笔画元素对应的笔画向量。因此,本说明书实施例中的方案,可以通过笔画向量来构造目标词语的词向量。
因此,在本说明书实施例中,通过步骤S12来确定目标词语的词向量,即:当所述目标词语包含在预设样本词语库中时,根据所述预设样本词语库中各个词语和词向量之间的映射关系,确定所述目标词语的目标词向量;当所述目标词语未包含在所述预设样本词语库中时,根据所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定所述目标词语的笔画元素对应的目标笔画向量,并基于所述目标笔画向量构建所述目标词语的所述目标词向量。
在具体实施过程中,针对目标歌词文本中的每个目标词语,首先判断目标词语是否包含在预设样本词语库中,如果是,则在预设样本词语库中各个词语和词向量之间的映射关系中查找与目标词语对应的目标词向量。如果否,则根据预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,来构建目标词语的目标词向量。
在对目标词语未包含在预设样本词语库中时,可以通过以下方式获取目标词向量的获取:根据预设的笔画与编码之间的对应关系,确定与所述目标词语的笔画拆分结果对应的目标编码序列;根据所述目标编码序列,构建所述目标词语的笔画元素集合,所述目标词语的笔画元素集合由所述目标编码序列中的多个编码元素组成;针对所述目标笔画元素集合中的每个笔画元素,执行以下步骤:在所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系中查找与该笔画元素对应的M个笔画向量;将所述M个笔画向量进行平均处理,并将平均处理得到的平均笔画向量作为该笔画元素的目标笔画向量,M为正整数;基于所述每个笔画元素对应的目标笔画向量,构建所述目标词语对应的目标词向量。
举例来说,目标词语为“大风”,且“大风”这个词语未出现在预设样本词语库中,那么可以将大风进行笔画拆分,并将笔画拆分结果进行编码,得到目标编码序列,并根据目标编码序列构建笔画元素集合,例如,仍沿用上述笔画和编码的对应关系,“大风”对应的目标编码为1343534,接下来,构建笔画元素集合,每个笔画集合包含有n个编码元素,仍以n取3、4、5为例,那么笔画元素集合包括134、343、435...,共12个笔画元素。进一步的,对于每个笔画元素来说,在预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系中,可以查找到对应的笔画向量,例如,对于笔画元素134来说,在上述对“大人”的笔画向量训练过程中,会得到与“大人”的134这个笔画元素对应的笔画向量,同样的,对于预设样本词语库中的其他词语的笔画元素中,也可能存在134这个元素,也会生成对应的笔画向量。本说明书实施例中,可以在笔画元素和笔画向量的映射关系中找到所有的与134对应的M个笔画向量,然后将这M个笔画向量做平均,并将平均后得到的向量作为“大风”的134这个笔画元素的笔画向量。然后,通过同样的方法,确定“大风”的笔画元素集合中的每个元素的笔画向量,并将最终得到笔画元素集合对应的笔画向量作为“大风”的目标词向量。
接下来,执行步骤S13,根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,所述文本分类结果为所述目标歌词文本对应的歌曲标签。
本说明书实施例中,可以根据实际需要来设置文本分类模型的输入数据,下面对其中的两种输入数据进行说明。
第一种方式:将所述目标歌词文本、所述目标词向量输入至所述已训练的文本分类模型,获得所述文本分类结果。
在该种方式中,当获取到目标歌词文本后,可以将目标歌词文本进行句子去重、分词处理,得到目标歌词文本中的所有目标词语,在一个实施例中,可以将所有的目标词语根据在歌词文本中的顺序进行排列,构成一组目标词语序列。然后根据预设样本词语库中各个词语和词向量之间的映射关系、以及预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定目标词语序列中各词的目标词向量,并按照目标词语序列中各词的先后顺序,对目标词向量进行排序,构成一组目标词向量序列。其中,目标词向量序列中的目标词向量与目标词语序列中的目标词语一一对应。将目标词向量序列以及目标词语序列作为输入数据,输入到已训练的文本分类模型中,获得文本分类结果,作为歌曲标签。
第二种方式:将所述目标歌词文本、所述预设样本词语库中各个词语和词向量之间的映射关系、以及所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系作为所述已训练的文本分类模型的输入数据,所述已训练的文本分类模型基于所述输入数据确定所述目标词语的所述目标词向量;所述根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,包括:所述已训练的文本分类基于所述目标歌词文本,以及所述目标词向量,输出所述文本分类结果。
在该种方式中,当获取到目标歌词文本后,可以将目标歌词文本进行句子去重、分词处理,排序等步骤得到一组目标词语序列。然后把目标词语序列、预设样本词语库中各个词语和词向量之间的映射关系、以及预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系作为输入数据,输入到已训练的文本分类模型中。已训练的文本分类模型进一步的根据上述映射关系确定与目标词语序列对应的目标词向量序列。然后文本分类模型根据目标词向量序列以及目标词语序列来进行文本分类处理,输出文本分类结果,作为歌曲标签。
应理解的是,文本分类模型可以根据实际需要进行选择,例如卷积神经网络模型、循环神经网络模型、或者其他文本分类模型,这里不做限定。本说明书实施例中,采用快速文本(FastText)分类模型来进行歌曲标签的预测。为了使文本分类模型适用于歌曲的标签预测,需要对选定的文本分类模型进行训练,下面,以快速文本分类模型为例来对模型的训练过程进行说明。
FastText可以看做是有监督的文本分类模型,在对FastText模型进行训练的过程中,首先确定模型的训练数据。在本说明书实施例中,可以选取一定数量的带有标签的歌词文本,这些歌词文本可以是在音乐平台的歌曲库中提取出来的,也可以是在互联网上获取的,这里不做限定。将带有标签的歌词文本进行句子去重、分词以及排列处理,得到每首歌词文本的目标词语序列,再通过词语和词向量之间的映射关系、以及词语的笔画元素和笔画向量之间的映射关系确定出目标词语序列对应的目标词向量序列,将每首歌词文本的目标词语序列以及对应的目标词向量序列作为文本分类模型的输入。
另外,由于每首歌词文本的标签可能存在一个或多个,所以通过FastText模型的输出可以为一个或多个标签。在FastText模型的训练过程中,根据模型输出的预测标签与真实的歌曲标签之间的差异,来不断的对初始的模型参数进行调整,目的是使模型的输出尽量与真实的标签相同,当模型输出的准确率到达预设范围时,完成训练,并可以将训练好的FastText模型进行新歌的标签预测。
需要说明的是,FastText模型能够刻画标签之间的相关度,举例来讲,对于同一首歌,不同用户添加的标签可能是不同的,比如有的用户对一首歌曲添加的标签是“伤感”,有的用户对同一首歌曲添加的标签是“悲伤”,这两个标签在语义上比较接近。一般的分类器无法刻画标签之间的相关性,例如,常见的二分类,只能在“悲伤”和“伤感”中选择一个作为最后的标签预测结果。而FastText模型能够刻画标签之间在语义上的相关度,能够对一首歌曲进行多标签预测。同时,本说明书实施例中采用笔画拆分的方式来训练词向量,能够使得训练好的词向量很好的刻画各词在语义上的相关性,因此,使用笔画拆分的方法来训练词向量,并且使用FastText模型来进行标签预测能够最大程度的发挥上述训练好的词向量在语义刻画上的优势,使得标签预测的结果更好。
在训练好Fasttext模型之后,可以通过该训练好的模型进行歌曲的标签预测。在一个实施例中,当对一首待预测歌曲进行标签预测时,先获取待预测歌曲的歌词文本,然后对歌词文本进行句子去重,对去重之后的歌词进行分词处理,得到分词结果,并将分词结果作为目标词语,组成目标词语序列。进一步的,根据词语和词向量之间的映射关系以及词语的笔画元素和笔画向量之间的映射关系,确定目标词语序列中各个目标词语对应的目标词向量,构成目标词向量序列。已训练的文本分类模型能够基于目标词向量序列以及目标词语序列,得到待预测歌曲的标签预测结果。或者,在得到目标词语序列之后,可以将目标词语序列、词语和词向量之间的映射关系以及词语的笔画元素和笔画向量之间的映射关系输入到已训练的文本分类模型中,已训练的文本分类模型可以根据映射关系来确定出各个目标词语对应的目标词向量,并进一步输出待预测歌曲的标签预测结果。
第二方面,本说明书实施例提供一种歌曲标签预测装置,请参考图2,包括:
获取模块21,用于获取待预测歌曲的目标歌词文本,所述目标歌词文本中包括若干目标词语;
词向量确定模块22,用于当所述目标词语包含在预设样本词语库中时,根据所述预设样本词语库中各个词语和词向量之间的映射关系,确定所述目标词语的目标词向量;当所述目标词语未包含在所述预设样本词语库中时,根据所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系,确定所述目标词语的笔画元素对应的目标笔画向量,并基于所述目标笔画向量构建所述目标词语的所述目标词向量;
标签确定模块23,用于根据所述目标歌词文本、所述目标词向量、以及已训练的文本分类模型,获得文本分类结果,所述文本分类结果为所述目标歌词文本对应的歌曲标签。
在一种可选实现方式中,所述预设样本词语库中各个词语和词向量之间的映射关系,以及所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系通过以下方式获取:
获取所述预设样本词语库;
根据预设的词向量生成模型对所述预设样本词语库中各个词语的初始词向量、以及所述各个词语的笔画元素的初始笔画向量进行训练,获得训练好的所述各个词语的最终词向量、以及训练好的所述各个词语的笔画元素的最终笔画向量;
其中,将所述各个词语与所述最终词向量之间的对应关系作为所述预设样本词语库中各个词语和词向量之间的映射关系,将所述各个词语的笔画元素与所述最终笔画向量之间的对应关系作为所述预设样本词语库中各个词语的笔画元素和笔画向量的映射关系。
在一种可选实现方式中,所述装置还包括:
样本词语库构建模块,用于在预设歌曲库中选取带有标签的歌曲作为歌曲样本;对所述歌曲样本的歌词文本进行分词处理,获得分词结果,并基于所述分词结果构建所述预设样本词语库。
在一种可选实现方式中,所述装置还包括词向量训练模块,用于:
将所述各个词语进行笔画拆分,获得所述各个词语的笔画拆分结果;
根据预设的笔画与编码之间的对应关系,确定与所述各个词语的笔画拆分结果对应的编码序列;
根据所述编码序列,构建所述各个词语的笔画元素集合,其中,所述笔画元素集合中的每个笔画元素由所述编码序列中的多个编码元素组成;
通过所述预设的词向量生成模型,对所述笔画元素集合中的每个笔画元素的初始笔画向量以及所述各个词语的初始词向量进行训练,获得所述各个词语的最终词向量以及所述各个词语的每个笔画元素的最终笔画向量。
在一种可选实现方式中,词向量确定模块22,用于:
根据预设的笔画与编码之间的对应关系,确定与所述目标词语的笔画拆分结果对应的目标编码序列;
根据所述目标编码序列,构建所述目标词语的笔画元素集合,所述目标词语的笔画元素集合由所述目标编码序列中的多个编码元素组成;
针对所述目标笔画元素集合中的每个笔画元素,执行以下步骤:在所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系中查找与该笔画元素对应的M个笔画向量;将所述M个笔画向量进行平均处理,并将平均处理得到的平均笔画向量作为该笔画元素的目标笔画向量,M为正整数;
基于所述每个笔画元素对应的目标笔画向量,构建所述目标词语对应的目标词向量。
在一种可选实现方式中,标签确定模块23,用于:
将所述目标歌词文本、所述目标词向量输入至所述已训练的文本分类模型,获得所述文本分类结果。
在一种可选实现方式中,词向量确定模块22,用于:
将所述目标歌词文本、所述预设样本词语库中各个词语和词向量之间的映射关系、以及所述预设样本词语库中各个词语的笔画元素和笔画向量之间的映射关系作为所述已训练的文本分类模型的输入数据,所述已训练的文本分类模型基于所述输入数据确定所述目标词语的所述目标词向量;
标签确定模块23,用于:所述已训练的文本分类基于所述目标歌词文本,以及所述目标词向量,输出所述文本分类结果。
在一种可选实现方式中,所述文本分类模型为快速文本分类模型。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的歌曲标签预测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于与前述实施例中歌曲标签预测方法同样的发明构思,本发明还提供一种服务器,如图3所示,包括存储器604、处理器602及存储在存储器604上并可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现前文所述的歌曲标签预测方法的任一方法的步骤。
其中,在图3中,总线架构(用总线600来代表),总线600可以包括任意数量的互联的总线和桥,总线600将包括由处理器602代表的一个或多个处理器和存储器604代表的存储器的各种电路链接在一起。总线600还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口606在总线600和接收器601和发送器603之间提供接口。接收器601和发送器603可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602负责管理总线600和通常的处理,而存储器604可以被用于存储处理器602在执行操作时所使用的数据。
第四方面,基于与前述实施例中基于歌曲标签预测方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于歌曲标签预测方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。