本发明涉及多媒体分析技术领域,具体涉及一种基于fasttext和crf的音乐领域命令理解方法。
背景技术:
对话系统是人机交互的一种相当重要的形式,也是自然语言处理过程中的一个关键的研究方向。在音乐领域,能否正确解析出用户话语命令是完成用户指定任务的基础,在很多地方比如语音助手、音乐平台都有很丰富的应用场景。对于用户某条话语,条件随机场(crf)模型并不能很好的区分其是否表达了一个音乐领域内的意图。crf一般在序列标注、命名实体识别过程表现较好,但在识别音乐实体之前,需要判断此用户话语是否表达音乐意图,这样做有二个好处,一是若判断用户话语没有表达音乐意图,则不需要进行后续实体提取操作,因为此时已经完成无音乐意图解析操作,二是若不做判断,则很有可能一段用户话语没有表现音乐意图,但是被错误的提取出了音乐实体,比如“刘德华的老婆是谁”这句用户话语,若不先进行音乐意图判断操作,则很有可能将“刘德华”识别成歌手实体,从而这句话也被解析成音乐意图,而实际上这句话并没有表达音乐领域的相关意图。本发明提出了一种基于快速文本分类(fasttext)模型和条件随机场(crf)模型的方法,fasttext模型的目标为判断用户的话语是否表达了一个音乐领域的意图。若该话语确实表达了音乐领域的意图,那么为了完成该意图,crf模型目标是提取该话语的相关参数(话语中的相关参数也被成为”槽”),从而本发明能更好的理解音乐领域用户话语的命令。
现有技术大多数把这个问题定义成一个序列标注问题,输入为句子序列,输出目标为句子标注序列标签,然后根据标注序列标签就能提取出对应的音乐实体。过程如下:定义x为输入句子随机变量序列,y为目标标注随机变量序列,s(yi,x,i)是状态特征,状态特征依赖于当前位置,t(yi-1,yi,x,i)为转移特征,转移特征依赖当前和前一个位置,其中yi,yi-1是标注序列的标签,x是输入序列,i表示输入位置。
我们这里统一表示状态特征和转移特征,
(1)假设有k1个转移特征,k2个状态特征,k=k1+k2,则可以用以下公式表示:
(2)然后对转移特征与状态特征在各个位置i求和,记作:
对于训练样本集合
模型训练完成之后,即特征向量权重w求解完成,对于新来输入序列x,我们通过求解以下式子得到预测标签序列,从而得到音乐实体:
现有技术大多数直接提取该话语的音乐领域相关参数,这样做很有可能一段用户话语没有表现音乐意图,但是被错误的提取出了音乐实体,比如“刘德华的老婆是谁”这句用户话语,若不先进行音乐意图判断操作,则很有可能将“刘德华”识别成歌手实体,从而这句话也被解析成音乐意图,而实际上这句话并没有表达音乐领域的意图。而这种类型的用户话语是相当多的,现有技术不能很好的处理这种情况,从而造成大量误判。
技术实现要素:
本发明目的是:提供一种基于fasttext和crf的音乐领域命令理解方法。
本发明的技术方案是:一种基于fasttext和crf的音乐领域命令理解方法,其特征在于:包括以下步骤:
步骤1:训练字向量,得到预训练好的字向量和训练数据集合;
步骤2:对从所述步骤1中所得的训练数据集合进行fasttext模型训练,从预训练好的字向量得到所有字的向量,进行求和平均操作,得到句子语义向量c,把c输入模型,通过h=tanh(wc·c+bc)和y=softmax(u·h+bh)计算得到意图识别结果y;其中wc,u为神经网络的权重矩阵,softmax,tanh为激活函数,bc和bh为神经网络的偏置,y为输出结果;
步骤3:将输入样本输入为序列,对输入序列每个字进行字性标注,输出得到句子标注序列标签,然后根据标注序列标签提取出对应的音乐实体,所述提取出对应的音乐实体的过程为:定义x为输入样本随机变量序列,y为目标标注随机变量序列,s(yi,x,i)为状态特征,状态特征依赖于当前位置,t(yi-1,yi,x,i)为转移特征,转移特征依赖当前和前一个位置,其中yi,yi-1是标注序列的标签,x是输入序列,i表示输入位置,k1为转移特征数量,k2为状态特征数量,k=k1+k2,则可以用以下公式表示:
然后对转移特征与状态特征在各个位置i求和,记作:
步骤4:对步骤3中所得的所述目标序列标签进行处理,得到对应的音乐领域实体。
进一步的:所述步骤1中的训练字向量为采用word2vec工具用维基百科整个中文语料训练出预训练好的字向量。
进一步的:所述的训练中,设置一个窗口大小为z,每次取z个字,把它们的字向量求平均作为输入c,然后隐藏h=tanh(wc·c+bc),最后通过全连接层得到y=softmax(u·h+bh),其中wc,u为神经网络的权重矩阵,softmax,tanh为激活函数,bc和bh为神经网络的偏置,y为输出结果。其要优化的目标为l=ylogy'+(1-y)log(1-y'),其中y'为真实标签植。
与现有技术相比,本发明的优点是:本发明通过fasttext技术对用户话语进行判断,先判断是否含有音乐领域相关意图,若判断该话语表达了音乐领域相关意图,则使用crf进行相关参数提取,若判断该话语没有表达音乐领域相关意图,则判断结束,不需要进行后续操作,这样就能解决后面音乐领域相关参数提取错误导致的意图判断错误的问题。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明的流程图;
下面结合实施例对本发明作进一步描述:
具体实施方式
实施例:步骤1:训练过程:
训练数据集类型如下:
请播放周杰伦的稻香artist:周杰伦,song:稻香
刘德华的老婆是谁no-music
对于训练数据集合,我们分别训练fasttext和crf模型:
(1)fasttext模型训练过程:
对于训练集中的no-music(无音乐意图),则标记为负样本标签0,否则标记为正样本标签1。
即训练数据变为以下格式:
请播放周杰伦的稻香1
刘德华的老婆是谁0
构建好训练集之后,fasttext模型训练过程如上。
预测过程:
对于新的话语句子:唱一首稻香,首先分字处理:唱一首稻香,然后从预训练好的字向量得到所有字的向量,进行求和平均操作,得到句子语义向量c。把c输入模型,通过h=tanh(wc·c+bc)和y=softmax(u·h+bh)计算得到意图识别结果y。
步骤2:crf模型训练过程:
在crf模型训练过程中,数据格式变换成以下格式:
请播放周杰伦的稻香oooa-ba-ia-eos-bs-e
刘德华的老婆是谁oooooooo
对于每一条输入样本,输入为序列,输出目标也为序列,符号标记如上。再对输入序列每个字进行字性标注,会得到一个三列的序列,第一列为按字切分的输入序列,第二列为字的字性,第三列为输出目标标签序列。然后定义特征函数:
特征函数:如果此位置为杰且对应的标注序列为a-i,那么这个特征函数为1,否则为0。然后通过训练集,求出所有特征函数的值,然后优化
预测过程,输入预测话语句子:唱一首稻香
我们通过式子:
本实施例中,得到的y'为:ooos-bs-e
步骤3:后处理:通过后处理,得到该话语音乐领域实体为:歌曲:稻香。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。