CN109299468A - 基于条件熵和卷积神经网络的短文本分类方法 - Google Patents
基于条件熵和卷积神经网络的短文本分类方法 Download PDFInfo
- Publication number
- CN109299468A CN109299468A CN201811250654.4A CN201811250654A CN109299468A CN 109299468 A CN109299468 A CN 109299468A CN 201811250654 A CN201811250654 A CN 201811250654A CN 109299468 A CN109299468 A CN 109299468A
- Authority
- CN
- China
- Prior art keywords
- short text
- neural networks
- convolutional neural
- word
- conditional entropy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Abstract
本发明公开了基于条件熵和卷积神经网络的短文本分类方法,涉及自然语言处理领域。包括以下步骤:S1、按照需求收集短文本,组成训练数据集;S2、将训练数据集按类别打好标签;S3、对训练数据集进行分词处理;S4、构造词向量模型;S5、计算所有词语的条件熵;S6、构造停止词词典;S7、去除不符合条件以及对分类影响较小的词语;S8、向量化所有短文本;S9、搭建卷积神经网络模型;S10、将向量化的训练数据集输入卷积神经网络模型;S11、不断的迭代、优化,最终得到效果最优的短文本分类器。本发明实现了对噪声词语的过滤以及过滤的准确性。
Description
技术领域
本发明涉及自然语言处理领域,具体涉及基于条件熵和卷积神经网络的短文本分类方法,适用于短文本分类。
背景技术
自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言。自然语言处理的目的就是让计算机能‘懂得’人类对它‘说’的话,然后去执行一些指定的任务。这些任务包括拼写检查,关键词搜索,意图识别,机器翻译,对话系统等。
意图识别就是让语义云系统能够识别出与用户输入最相关的信息,例如用户输入“来集仙剑奇侠传”时,我们知道“仙剑奇侠传”既有游戏又有电视剧还有新闻、图片等,如果我们通过用户意图识别发现该用户是想看“仙剑奇侠传”电视剧的,那我们直接把电视剧作为结果返回给用户,就会节省用户的输入次数,缩短搜索时间,大大提升用户体验。意图识别,简单说就是一种文本分类。文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。两种方法出自不同角度的研究者,训练集法更多的来自计算机或者人工智能领域,而分类表法更多的来自突出情报领域。基于训练集的文本分类方法有很多,比如决策树,KNN,SVM,朴素贝叶斯算法等。它们都存在一定的不足之处:决策树,如果我们视频领域数据比较多时,在决策树当中,信息增益的结果会偏向于视频领域;SVM对缺失数据敏感;KNN类别评分不规格化,计算量大;理论上讲,朴素贝叶斯模型相比其他分类算法具有较小的误差率,但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的。基于统计学习分类算法都是基于用一系列特征来描述文本的前提下进行的,但实际上文本是一种信息的载体,不仅仅由部分特征词组合而成,文本还包括了所有构成文本的词的信息,词组合后相互之间的顺序关系和上下文的信息。而所有的统计学习算法都忽视了除部分特征词之外的所有信息。
卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。近年来,由于卷积神经网络的结构特性和优异性能,也越来越多的将其应用于自然语言处理领域。
一般地,卷积神经网络的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征,一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
短文本的最大特点即是文本长度较短,单条短文本通常只包含十几个到几十个词语,很难准确抽取有效的语言特征。随着着深度学习的不断发展,单纯的基于统计的方法已经逐渐退出短文本分类领域。举个例子,仅使用朴素贝叶斯进行短文本分类时,只考虑了词语是否在短文本中出现,而不考虑词语间的先后顺序,导致分类精度较低;并且,在分类前不做任何特征选择,会使短文本向量化时维度过高,不但会影响分类精度,还会降低分类速度。
现有的短文本分类技术的主要缺点是没有对噪声词的过滤,即那些在很多句子中都出现过的词语对分类本身是没有任何帮助的,只会产生干扰,应该把他们过滤掉。
从某小学的学生中任选一个人称他的体重,其体重就为随机变量,也存在一个概率分布函数(不同的体重的出现概率不同);如果仅对身高为1.2-1.3米的学生抽样称其体重,就得到另外一个概率分布函数。相对于前一种概率分布,后者就是条件概率分布,条件就是“学生身高为1.2-1.3米”。根据条件概率,利用熵公式计算的信息熵称为条件熵。
如果以x表示学生体重,以y表示身高,以p(x∣y)表示身高为y时体重为x出现的概率,把熵公式应用到这个情况时显然会得到:
上面得到的是当y为一个特殊值时对应的熵,但考虑到y会出现各种可能值,因此想得到已知学生身高(不特指某一身高,而是泛指身高已经知道)的体重的熵(不确定程度),它应当是把前面公式中各种y的出现概率做加权平均,即:
H(x|y)=-∫∫f(y)f(x|y)logf(x|y)dxdy
这就是条件熵的一般计算公式,其中f是概率密度分布函数。上面的第二个公式是针对连续变量的,而这里我们要计算离散变量的条件熵,因此我们使用第一个公式。
特征的信息增益=系统的信息熵-特征的条件熵,从这个式子中我们可以得出,当系统的信息熵一定时,某个特征的条件熵越小,它的信息增益越大;它的信息增益越大,说明这个特征越有利于分类。因此,特征的条件熵越小,说明这个特征越有利于分类。
发明内容
本发明的目的是基于上述背景技术,使用条件熵和卷积神经网络来解决短文本分类问题。本发明使用条件熵衡量短文本中每个特征,即不同词语对分类的影响程度,再通过计算将“影响程度”转化为一个具体的值,选取前n个对分类最有利的特征,向量化后输入卷积神经网络模型进行迭代优化,得到一个短文本分类器。
具体的,本发明采取以下技术方案:基于条件熵和卷积神经网络的短文本分类方法,包括以下步骤:S1、按照需求收集短文本,组成训练数据集;
S2、将训练数据集按类别打好标签;
S3、对训练数据集进行分词处理;
S4、构造词向量模型;
S5、计算所有词语的条件熵;
S6、构造停止词词典;
S7、去除不符合条件以及对分类影响较小的词语;
S8、向量化所有短文本;
S9、搭建卷积神经网络模型;
S10、将向量化的训练数据集输入卷积神经网络模型;
S11、不断的迭代、优化,最终得到效果最优的短文本分类器。
进一步的技术方案是所:述步骤S3中,使用结巴分词器进行分词处理。中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。Jieba分词的输入是一句完整的用户输入,比如“我想看刘德华的电影”,输出就是一个一个的词,比如[‘我想看’,‘刘德华’,‘的’,‘电影’]。分词的目的是为了方便将句子向量化,使得机器能理解人的语言。
进一步的技术方案是:所述步骤S4中,使用工具包gensim中的Word2Vec()函数构造词向量模型。Word2vec的工作原理就是将jieba分词的结果向量化。Wor2dvec的输入是[[‘我想看’,‘刘德华’,‘的’,‘电影’],…],输出是每个词对应的向量。Word2vec的目的就是将结巴分词的结果,转化成机器能识别的向量。
进一步的技术方案是:所述步骤S9中,使用工具包tensorflow搭建卷积神经网络模型。TensorFlow是用数据流图(data flow graphs)技术来进行数值计算的。输入是每句话的词向量拼接,输出是每句话落在每个类别上的概率。使用tensorflow的目的是因为tensorflow可自行设计神经网络结构;不需要通过反向传播求解梯度,Tensorflow支持自动求导;支持卷积神经网络(CNN),循环神经网络(RNN),支持深度强化学习及计算密集的科学计算(偏微分方程求解)。
本发明与现有技术相比,具有以下的有益效果:本发明用条件熵来衡量一个词语在语料库中不同句子里出现的频繁程度,经测试,效果也确实比卡方检验、信息熵、TF-IDF等同类方法效果好。本发明使用条件熵量化了特征(词语)对于分类的重要程度;使用深度学习的方法(卷积神经网络)取代了传统的基于统计的分类方法;考虑了多种情况对于分类的影响,例如:卷积窗口宽度为2时考虑了两个词语组合在一起的情况,卷积窗口宽度为3时考虑了三个词语组合在一起的情况,因此本发明最大的优势在于,对噪声词语的过滤以及过滤的准确性。
附图说明
图1为本发明实施例流程示意图
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
参见图1所示,基于条件熵和卷积神经网络的短文本分类方法,包括以下步骤:
a)收集一定数量的短文本,最好使每个类别下属的短文数量接近相等,组成训练数据集。
b)将训练数据集人工分类后打上标签,例如:
其中,-1代表不属于此类,1代表属于此类,一个短文本可能既不属于类别a、又不属于类别b(噪音数据),当然,也有可能同时属于两个类。
c)对短文本进行分词处理,假设四个短文本分词后得到的四个列表为:
短文本A:[“a”]
短文本B:[“b”,“,”,“c”,“b”]
短文本C:[“a”,“c”,“。”]
短文本D:[“c”,“d”]
d)将分词后得到的四个列表存入同一个列表中,组成双层列表用于构造词向量模型。设置词向量长度为50,即每个词语对应的词向量大小为(1,50)。构造完成后要保存模型,便于后期使用。
e)按之前列出的公式计算每个词语的条件熵,而且在计算时需考虑平滑问题。接上例,词语a、b、c、d总共的短文本频次分为2、2、3、1,在类别A中的短文本频次分为1、0、1、1;计算词语b的条件熵时,会有这样一步:log2p(类别A|词语b)=类别A中出现词语b的短文本数量/总的出现词语b的短文本数量,此时相当于计算log20,会出现错误。因此,上述情况下,我们可以将词语b在类别A中的短文本频次调整为1,当然,在计算log2p(类别A|词语b)时,词语b对应的总的短文本频次也要加1。
f)选出没有实际意义的语气词、代词等构造停止词词典。
g)去除每条短文本分词后得到的列表中的非汉字词语、在停止词词典中的词语,再将超出条件熵阈值的词语舍弃(阈值自己设定):
假设b在停止词词典中,d的条件熵太大超过阈值
短文本A:[“a”]<=>[“a”]
短文本B:[“b”,“,”,“c”,“b”]<=>[“c”]
短文本C:[“a”,“c”,“。”]<=>[“a”,“c”]
短文本D:[“c”,“d”]<=>[“c”]
h)将文本向量化:经过上面的步骤后,选取剩余词语数最多的句子,用它的剩余词语数量*单个词向量长度,设置这个值为每条短文本的标准向量化长度,使用之前构造的词向量模型向量化每条短文本,长度不足的在末尾补0:
单个词向量长度为50
短文本A:[“a”]<=>词向量(1,50)+补0(1,50)=(1,100)
短文本B:[“c”]<=>词向量(1,50)+补0(1,50)=(1,100)
短文本C:[“a”,“c”]<=>(1,100)
短文本D:[“c”]<=>词向量(1,50)+补0(1,50)=(1,100)
i)卷积神经网络的架构为:卷积层-激活层-池化层-全连接层。其中,卷积层设置四个不同的窗口,宽度为2、3、4、5,长度均为50,每次向下移动一个长度;它们分别对输入进行特征浓缩后,为了防止梯度爆炸或消失,再将所得结果通过激活层;池化窗口的宽度根据卷积层所得结果的宽度来定,它的窗口要覆盖整个激活层所得结果,即只取出一个最“耀眼”的特征用于分类;最终,将四组结果连接到一起,输入全连接层,得到落在每个分类的权值。权值小于0即视作-1,大于0则视作1,这就是最终分类结果。
j)将向量化的数据输入卷积神经网络:输入数据时,要将向量化的数据维度由(输入的短文本数量,标准向量化长度)转化为(输入的短文本数量,剩余词语数最多的句子对应的词语数,单个词向量长度)后,再输入卷积神经网络进行训练。
k)优化、迭代:训练神经网络时,要设置多个条件熵阈值进行实验,根据精度选出最佳阈值,再用它进行后续的分类任务。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (4)
1.基于条件熵和卷积神经网络的短文本分类方法,其特征在于,包括以下步骤:S1、按照需求收集短文本,组成训练数据集;
S2、将训练数据集按类别打好标签;
S3、对训练数据集进行分词处理;
S4、构造词向量模型;
S5、计算所有词语的条件熵;
S6、构造停止词词典;
S7、去除不符合条件以及对分类影响较小的词语;
S8、向量化所有短文本;
S9、搭建卷积神经网络模型;
S10、将向量化的训练数据集输入卷积神经网络模型;
S11、不断的迭代、优化,最终得到效果最优的短文本分类器。
2.根据权利要求1所述的基于条件熵和卷积神经网络的短文本分类方法,其特征在于:所述步骤S3中,使用结巴分词器进行分词处理。
3.根据权利要求1所述的基于条件熵和卷积神经网络的短文本分类方法,其特征在于:所述步骤S4中,使用工具包gensim中的Word2Vec()函数构造词向量模型。
4.根据权利要求1所述的基于条件熵和卷积神经网络的短文本分类方法,其特征在于:所述步骤S9中,使用工具包tensorflow搭建卷积神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811250654.4A CN109299468A (zh) | 2018-10-25 | 2018-10-25 | 基于条件熵和卷积神经网络的短文本分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811250654.4A CN109299468A (zh) | 2018-10-25 | 2018-10-25 | 基于条件熵和卷积神经网络的短文本分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109299468A true CN109299468A (zh) | 2019-02-01 |
Family
ID=65158729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811250654.4A Pending CN109299468A (zh) | 2018-10-25 | 2018-10-25 | 基于条件熵和卷积神经网络的短文本分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299468A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297888A (zh) * | 2019-06-27 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于前缀树与循环神经网络的领域分类方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070219798A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Training system for a speech recognition application |
CN103678274A (zh) * | 2013-04-15 | 2014-03-26 | 南京邮电大学 | 一种基于改进互信息和熵的文本分类特征提取方法 |
CN106021929A (zh) * | 2016-05-23 | 2016-10-12 | 天津师范大学 | 基于子类问题分类能力度量的Filter特征选取方法 |
CN107273358A (zh) * | 2017-06-18 | 2017-10-20 | 北京理工大学 | 一种基于管道模式的端到端英文篇章结构自动分析方法 |
CN107391483A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于卷积神经网络的商品评论数据情感分类方法 |
CN108573047A (zh) * | 2018-04-18 | 2018-09-25 | 广东工业大学 | 一种中文文本分类模型的训练方法及装置 |
-
2018
- 2018-10-25 CN CN201811250654.4A patent/CN109299468A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070219798A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Training system for a speech recognition application |
CN103678274A (zh) * | 2013-04-15 | 2014-03-26 | 南京邮电大学 | 一种基于改进互信息和熵的文本分类特征提取方法 |
CN106021929A (zh) * | 2016-05-23 | 2016-10-12 | 天津师范大学 | 基于子类问题分类能力度量的Filter特征选取方法 |
CN107273358A (zh) * | 2017-06-18 | 2017-10-20 | 北京理工大学 | 一种基于管道模式的端到端英文篇章结构自动分析方法 |
CN107391483A (zh) * | 2017-07-13 | 2017-11-24 | 武汉大学 | 一种基于卷积神经网络的商品评论数据情感分类方法 |
CN108573047A (zh) * | 2018-04-18 | 2018-09-25 | 广东工业大学 | 一种中文文本分类模型的训练方法及装置 |
Non-Patent Citations (2)
Title |
---|
R. KUMAR 等: "An SVM classifier incorporating simultaneous noise reduction and feature selection: illustrative case examples", 《PATTERN RECOGNITION》 * |
杨凯艳: "基于改进的TFIDF关键词自动提取算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297888A (zh) * | 2019-06-27 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于前缀树与循环神经网络的领域分类方法 |
CN110297888B (zh) * | 2019-06-27 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种基于前缀树与循环神经网络的领域分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595632B (zh) | 一种融合摘要与主体特征的混合神经网络文本分类方法 | |
Athiwaratkun et al. | Probabilistic fasttext for multi-sense word embeddings | |
CN107526785B (zh) | 文本分类方法及装置 | |
CN110222163B (zh) | 一种融合cnn与双向lstm的智能问答方法及系统 | |
CN107944559B (zh) | 一种实体关系自动识别方法及系统 | |
Sundararajan et al. | Multi-rule based ensemble feature selection model for sarcasm type detection in twitter | |
CN111414461B (zh) | 一种融合知识库与用户建模的智能问答方法及系统 | |
CN107025284A (zh) | 网络评论文本情感倾向的识别方法及卷积神经网络模型 | |
CN107301246A (zh) | 基于超深卷积神经网络结构模型的中文文本分类方法 | |
WO2019080863A1 (zh) | 文本情感分类方法、存储介质及计算机 | |
CN110097060B (zh) | 一种面向树干图像的开集识别方法 | |
CN108804677A (zh) | 结合多层级注意力机制的深度学习问题分类方法及系统 | |
CN103824054A (zh) | 一种基于级联深度神经网络的人脸属性识别方法 | |
CN110297888A (zh) | 一种基于前缀树与循环神经网络的领域分类方法 | |
Wang et al. | Human peripheral blood leukocyte classification method based on convolutional neural network and data augmentation | |
Wu et al. | Chinese text classification based on character-level CNN and SVM | |
CN110569920A (zh) | 一种多任务机器学习的预测方法 | |
CN108509421A (zh) | 基于随机游走和粗糙决策置信度的文本情感分类方法 | |
CN113593661A (zh) | 临床术语标准化方法、装置、电子设备及存储介质 | |
CN115952292B (zh) | 多标签分类方法、装置及计算机可读介质 | |
CN108875034A (zh) | 一种基于层次化长短期记忆网络的中文文本分类方法 | |
Bayram et al. | What’s in a word? Detecting partisan affiliation from word use in congressional speeches | |
Narayanan et al. | A study on the approximation of clustered data to parameterized family of fuzzy membership functions for the induction of fuzzy decision trees | |
CN108268461A (zh) | 一种基于混合分类器的文本分类装置 | |
Lauren et al. | A low-dimensional vector representation for words using an extreme learning machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190201 |
|
RJ01 | Rejection of invention patent application after publication |