一种基于深度学习的中文文本情感分析方法与流程

文档序号:17548586发布日期:2019-04-30 18:03阅读:365来源:国知局

一种基于深度学习的中文文本情感分析方法,用于对中文文本情感分析,属于自然语言处理技术领域。



背景技术:

文本情感分析是指判断文本的情感倾向。

语言模型是用来计算一个句子的概率,判断一个句子是否合理。

rnn是循环神经网络,一种用于处理序列数据的神经网络。

lstm是长短期记忆网络,是rnn特殊的类型,可以学习长期依赖信息。

gru是门控循环单元,lstm变体,简化了lstm模型结构。

在现有的中文文本情感分析中,大多采用中文字符进行文本分类,通过中文字符进行分类,情感分类预测准确率低;而所采用的方法大多是基于词典或机器学习的分类方法,需要耗费大量的人工构建词典或标注数据,而与本提案最接近的方法,是基于英文的无监督情感分析方法,文献为“alecradford,rafaljozefowicz,llyasutskever.learningtogeneratereviewsanddiscoveringsentiment”,该方法首先预训练基于lstm的字符级语言模型,然后进行迁移学习,即利用预训练的语言模型得到文本特征,每句文本的特征,即句向量是采用该句最后一个字符的向量表示,然后在此基础上添加softmax分类器,进行情感分类。但存在如下不足之处:

1)首先该方法无法在中文上实现情感分析;

2)其次该语言模型训练耗时,模型网络参数较多,预训练语言模型需要耗费大量时间;

3)最后该方法只利用每句文本的最后一个字符作为该句文本的特征表示,而最后一个字符的字向量并不能代表整句文本,会降低对每句文本的情感分类准确率。



技术实现要素:

针对上述研究的问题,本发明的目的在于提供一种基于深度学习的中文文本情感分析方法,解决现有技术中基于英文的无监督情感分析方法的不足之处:(1)该方法无法在中文上实现情感分析;(2)该方法中语言模型训练耗时,模型网络参数较多,预训练语言模型需要耗费大量时间;(3)该方法只利用每句文本的最后一个字符作为该句文本的特征表示,而最后一个字符的字向量并不能代表整句文本,会降低对每句文本的情感分类准确率。

为了达到上述目的,本发明采用如下技术方案:

一种基于深度学习的中文文本情感分析方法,其特征在于,如下步骤:

步骤1、将获取语料文本转换为拼音后,预训练构建好的语言模型,得到预训练后的语言模型;

步骤2、获取与语料文本同领域的、少量带情感类别标签的文本数据,将文本数据中的文本转换为拼音后,基于预训练后的语言模型,训练构建好的情感分类模型,得到训练好的情感分析模型;

步骤3、利用训练好的情感分析模型,对未标注文本进行情感分类,得到对应的情感类别标签。

进一步,所述步骤1中构建好的语言模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层四层,其中嵌入层将每个数字表示的字符映射为嵌入大小维度的字向量,然后将得到的字向量输入gru网络层,得到文本序列编码,最后输入到输出层,利用激活函数softmax,预测下一个字符。

进一步,所述步骤1的具体步骤为:

步骤1.1、数据获取

爬取语料文本;

步骤1.2、数据预处理

将语料文本中的中文文字转换为拼音,并以字符为粒度,先去掉语料文本中的低频字符,去掉低频字符后将剩余的字符去重,并映射为数字索引,得到字符与数字索引的映射字典,再利用映射字典将语料文本表示为数字形式,得到预处理后的文本数据,文本字符数为n;

步骤1.3、以步长为1,从预处理后的文本数据的开始将语料文本进行划分,划分后得到多个包含k个字符的序列长度文本,序列长度文本的前k-1个字符作为模型输入x,最后一个字符作为该模型输出y,得到整个输入样本x和输出样本y,输入样本数为n-k+1,n为语料文本字符数;

步骤1.4、对于输入样本x与输出样本y,按照比例0.1-0.5,划分为训练集和验证集,然后按照分批的大小划分训练集,分批作为构建好的语言模型的输入,同时采用多类交叉熵作为构建好的语言模型的损失函数,adam作为构建好的语言模型优化器,迭代多次,直到验证集损失小于1.0,得到预训练后的语言模型。

进一步,所述步骤2中构建好的情感分类模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层,网络前三层的模型参数采用预训练后的语言模型的网络参数,即可通过网络前三层得到每个字符的编码,对于每条文本,对其所有字符编码求平均得到平均编码、求最大值得到最大编码、以及该条文本中最后一个字符的编码,作为该条文本的向量表示,然后输入到输出层,利用激活函数sigmoid,得到情感二分类模型,即构建好的情感分类模型。

进一步,所述步骤2的具体步骤为:

步骤2.1、数据获取

获取与语料文本同领域的文本数据,标记文本数据的情感类别,得到标记数据,样本数为m,包含文本与文本所对应的情感类别标签两列,其中情感类别为正面和负面;

