基于主动学习的语料挖掘方法、装置及电子设备
技术领域
本申请涉及人工智能领域,具体而言,本申请涉及一种基于主动学习的语料挖掘方法、装置及电子设备,还涉及一种计算机可读存储介质。
背景技术
随着人们对生活质量提出更高的要求,众多的智能助手逐渐出现在我们的生活中,如腾讯的云小微智能助手等。用户可以通过语音输入、文本输入等方式向智能助手询问相关信息等。准确理解用户需求是智能助手提供服务的基本前提,为了提高智能助手的智能化水平,有时候需要对智能助手所涉及的技能进行语料挖掘,以满足不同场景不同用户对智能助手发出的不同需求。
目前,语料挖掘方法主要有随机挑选、根据关键词进行语料挖掘和基于边缘概率的主动学习算法的语料挖掘等。随机挑选是指对未标注语料集进行随机采样,然后交由标注人员标注。根据关键词进行语料挖掘需要根据技能的设计几个关键词,然后从未标注语料集中挖掘出包含这些关键词的语料,然后再交由标注人员标注。基于边缘概率的主动学习算法需要初始化若干条启动语料,基于这些启动语料训练一个分类模型,然后用该分类模型对所有未标注语料进行预测得到未标注语料的得分,最后选取得分介于阈值边缘的语料交由标注人员进行标注。
然而,上述语料挖掘方法存在着如下问题:随机挑选的语料挖掘方法耗时耗力,效率极低;根据关键词进行语料挖掘虽然在一定程度上提高了碗蕨效率,但是严重依赖于关键词的挑选,很容易导致语料分布出现倾斜现象,或者因为遗漏某些冷门的语料挖掘不到;而对于基于边缘概率的主动学习算法的语料挖掘方法,又很容易挖掘出一些跟启动语料相似的语料,难以拓展语料挖掘所涉及的覆盖面。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是语料挖掘效率低、难以扩展语料挖掘结果所涉及的覆盖面的技术缺陷。
第一方面,提供了一种基于主动学习的语料挖掘方法,包括:
获取未标注语料;
利用至少两个预先训练好的语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;
选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型。
在一种可能的实现方式中,基于主动学习的语料挖掘方法还包括:
基于预先配置的、作为训练样本的冷启动语料对至少两个分类器进行训练,得到至少两个语料分类模型。
在一种可能的实现方式中,基于预先配置的作为训练样本的冷启动语料对至少两个分类器进行训练,得到至少两个语料分类模型的步骤包括:
获取预先配置的、作为训练样本的冷启动语料;
抽取冷启动语料的N-gram文本特征,并对N-gram文本特征进行筛选生成冷启动语料的N-gram字典;其中,N为正整数,大于等于1;
记录N-gram文本特征在N-gram字典中对应的位置作为冷启动语料的特征表达;
基于特征表达采用可扩展机器学习库分别对至少两个分类器进行训练,得到至少两个语料分类模型。
在一种可能的实现方式中,对N-gram文本特征进行筛选生成冷启动语料的N-gram字典的步骤包括:
统计冷启动语料的N-gram文本特征的出现频次;
筛选出出现频次在预设频次范围内的N-gram文本特征,得到冷启动语料的N-gram字典。
在一种可能的实现方式中,抽取冷启动语料的N-gram文本特征的步骤包括:
基于预先添加到冷启动语料的开头位置和结尾位置的开始标识符号和结束标识符号,根据预设字节片段长度N逐段抽取得到冷启动语料的N-gram文本特征。
在一种可能的实现方式中,利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的第一分类类型和分类分数的步骤包括:
抽取未标注语料的N-gram文本特征,并对未标注语料的N-gram文本特征进行特征向量化,得到未标注语料的特征向量;
根据未标注语料的特征向量利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数。
在一种可能的实现方式中,选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料的步骤包括:
对选取出来的第一分类类型不一致的未标注语料的分类分数进行相加,计算得到选取出来的未标注语料的总分数,依据总分数对选取出来的未标注语料进行降序排序;
根据降序排序结果,获取排序靠前的若干个未标注语料作为待标注语料。
在一种可能的实现方式中,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型的步骤包括:
按照待标注语料的属性进行二次分类标注,得到新标注语料;
将二次分类标注的结果作为新标注语料的第二分类类型。
在一种可能的实现方式中,确定待标注语料的第二分类类型的步骤之后,还包括:
将新标注语料与冷启动语料作为新的训练样本,输入到至少两个分类器中,返回执行对至少两个分类器进行训练,得到至少两个语料分类模型的步骤。
第二方面,提供了一种基于主动学习的语料挖掘装置,装置包括:
未标注语料获取模块,用于获取未标注语料;
第一分类类型得到模块,用于利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;
第二分类类型确定模块,用于选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型。
第三方面,提供了一种电子设备,电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行的基于主动学习的语料挖掘方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现的基于主动学习的语料挖掘方法。
本申请提供的技术方案带来的有益效果是:
通过获取未标注语料,利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型,从而挖掘出作为训练样本的冷启动语料未覆盖到但相关的拓展语料,有利于扩宽语料挖掘的覆盖面,提高语料挖掘的泛化性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种基于主动学习的语料挖掘方法所涉及的实施环境的示意图;
图2是本申请实施例提供的一种基于主动学习的语料挖掘方法的流程图;
图3是本申请实施例提供的训练得到语料分类模型的方法流程图;
图4是本申请实施例提供的一种基于主动学习的语料挖掘装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面对本申请实施例涉及的应用场景进行说明。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、智能助手等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本实施例提供的基于主动学习的语料挖掘方法、装置及电子设备,应用于人工智能中的智能助手、智能客服等智能问答应用中。在这些智能问答应用中,如智能助手,需要正确理解用户的问询,才能更好地针对用户的问询做出正确的答复。
为了更好地阐述本申请的技术方案,下面示出本方案的基于主动学习的语料挖掘方法所可以适用的某一应用环境。图1是本申请实施例提供的一种基于主动学习的语料挖掘方法所涉及的实施环境的示意图,参见图1,该实施环境可以包括:终端101和服务器102。终端101和服务器102通信连接。
在终端101上可以安装有应用程序,该应用程序包括能够进行智能问答的应用程序,如,该应用程序可以是地图导航应用、社交应用、生活服务应用等。本申请实施例不对应用程序的类型做出具体限定。
终端101可以是一个终端,也可以是多个终端。终端101包括车载终端、智能手机、智能电视、智能音箱、平板电脑、电子书阅读器、MP3(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、掌上电脑、笔记本电脑和台式电脑中的至少一种。
用户通过向安装于终端101上的应用程序发起问询,比如,放一首歌。应用程序则根据用户语音输入或者文字输入发起的问询,通过终端101或者服务器102识别出用户的问询的意图,从服务器102调用对应的功能并进行数据处理,将处理结果反馈至终端101,终端101通过预设的音乐播放程序播放歌曲。或者,用户向安装于终端101上的应用程序发起问询,比如,成都的天气如何?服务器102根据用户的问询获得成都的天气信息,并将天气信息通过文字显示或者语音播报的形式反馈给用户。
当然,本申请实施例提供的技术方案还可以应用于其他的定位场景,在此不再一一列举。
基于上述的应用场景,则需要拓展智能助手等智能问答应用的语料,以对这些语料进行学习,以应付用户不同需求的问询。
目前,相关技术大多采用随机挑选、根据关键词进行语料挖掘和基于边缘概率的主动学习算法的语料挖掘等方式进行语料挖掘以拓展语料。随机挑选是指对未标注语料集进行随机采样,然后交由标注人员标注。根据关键词进行语料挖掘需要根据技能的设计几个关键词,然后从未标注语料集中挖掘出包含这些关键词的语料,然后再交由标注人员标注。例如,假设我们要挖掘音乐技能的语料,可以指定以下关键词:“播放”、“听首”、“音乐”、“歌曲”等,然后再从未标注语料集中挑选出包含上述任意个关键词的语料。例如,“播放一首歌曲”和“我要听首音乐”等。基于边缘概率的主动学习算法需要初始化若干条启动语料,基于这些启动语料训练一个分类模型,然后用该分类模型对所有未标注语料进行预测,最后选取得分介于阈值边缘的语料交由标注人员进行标注。
然而,上述的语料挖掘方法是从未标注语料中挖掘出与训练语料相似或者同质语料,无法满足语料挖掘的泛化性,即挖掘出与训练语料属于同一技能,但是未被训练语料覆盖的其他语料,如现有语料的训练预料涉及音乐技能的播放、下载、搜索等需求,但是未涉及到“分享”这一需求,从未标注语料挖掘出同属于音乐技能的“分享”语料,补充到对应的语料库中。
本申请提供的基于主动学习的语料挖掘方法、装置及电子设备,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的方案涉及一种基于主动学习的语料挖掘方法、装置及电子设备,还涉及一种计算机可读存储介质,具体通过如下实施例进行说明:
图2是本申请实施例提供的一种基于主动学习的语料挖掘方法的流程图,该基于主动学习的语料挖掘方法执行于服务端。
具体的,如图2所示,基于主动学习的语料挖掘方法可以包括以下步骤:
S210、获取未标注语料。
语料可以理解为是用户的搜索语句,包括用户的语音、文字、图片输入等。未标注语料可以来自于用户平台中记录的用户搜索历史所使用到的语料,或者从网络爬虫得到的用户使用过的语料等。
在本实施例中,可以对未标注语料进行分类,即未标注语料可以分为符合设定技能的要求条件的满足某一应用的语料需求的正样本语料和不满足某一应用的语料需求的负样本语料。
S220、利用至少两个预先训练好的语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数。
利用预先训练得到的至少两个语料分类模型对未标注语料进行分类。在本实施例中,可以基于预先配置的作为训练样本的冷启动语料对至少两个分类器进行训练,得到至少两个语料分类模型。
由于基于不同分类器训练得到的语料分类模型的语料分类原理不同,对于同一语料的分类结果也可能不同。将未标注语料整理为序列得到未标注语料序列,并将未标注语料逐条分别输入到至少两个语料分类模型中进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数。
在本实施例中,第一分类类型包括正样本语料和负样本语料。分类分数用于表征未标注语料与冷启动语料的标注的设定技能的相关性的高低,分类分数越高,则该未标注语料与冷启动语料的标注的设定技能的正样本语料的相关性的越高,反之,未标注语料与冷启动语料的标注的设定技能的正样本语料的相关性的越低。
S230、选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型。
对于同一未标注语料,如果各个语料分类模型输出的第一分类类型均一致,则说明该未标注语料与作为训练样本的冷启动语料的类型越相似。对于同一未标注语料,将各个语料分类模型输出的分类分数进行相加,得到该未标注语料的总分类分数,若总分类分数越高,则说明该未标注语料与作为训练样本的冷启动语料的类型越相似。
为了更清楚地阐述本方案,结合下面表1进行详细说明。表1是一实施例提供的未标注语料的分类结果。
表1未标注语料的分类结果
其中,表示语料分类模型输出的第一分类类型为正样本,表示语料分类模型输出的第一分类类型为负样本。
由上表1可以看出,三个语料分类模型(SVM分类类型、LR分类类型和NavieBayes分类类型)对于同一语料进行分类具有以下三种分类结果:
三个语料分类模型输出的分类类型为一致通过(即一致认为是正样本语料)的未标注语料,其总分类分数越高,与作为训练样本的冷启动语料越相似,例如,“放首音乐”、“我要听歌”等这些未标注语料是冷启动语料已经覆盖到的,对于扩展语料没有帮助,所以对这些未标注语料不需要挖掘。
对于三个语料分类模型均一致不通过(即一致认为是负样本语料)的未标注语料,其总分类分数越低,与设定技能越不相关。例如,“查下成都明天的天气”,很明显是属于天气技能的语料,所以这部分语料同样不属于音乐技能,对于扩展语料同样没有帮助,对这些未标注语料不需要挖掘。
而对于三个语料分类模型输出的分类类型不一致的未标注语料,很可能是现有作为训练样本的冷启动语料没有覆盖的需要挖掘的正样本语料,或者是难以区分的负样本语料,需要进一步分类确定是否为扩展语料。
基于此,在一实施例中,步骤S230中的选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,可以包括以下步骤:
S2301、对选取出来的第一分类类型不一致的未标注语料的分类分数进行相加,计算得到选取出来的未标注语料的总分数,依据总分数对选取出来的未标注语料进行降序排序。
在本实施例中,选取至少两个语料分类模型输出的第一分类类型不一致的未标注语料,并将选取出来的未标注语料的各个语料分类模型输出的分类分数进行相加,得到该未标注语料的总分数,并按照总分类分数降序排序。如表2所示,表2为选取出来并排序后的未标注语料。
表2选取出来并排序后的未标注语料
从表2可以看出,选取出来的这三个语料分类模型输出的第一分类类型不一致的未标注语料中既有一部分属于音乐技能的正样本语料,例如,“听周杰伦的新歌mojito”,也有一部分是和音乐技能相关性极高的负样本语料,如“下载七里香这首歌”。需要说明的是,正样本和负样本是根据用户预先按照预设标准设定的划分的,例如,若某一标准将“下载”划定为负样本,即便该语料与音乐技能相关,其还是属于负样本。
S2302、根据降序排序结果,获取排序靠前的若干个未标注语料作为待标注语料。
将这些至少两个语料分类模型输出的第一分类类型的未标注语料按照总分类分数降序排序后,获取排名靠前的若干个未标注语料作为待标注语料进行二次分类处理,以进一步验证这些未标注语料的分类类型,是属于正样本语料,还是负样本语料。至于获取的排名靠前的未标注语料的数量可以根据实际情况进行设定,如前2000个。
进一步的,按照待标注语料的属性进行二次分类标注,得到新标注语料,将二次分类标注的结果作为新标注语料的第二分类类型。
在一实施例中,二次分类标注可以人工分类标注的方式,对待标注语料进行再次分类标注,在另一实施例中,二次分类标注还可以通过其他的语料分类模型进行再次分类标注。按照待标注语料的属性是否满足预设支持规则进行二类分类标注,如智能助手云小微能够支持的功能,则为正样本语料,否则为负样本语料。
在本实施例中,针对选取出来的第一分类类型不一致且降序排序排名前2000的待标注语料进行人工分类标注,得到待标注语料的第二分类类型,第二分类类型可能与第一分类类型的结果相同,也可以不同。如表3所示,表3是二次分类标注的待标注语料的分类结果。
表3二次分类标注的待标注语料的分类结果
经过二次分类标注后,从待标注标签中得到M条正样本语料和N条负样本语料,并将正样本语料导入到正样本语料库中,将负样本语料导入到负样本语料库中进行保存,完成一轮的语料挖掘。
在本实施例中,将第二分类类型作为待标注语料的新分类标签,并在待标注语料上标注第二分类类型,得到新标注语料。
本实施例提供的基于主动学习的语料挖掘方法,通过获取未标注语料,利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型,从而根据至少两个语料分类模型输出的第一分类类型不一致的未标注语料中按照分类分数选择若干个作为待标注语料,这些待标注语料很有可能是现有语料为覆盖到的语料,从而有利于拓展设定技能相关的正样本语料,补充到相关设定技能的正样本语料库,拓展语料挖掘的覆盖面。进一步的,选取分类分数满足预设条件的待标注语料进行二次分类处理,减少二次分类处理的工作量,提高语料挖掘的效率。
为了更清楚地阐述本申请的技术方案,下面针对基于主动学习的语料挖掘方法的多个步骤进行进一步说明。
图3是本申请实施例提供的训练得到语料分类模型的方法流程图,如图3所示,在一实施例中,基于主动学习的语料挖掘方法还包括以下步骤:
200、基于预先配置的作为训练样本的冷启动语料对至少两个分类器进行训练,得到至少两个语料分类模型。
在一实施例中,语料分类模型可以通过以下步骤训练得到:
S2001、获取预先配置的、作为训练样本的冷启动语料。
冷启动语料是指对分类器进行初始训练时的语料,是给设定技能,如音乐技能初始化的若干条语料。冷启动语料可以是通过人工撰写方式得到的,也可以是通过机器编撰的方式得到。分类器是指用深度学习算法学习出来的预测语料属于哪个技能、意图或领域的分类器,在本实施例中,分类器可以是语料分类器和语义分类器等。
例如,通过人工撰写的方式给音乐技能初始化2000条冷启动语料,如:“播放音乐”、“来首好听的歌”、“我要听后来”、“刘德华的冰雨”、“放甄嬛传主题曲”等。为保证语料挖掘效果,冷启动语料应尽可能覆盖用户在使用中可能涉及到的意图,如,“播放”、“搜歌手”、“搜歌词”、“添加收藏”、“暂停”等。
在本实施例中,将若干条关于设定技能的语料作为正样本语料,将其余技能的语料作为负样本语料。如,将2000条初始化的音乐技能语料作为正样本语料,将其余技能,如天气、新闻和影视等技能语料作为负样本语料。将包含正样本语料和负样本语料的冷启动语料输入到至少两个分类器,对至少两个分类器进行训练,学习语料的正样本和负样本分类类型,得到至少两个分类器对应的语料分类模型。
在本实施例中,分类器包括支持向量机(Support Vector Machine,SVM)分类器、逻辑回归(Logistic Regression,LR)分类器和朴素贝叶斯(Navie Bayes,NB)分类器等至少两个二分类器。在对分类器进行训练时,可以通过采用Spark的可拓展的机器学习库(Machine Learnig lib,MLib)提供的应用程序接口(Application Program Interface,API)分别训练分类器,在训练分类器时,选择MLib提供的默认参数进行训练。
对于上述SVM分类器、LR分类器和NB分类器均是常见的分类器,其分类原理不再进行详细赘述。当然在其他实施例中,还可以采用其他的分类器对作为训练样本的冷启动样本进行训练和学习。
S2002、抽取冷启动语料的N-gram文本特征,并对N-gram文本特征进行筛选生成冷启动语料的N-gram字典。
N-gram算法的基本思想是通过一个大小为N的滑动窗口将文本内容进行切分,形成长度为N的字节片段序列,每个字节片段成为gram,然后再对全部的gram进行频度的统计,按照事先设定的阈值进行过滤,形成关键gram列表,该列表就是文本内容的特征向量空间,列表中的每一种gram均为一个特征向量维度。N-gram中的N为正整数,N-gram可以为1-gram、2-gram和3-gram等。
由于同一N-gram文本特征可能出现在冷启动语料的不同位置,例如,1-gram文本特征“放”,可能出现在如“放一首歌”语料的开头位置,也可能出现在如“播放音乐”语料的非开头位置。在本实施例中,在冷启动语料的开头位置和结尾位置分别添加开始标识符号“B”和结束标识符号“E”,以使得抽取到的文本特征具有一定的位置信息。
在一实施例中,抽取冷启动语料的N-gram文本特征包括以下实现方式:
基于预先添加到冷启动语料的开头位置和结尾位置的开始标识符号和结束标识符号,根据预设字节片段长度N逐段抽取得到冷启动语料的N-gram文本特征;其中,N为正整数,大于等于2。
在本实施例中,预先在每条冷启动语料的开头位置添加开始标识符号,在每条冷启动语料的结尾位置添加结束标识符号。在本实施例中,可以预先在每条冷启动语料的开头位置添加开始标识符号“B”,结尾位置添加结束标识符号“E”,如在冷启动语料“放一首歌”添加开始标识符号和结束标识符号,得到“B放一首歌E”。
当检测到开始标识符号时,确定开始标识符号所在的位置为该语料的开头位置,或者确定开始标识位置的下一字符位置为该语料的开头位置。当检测到结束标识符号时,确定结束标识符号所在的位置为该语料的结尾位置,或者确定结束标识位置的上一字符位置为该语料的结束位置。例如,当检测到2-gram文本特征“放”的前一字符为“B”,则可以确定该语料中的“放”字位于开头位置,当检测到2-gram文本特征“歌”的后一字符为“E”,则可以确定该语料中的“歌”字位于结尾位置。
分别抽取冷启动语料的1-gram、2-gram和3-gram文本特征,如表4所示。
表4语料“放一首歌”的N-gram文本特征
当然,在其他实施例中,还可以使用频次法、tf-idf(term frequency-inversedocument frequency,词频逆文本频率指数)特征、互信息方法、N-Gram、Word2Vec等方式提取冷启动语料的文本特征。
在一实施例中,步骤S2102中的对N-gram文本特征进行筛选生成冷启动语料的N-gram字典,可以包括以下步骤:
S2002-a、统计冷启动语料的N-gram文本特征的出现频次。
对于每一条作为训练样本的冷启动语料,抽取其对应的N-gram文本特征,得到冷启动语料的N-gram文本特征集合。
根据N-gram文本特征集合统计每个N-gram文本特征的出现频次,如1-gram文本特征“放”的出现频次为100次,1-gram文本特征“歌”的出现频次为500次,2-gram文本特征“一首”的出现频次为100次,3-gram文本特征“放一首”的出现频次为50次等。
S2002-b、筛选出出现频次在预设频次范围内的N-gram文本特征,得到冷启动语料对应的N-gram字典。
在本实施例中,将出现频次低于第一预设阈值和高于第二预设阈值的N-gram文本特征过滤掉,筛选出出现频次在预设频次范围的N-gram文本特征,得到冷启动语料的N-gram字典。N-gram字典,又名N-gram模型核心词典,是指出现频次在预设频次范围内的核心N-gram文本特征的集合。
S2003、记录N-gram文本特征在N-gram字典中对应的位置作为冷启动语料的特征表达。
N-gram字典可以通过数组的形式来表示,数组中的每一个元素代表N-gram字典中的每一个N-gram文本特征。N-gram字典中的每个元素的位置可以通过索引值来表示,例如,N-gram字典为3×3数组,分别用索引值1、2、3、4、5、6、7、8、9来表示N-gram字典每个N-gram文本特征的位置。
在本实施例中,获取每条冷启动语料的各个N-gram文本特征,并确定每个N-gram文本特征在N-gram字典中的位置。需要说明的是,若冷启动语料的某一N-gram文本特征在N-gram字典并没有对应的文本特征对应,则舍弃冷启动语料的该N-gram文本特征,无需记录。
例如,冷启动语料的1-gram文本特征“放”,则对应N-gram字典的第1个位置,用数字“1”来表示该位置,冷启动语料的1-gram文本特征“首”,则对应N-gram字典的第3个位置,用数字“3”来表示该位置,冷启动语料的2-gram文本特征“放首”,则对应N-gram字典的第57个位置,用数字“57”来表示该位置,依次类推,记录每条冷启动语料的N-gram文本特征在N-gram字典中对应的位置,得到每条冷启动语料的特征表达,其中,特征表达可以通过有序数组来表示,如有序的一维数组,该一维数组中的每个数字元素代表着该冷启动语料的N-gram文本特征在N-gram字典中对应的位置索引值。
S2004、基于特征表达采用可扩展机器学习库分别对至少两个分类器进行训练,得到至少两个语料分类模型。
将至少两个分类器分别连接到Spark的可扩展的机器学习库(Machine LearningLibrary,MLib)提供的应用程序接口(Application Program Interface,API),调用对应的参数和功能等,将冷启动语料的特征表达输入到至少两个分类器进行训练,得到至少两个语料分类模型,如进行训练的分类器为支持向量机(Support Vector Machine,SVM)分类器、逻辑回归(Logistic Regression,LR)分类器和朴素贝叶斯(Navie Bayes,NB)分类器,则训练得到的语料分类模型分别为SVM语料分类模型、LR语料分类模型和NB语料分类模型。
在一实施例中,步骤S220中的利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的第一分类类型和分类分数,可以包括以下步骤:
S2201、抽取未标注语料的N-gram文本特征,并对未标注语料的N-gram文本特征进行特征向量化得到未标注语料的特征向量。
在本实施例中,N-gram中的N为正整数,N-gram可以为1-gram、2-gram和3-gram等。分别抽取未标注语料的1-gram、2-gram和3-gram文本特征。在未标注语料的开头位置和结尾位置分别添加开始标识符号“B”和结束标识符号“E”,以使得抽取到的文本特征具有一定的位置信息。
抽取未标注语料的N-gram文本特征,并确定N-gram文本特征在N-gram字典中的位置,对未标注语料的N-gram文本特征进行特征向量化,得到未标注语料的特征向量,得到该未标注语料的N-gram特征向量。
例如,未标注语料为“放首音乐”,所抽取得到的N-gram文本特征分别为:1-gram文本特征:放、首、音、乐;2-gram文本特征:B放、放首、首音、音乐、乐E;3-gram文本特征:B放首、放首音、首音乐、音乐E。
确定未标注语料“放首音乐”的各个N-gram文本特征在N-gram字典中的位置,即对应的索引值,如表5所示:
表5未标注语料“放首音乐”的N-gram文本特征及其位置
将N-gram文本特征在N-gram字典中的位置进行特征向量化,得到未标注语料的特征向量,即[1,3,25,26,49,57,98,109,125,198,247,305,313]。
S2202、根据未标注语料的特征向量利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数。
将未标注语料的特征向量输入到至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型对该未标注语料输出的、进行分类的第一分类类型和分类分数。例如,将未标注语料“放首音乐”输入到SVM语料分类模型、LR语料分类模型和NB语料分类模型中,输出的分类分数分别为:0.98、0.95和0.96,输出的第一分类类型均为+,+和+,其中,“+”表示第一分类类型为正样本,“-”表示第一分类类型为负样本。
在一实施例中,步骤S230中的确定待标注语料的第二分类类型之后,还包括以下步骤:
S240、将新标注语料与冷启动语料作为新的训练样本,输入到至少两个分类器中,返回执行对至少两个分类器进行训练,得到至少两个语料分类模型的步骤。
在本实施例中,将上一轮语料挖掘得到的新标注语料和之前作为训练样本的语料,如冷启动语料作为新的训练样本输入到至少两个分类器中,重新训练分类器,返回执行步骤S200中的对至少两个分类器进行训练,得到至少两个语料分类模型的步骤,得到更新后的至少两个语料分类模型,利用更新后的语料分类模型对下一批未标注语料重复执行上述步骤S210至S230的步骤,完成下一轮的语料挖掘。如此类推,进行多轮迭代,提高语料挖掘的效率和准确率。
以上示例仅用于辅助阐述本公开技术方案,其涉及的图示内容及具体流程不构成对本公开技术方案的使用场景的限定。
下面对基于主动学习的语料挖掘装置的相关实施例进行详细阐述。
图4是本申请实施例提供的一种基于主动学习的语料挖掘装置的结构示意图,如图4所示,该基于主动学习的语料挖掘装置200可以包括:未标注语料获取模块210、第一分类类型得到模块220以及第二分类类型确定模块,其中:
未标注语料获取模块210,用于获取未标注语料;
第一分类类型得到模块220,用于利用至少两个预先训练好的语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;
第二分类类型确定模块230,用于选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型。
本实施例提供的基于主动学习的语料挖掘装置,通过利用预先配置好的冷启动语料训练好的至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型,选取出第一分裂类型不一致的未标注语料中按照分类分数选择若干个作为待标注语料,这些待标注语料很有可能是现有语料为覆盖到的语料,从而有利于拓展设定技能相关的正样本语料,补充到相关设定技能的正样本语料库,拓展语料挖掘的覆盖面。进一步的,选取分类分数满足预设条件的待标注语料进行二次分类处理,减少二次分类处理的工作量,提高语料挖掘的效率。
在一种可能的实现方式中,基于主动学习的语料挖掘装置200还可以包括:语料分类模型训练模块,用于基于预先配置的作为训练样本的冷启动语料对至少两个分类器进行训练,得到至少两个语料分类模型。
语料分类模型训练模块包括:冷启动语料获取单元、N-gram字典生成单元、特征表达得到单元以及语料分类模型得到单元;
其中,冷启动语料获取单元,用于获取预先配置的、作为训练样本的冷启动语料;N-gram字典生成单元,用于抽取冷启动语料的N-gram文本特征,并对N-gram文本特征进行筛选生成冷启动语料的N-gram字典;特征表达得到单元,用于记录N-gram文本特征在N-gram字典中对应的位置作为冷启动语料的特征表达;语料分类模型得到单元,用于基于特征表达采用可扩展机器学习库分别对至少两个分类器进行训练,得到至少两个语料分类模型。
在一种可能的实现方式中,N-gram字典生成单元包括:出现频次统计子单元和N-gram字典得到子单元;
其中,出现频次统计子单元,用于统计冷启动语料的N-gram文本特征的出现频次;N-gram字典得到子单元,用于筛选出出现频次在预设频次范围内的N-gram文本特征,得到冷启动语料的N-gram字典。
在一种可能的实现方式中,N-gram字典生成单元包括:文本特征抽取单元,用于基于预先添加到冷启动语料的开头位置和结尾位置的开始标识符号和结束标识符号,根据预设字节片段长度N逐段抽取得到冷启动语料的N-gram文本特征。
在一种可能的实现方式中,第一分类类型得到模块220包括:特征向量得到单元和第一分类类型得到单元;
其中,特征向量得到单元,用于抽取未标注语料的N-gram文本特征,并对未标注语料的N-gram文本特征进行特征向量化得到未标注语料的特征向量;第一分类类型得到单元,用于根据未标注语料的特征向量利用至少两个语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数。
在一种可能的实现方式中,第二分类类型确定模块230包括:未标注语料排序单元和待标注语料获取单元;
其中,未标注语料排序单元,用于对选取出来的第一分类类型不一致的未标注语料的分类分数进行相加,计算得到选取出来的未标注语料的总分数,依据总分数对选取出来的未标注语料进行降序排序;待标注语料获取单元,用于根据降序排序结果,获取排序靠前的若干个未标注语料作为待标注语料。
在一种可能的实现方式中,第二分类类型确定模块230包括:新标注语料得到单元和第二分类类型得到单元;
其中,新标注语料得到单元,用于按照待标注语料的属性进行二次分类标注,得到新标注语料;第二分类类型得到单元,用于将二次分类标注的结果作为新标注语料的第二分类类型。
在一种可能的实现方式中,语料挖掘装置200还包括:返回模块,用于将新标注语料与冷启动语料作为新的训练样本,输入到至少两个分类器中,返回执行对至少两个分类器进行训练,得到至少两个语料分类模型的步骤。
本实施例的基于主动学习的语料装置可执行本申请前述实施例所示的基于主动学习的语料方法,其实现原理相类似,此处不再赘述。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:提高语料挖掘的泛化性、拓宽语料的覆盖面,提高语料的挖掘效率。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例实现了能够提高语料挖掘的泛化性、拓宽语料的覆盖面,提高语料的挖掘效率。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备,如电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
获取未标注语料;
利用至少两个预先训练好的语料分类模型对未标注语料进行分类,得到至少两个语料分类模型输出的、针对未标注语料进行分类的第一分类类型和分类分数;
选取第一分类类型不一致、且分类分数符合预设条件的未标注语料作为待标注语料,对待标注语料进行二次分类处理,得到待标注语料的第二分类类型。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,未标注语料获取模块还可以被描述为“获取未标注语料的模块”。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。