一种改进的前缀树与循环神经网络结合的领域分类方法技术

技术编号:23149940 阅读:15 留言:0更新日期:2020-01-18 13:48
本发明专利技术公开了一种改进的前缀树与循环神经网络结合的领域分类方法,通过新增用户数据,重新训练RNN模型以及重构前缀树,然后根据真实用户请求,重新设计领域分类算法结构,最后优化了前缀树特征的权重计算方法。成功的解决了领域分类的性能问题,并提高了分类的正确率。

An improved domain classification method based on prefix tree and recurrent neural network

【技术实现步骤摘要】
一种改进的前缀树与循环神经网络结合的领域分类方法
本专利技术涉及自然语言处理
,尤其涉及一种改进的前缀树与循环神经网络结合的领域分类方法。
技术介绍
自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向。它的研究可以实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。自然语言处理的目的就是让计算机能‘懂得’人类对它‘说’的话,然后去执行一些指定的任务。这些任务包括拼写检查,关键词搜索,意图识别,机器翻译,对话系统等。对于我们语义云项目而言,自然语言处理就是实现人与电视机之间利用自然语言进行有效的沟通交流,即对用户的输入进行有效的意图识别,并做出相应的回复。意图识别就是让语义云系统能够识别出与用户输入最相关的信息,例如用户输入“我想看刘德华”时,我们知道“刘德华”既是演员又是歌手,如果我们通过用户意图识别发现该用户是想看“刘德华”这个演员演的电影,而不是想听“刘德华”这个歌手唱的歌,那我们直接把“刘德华”演的电视剧作为结果返回给用户,就会节省用户的输入次数,缩短搜索时间,大大提升用户体验。意图识别,简单说就是一种文本分类。文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。人工神经网络是模拟人脑神经系统的基本组织特性构成的新型信息处理系统。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activationfunction)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。神经网络技术的这些特点可以很好的克服传统文本分类算法的缺点,但是一般的神经网络无法对时间序列上的问题进行建模,然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对了适应这种需求,就出现了另一种神经网络结构——循环神经网络RNN。为了克服循环神经网络模型在训练过程中,受数据不均衡的影响,又引用了前缀树,来对一些具有明显特征的数据进行分类,Trie树,又称字典树、前缀树,是一种树形结构,是哈希树的变种,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。这个基于前缀树与循环神经网络的领域分类方法在项目的实践中发现,性能不理想,80tps,压测2小时,500ms超时,也会出现1500+条超时的。
技术实现思路
语义云项目服务终端是电视,搜集的数据是电视用户请求,上亿的数据,句式,内容各不相同,但是总结在一起,都在我们支持的领域中。如果不分领域,数据就会依次走完整个系统,这样系统响应时间就会增加。因此我们想到一个方案就是对用户数据进行领域分类,根据领域调用不同的接口,这样可以大大减少系统响应时间,提高系统性能。语义云项目中需要分类的领域高达50多个,传统的基于统计学习的分类算法,依靠特征词分类,而忽略了词与词之间的上下文关系,而循环神经网络(RNN)能利用数据上下文之间的关系,克服了传统方法的不足。但是RNN有一个缺点,受数据不均衡的影响。因为50多个领域,而其中VIDEO,TV,MUSIC领域的数据占绝大部分,其他领域数据占比很少,所以利用循环神经网络进行领域分类,分为VIDEO,TV,MUSIC和OTHER共4个领域。对于OTHER领域数据少,特征明显,再结合前缀树,前缀树不仅可以解决大部分领域的分类,而且不受数据不均衡的影响。因此完美的解决了语义云项目50多个领域,上亿数据的领域分类。项目实践表明,采用前缀树与循环神经网络的结合的领域分类算法,来实现50+个领域的分类,正确率能达到96%左右,但是带来一个问题就是性能较差,所以有待优化改进。针对上述问题,本专利提出了一种改进的前缀树与循环神经网络结合的领域分类方法。本专利技术通过以下技术方案来实现上述目的:一种改进的前缀树与循环神经网络结合的领域分类方法,包括以下步骤:第一步、构建循环神经网络模型1.新增各领域的数据,从2W条增加到8W条,构成训练数据集;2.将训练数据集按领域打好标签,即分类;3.构造词向量模型,把训练数据集进行中文分词处理,利用word2vec对分词文本进行训练,得到词向量模型;4.向量化文本,利用训练好的词向量模型训练文本,得到向量化的文本数据;5.搭建循环神经网络模型,将向量化的训练文本输入模型,将输出通过softmax函数激活后,输出模型最终的分类;6.得到了分类结果以后,计算模型的损先即loss,然后采用BPTT算法不断的优化模型,即最小化loss,就这样不断的迭代、优化,最终得到效果最优的文本分类器。第二步、构建前缀树1.新增用户数据,用于提取更多特征构建前缀树;2.将训练数据集按领域打好标签,即分类;3.首先从每一类的数据中选择具有明显领域特征的名词,领域之间无重复的特征,比如“机票”是指FLIGHT领域,以类为名字存为特征文本一;然后再从每一类的数据中选择属于各领域特征的动词和名词,领域之间特征可重复,比如“我想听”,可以是MUSIC,CHRADIO等多个领域,“关闭音量”,可以是TV,SMARTHOME等领域,以类为名字存为特征文本二;4.搭建前缀树模型,分别将特征文本一输入前缀树模型,构造前缀树1,命名trie_1,将特征文本二输入前缀树模型,构造前缀树2,命名trie_2;第三步:文本类别预测(主要的优化部分,包括优化领域分类结构,分类算法)1.Trie_1:文本输入Trie_1,如果有领域则输出,否则下一步;2.Video_pro:文本,包括所有没有领域的输出的文本,合并之前的单独处理的VR,TVIMAGE,FIGURE领域数据,去掉动词,集数等,去redis查询,有领域则输出,否则下一步;3.Special_pro:文本输入该方法,该方法包含一些正则表示式,因为项目实践表明正则表达式耗时长,严重影响性能,所以比优化前,减少了很多,如果有领域则输出,否则下一步;4.Trie_2:将待测文本,全分词(即任何两个及两个以上相邻的字都分为一个词),所有词组成一个列表。将列表中的词分别输入Trie_2,输出可能存在的多个领域,接下来按照权重计算,优化后的特征权重计算公式:其中t表示属于某个领域的特征词总的个数,li表示第i个特征的长度,αi表示第i个特征的加权系数(当特征的首或者尾是整个文本的首或者尾,αi为0.8,否则αi为0.5),所属领域的权重大,则属于该领域,否则进入下一步;5.RNN:将文本分词按字分词,然后通过训练好的词向量,向量化文本,将向量化后的文本输本文档来自技高网
...

