1.一种多轮对话意图识别方法,其特征在于,包括如下步骤:
1)根据应用场景确定要识别的对话意图,并获取大量对话数据,人工找出对话数据中的对话块以及其对应的意图,进行语料标注;
2)根据人工整理好的停用词表去除对话数据中的停用词;
3)构建用于意图识别的句向量模型、BiLSTM-CRF模型及StarSpace模型;
4)由句向量模型、BiLSTM-CRF模型和StarSpace模型实时获取对话数据,进行意图识别,输出最佳意图。
2.根据权利要求1所述的一种多轮对话意图识别方法,其特征在于,所述步骤2)具体为:
2.1)将对话数据使用分词工具进行分词;
2.2)将分词结果中的每个词与停用词表中的词进行判断,若分词结果中的词在停用词表中存在,则去除该词,否则保留;
2.3)将2.2)得到的结果拼接为句子。
3.根据权利要求1所述的一种多轮对话意图识别方法,其特征在于,所述步骤3)中句向量模型构建步骤具体为:
3.1)获取去除停用词后的人工标注语料,将语料中的每句话按字符拆分为List,最终得到整个语料的List列表;
3.2)设置sentence2vec算法的预设参数,句子嵌入向量空间的维度n和语料总共使用的次数epoch;
3.3)将3.1)中得到的语料List列表作为sentence2vec的输入,进行句向量模型训练;
3.4)将3.3)训练得到的句向量模型存储到磁盘上。
4.根据权利要求1所述的一种多轮对话意图识别方法,其特征在于,所述步骤3)中BiLSTM-CRF模型构建步骤具体为:
3.5)获取去除停用词后的人工标注语料,首先使用句向量模型将对话转化为句向量,然后根据对话块标注块标签,其中,B表示块开始位置,I表示块中位置,E表示块结束位置,O表示其他位置;
3.6)设置BiLSTM-CRF模型预设参数,模型隐藏层大小hidden_size、随机失活率dropout、语料总共使用的次数epoch、每批次大小batch_size;
3.7)将3.5)进行块标注后的语料作为BiLSTM-CRF模型的输入,进行BiLSTM-CRF模型训练;
3.8)将3.7)训练得到的BiLSTM-CRF模型存储到磁盘上。
5.根据权利要求1所述的一种多轮对话意图识别方法,其特征在于,所述步骤3)中StarSpace模型构建步骤具体为:
3.9)获取去除停用词后的人工标注语料,只取有意图的对话块,将对话块中的句子拼接起来,与其对应的意图形成key-value对,存储在List中。
3.10)设置StarSpace模型预设参数,对话嵌入粒度、模型隐藏层大小hidden_size、语料总共使用的次数epoch、每批次大小batch_size。
3.11)将3.9)得到的存有key-value对的List作为StarSpace模型的输入,进行StarSpace模型训练;
3.12)将3.11)训练得到的StarSpace模型存储到磁盘上。
6.根据权利要求1所述的一种多轮对话意图识别方法,其特征在于,所述步骤4)具体为:
4.1)从对话数据中获取一句对话;
4.2)根据停用词表去除对话中的停用词;
4.3)将对话输入句向量模型中,得到对话的句向量;
4.4)将对话及其句向量存储到对话列表中;
4.5)使用BiLSTM-CRF模型对对话列表进行对话分块;
4.6)根据4.5)得到的对话分块结果,若结果末端为一个对话块,则进入4.7),否则跳转到4.1);
4.7)将4.6)得到的对话块中的句子拼接起来,使用StarSpace模型进行意图分类;
4.8)根据意图分类结果,若意图分类结果置信度大于预设置置信度阈值C,则输出意图,否则该意图分类结果被过滤;
4.9)输出最佳意图,若存在未处理的对话数据,则跳转到4.1),否则算法结束。