步骤2.2、数据清洗

对于标记数据中的文本,首先将文本转换为拼音,然后根据预训练后的语言模型中的映射字典,将拼音字符映射为数字索引,然后计算每条文本的长度,取其最大值,再将所有长度小于最大值的长度的文本以0填补,使得所有文本长度相同;

步骤2.3、将数据清洗后的文本作为输入样本x’,标记数据中的情感类别标签作为输出样本y’;

步骤2.4、对于输入样本x’与输出样本y’,按照0.1-0.5的比例,将其划分为训练集与验证集,然后按照分批的大小划分训练集,分批作为模型输入,同时采用二分类交叉熵作为构建好的情感分类模型的损失函数,adam作为构建好的情感分类模型的优化器,迭代多次,验证集损失小于0.5,得到训练好的情感分类模型。

进一步,所述步骤3的具体步骤为:

步骤3.1、对于未标记的文本数据,只包含一列文本,将其中的中文字符转化为拼音,作为输入j;

步骤3.2:输入j到训练好的情感分析模型,进行情感分类的预测,得到情感类别标签。

本发明同现有技术相比,其有益效果表现在:

一、本发明所采用的方法将中文文本转化为拼音,然后进行建模,即语言模型和情感分析模型,在模型中融合了中文的发音,增加了模型的信息量,在建模策略上,采用预训练语言模型,然后迁移语言模型的部分网络结构与参数,并添加sigmoid层,对于训练后续的情感分类模型,不需要用到太多的标签数据,即可达到对大量的无标签文本较好的预测效果,不易造成过拟合,跟现有的词典或机器学习分类方法对中文或英文进行情感分类相比,提升了情感分类预测准确率,在基于中文文本的情感分析中,传统的机器学习分类方法使用少量的标签数据,对大量样本的预测准确率只有85%,而本案中的预测准确率为90%;

二、本发明采用gru构建语言模型,简化模型参数,从而缩短训练时长,提升了预训练语言模型的效率;

三、本发明克服了以每条文本句最后一个字符的向量代表整句文本,并不具有可靠性的问题,采用拼接该句所有字符的平均向量,最大向量以及最后一个字符的向量,作为每句文本的特征表示,提升情感分类模型预测准确率。

具体实施方式

下面将结合具体实施方式对本发明作进一步的描述。

而本案所采用的方法首先是对中文的情感分析,同时模型的输入并不是采用中文字符,而是将中文转换为拼音进行情感分析;其次构建语言模型采用gru模型(即gru网络层),gru简化了lstm的模型结构,能够在提升训练效率的同时,达到与lstm同等的模型效果;最后在提取每句文本的特征时,对该文本句所有字符的字向量求平均得到mean_coding,对所有的字向量求最大值,得到最大编码max_coding,并结合该文本句的最后一个字符编码,作为该文本句的特征表示,然后进行最后的情感分类。具体如下:

一种基于深度学习的中文文本情感分析方法,如下步骤:

步骤1、将获取语料文本转换为拼音后,预训练构建好的语言模型,得到预训练后的语言模型;具体步骤为:

步骤1.1、数据获取

爬取语料文本;

步骤1.2、数据预处理

将语料文本中的中文文字转换为拼音,并以字符为粒度,先去掉语料文本中的低频字符,去掉低频字符后将剩余的字符去重,并映射为数字索引,得到字符与数字索引的映射字典,再利用映射字典将语料文本表示为数字形式,得到预处理后的文本数据,文本字符数为n;

步骤1.3、以步长为1,从预处理后的文本数据的开始将语料文本进行划分,划分后得到多个包含k个字符的序列长度文本,序列长度文本的前k-1个字符作为模型输入x,最后一个字符作为该模型输出y,得到整个输入样本x和输出样本y,输入样本数为n-k+1,n为语料文本字符数;

步骤1.4、对于输入样本x与输出样本y,按照比例0.1-0.5,划分为训练集和验证集,然后按照分批的大小划分训练集,分批作为构建好的语言模型的输入,同时采用多类交叉熵作为构建好的语言模型的损失函数,adam作为构建好的语言模型优化器,迭代多次,直到验证集损失小于1.0,得到预训练后的语言模型。其中,构建好的语言模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层四层,其中嵌入层将每个数字表示的字符映射为嵌入大小维度的字向量,然后将得到的字向量输入gru网络层,得到文本序列编码,最后输入到输出层,利用激活函数softmax,预测下一个字符。

步骤2、获取与语料文本同领域的、少量带情感类别标签的文本数据,将文本数据中的文本转换为拼音后,基于预训练后的语言模型,训练构建好的情感分类模型,得到训练好的情感分析模型;具体步骤为:

步骤2.1、数据获取

获取与语料文本同领域的文本数据,标记文本数据的情感类别,得到标记数据,样本数为m,包含文本与文本所对应的情感类别标签两列,其中情感类别为正面和负面;