【技术保护点】
1.一种改进的前缀树与循环神经网络结合的领域分类方法,其特征在于,包括以下步骤:/n步骤1、构建循环神经网络模型;/n步骤2、构建前缀树;/n步骤3、文本类别预测:包括优化领域分类结构,分类算法。/n

【技术特征摘要】
1.一种改进的前缀树与循环神经网络结合的领域分类方法,其特征在于,包括以下步骤:
步骤1、构建循环神经网络模型;
步骤2、构建前缀树;
步骤3、文本类别预测:包括优化领域分类结构,分类算法。


2.如权利要求1所述的一种改进的前缀树与循环神经网络结合的领域分类方法,其特征在于,所述步骤1具体为:
1.1搜集用户数据,组成训练数据集;
1.2采用one-hot编码,将训练数据集人工分类后打上标签;
1.3构造词向量模型,把训练数据集进行中文分词处理,利用word2vec对分词文本进行训练,得到词向量模型;
1.4向量化文本,利用训练好的词向量模型训练文本,得到向量化的文本数据;
1.5搭建循环神经网络模型,将向量化的训练文本输入模型,将输出通过softmax函数激活后,输出模型最终的分类;
1.6模型训练:得到了分类结果以后,计算模型的损失,即loss,然后采用BPTT算法不断的优化模型,即最小化loss,就这样不断的迭代、优化,得到最优的循环神经网络模型。


3.如权利要求1所述的一种改进的前缀树与循环神经网络结合的领域分类方法,其特征在于,所述步骤2具体为:
2.1新增用户数据,用于提取更多特征构建前缀树;
2.2将训练数据集按领域打好标签,即分类;
2.3首先从每一类的数据中选择具有明显领域特征的名词,领域之间无重复的特征,以类为名字存为特征文本一;然后再从每一类的数据中选择属于各领域特征的动词和名词,领域之间特征可重复,以类为名字存为特征文本二;
2.4搭建前缀树模型,分...

【专利技术属性】
技术研发人员:刘楚雄代秀琼
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1