步骤2.2、数据清洗

对于标记数据中的文本,首先将文本转换为拼音,然后根据预训练后的语言模型中的映射字典,将拼音字符映射为数字索引,然后计算每条文本的长度,取其最大值,再将所有长度小于最大值的长度的文本以0填补,使得所有文本长度相同;

步骤2.3、将数据清洗后的文本作为输入样本x’,标记数据中的情感类别标签作为输出样本y’;

步骤2.4、对于输入样本x’与输出样本y’,按照0.1-0.5的比例,将其划分为训练集与验证集,然后按照分批的大小划分训练集,分批作为模型输入,同时采用二分类交叉熵作为构建好的情感分类模型的损失函数,adam作为构建好的情感分类模型的优化器,迭代多次,验证集损失小于0.5,得到训练好的情感分类模型。其中,构建好的情感分类模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层,网络前三层的模型参数采用预训练后的语言模型的网络参数,即可通过网络前三层得到每个字符的编码,对于每条文本,对其所有字符编码求平均得到平均编码、求最大值得到最大编码、以及该条文本中最后一个字符的编码,作为该条文本的向量表示,然后输入到输出层,利用激活函数sigmoid,得到情感二分类模型,即构建好的情感分类模型。

步骤3、利用训练好的情感分析模型,对未标注文本进行情感分类,得到对应的情感类别标签。具体步骤为:

步骤3.1、对于未标记的文本数据,只包含一列文本,将其中的中文字符转化为拼音,作为输入j;

步骤3.2:输入j到训练好的情感分析模型,进行情感分类的预测,得到情感类别标签。

实施案例

爬取网贷之家存管平台的新闻作为语料文本(包括文字和标点符号等),语料文本为10万条;

将10万条语料文本中的中文文字转换为拼音,并以字符为粒度,去掉语料文本中出现次数少于10次的低频字符,去掉低频字符后将剩余的字符去重,并映射为数字索引,得到字符与数字索引的映射字典,再利用映射字典将语料文本表示为数字形式,得到预处理后文本数据,文本字符数为n;

以步长为1,从预处理后的文本数据的开始将语料文本进行划分,序列长度为64的句子,划分后的句子前63个字符为模型输入x,最后一个字符作为该模型输出y,划分完语料文本,得到多个序列长度句子(即序列长度文本,包含k个字符),得到整个输入样本x和输出样本y,输入样本或输入样本数为n-k+1。

构建语言模型,得到构建好的语言模型,构建好的语言模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层四层,其中嵌入层将每个数字表示的字符映射为512维的字向量,然后将得到的字向量输入具有512个隐藏神经元的gru网络层,得到文本序列编码,最后输入到输出层,利用激活函数softmax,预测下一个字符。

对于输入样本x与输出样本y,按照比例0.2,划分为训练集和验证集,对于训练集,以256个输入样本和输出样本分批,分批作为构建好的语言模型的输入,同时采用多分类交叉熵作为构建好的语言模型的损失函数,adam作为构建好的语言模型优化器,迭代多次,验证集误差达到1.0,得到预训练后的语言模型。

获取与语料文本同领域的300条文本数据,人工标记文本数据的情感类别,得到标记数据,包含文本和与文本相对应的情感类别标签两列,其中情感类别为正面和负面;

对于标记数据中的文本句,首先将文本转换为拼音,然后根据预训练后的语言模型中的映射字典,将拼音字符映射为数字索引,然后计算每条文本句的长度,计算标记数据中所有文本的长度,取其最大值,再将所有长度小于最大值的长度的文本句以0填补,使得所有标记文本长度相同,即完成数据清洗;

将数据清洗后的文本句作为输入样本x’,标记数据中的情感类别标签作为输出样本y’;

构建情感分类模型,得到构建好的情感分类模型,构建好的情感分类模型采用rnn网络结构,包含输入层、嵌入层、gru网络层以及输出层,网络前三层的模型参数采用训练好的语言模型的网络参数,即可通过网络前三层得到每个字符的编码,对于每条文本句,对其所有字符编码求平均得到平均编码、求最大值得到最大编码、以及该条文本句中最后一个字符的编码,作为该条文本句的向量表示,然后输入到输出层,利用激活函数sigmoid,得到情感二分类模型,即构建好的情感分类模型。

对于输入样本x’与输出样本y’,按照0.2的比例,将其划分为训练集与验证集,对于训练集,以256个样本分块,分批作为模型输入,同时采用二分类交叉熵作为构建好的情感分类模型的损失函数,adam作为构建好的情感分类模型的优化器,迭代20次,验证集准确率达到0.93,得到最终模型sentment_model。

对于未标记的文本数据6万条,只包含一列文本句,将其中的中文字符转化为拼音,作为输入j;

输入j到训练好的情感分析模型,进行情感分类的预测,得到情感类别标签。

以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1