APP下载

基于深度学习的网络不良文本识别分析研究

2021-08-15武梦旭

统计理论与实践 2021年7期
关键词:用词向量卷积

武梦旭

(燕山大学 理学院,河北 秦皇岛066004)

一、引言

识别网络不良文本问题的实质是文本分类问题,即将网络文本分为正常文本和不良文本两类,其中不良文本多是敏感性、攻击性、辱骂性的内容。对于不良文本信息的拦截过滤技术研究可以追溯到21世纪初,Denning[1]首次提出了垃圾信息过滤的概念,在邮件的接收过程中可以通过邮件内容判断邮件的紧急性,以保证邮件接收者及时处理紧急邮件。近年来,许多研究人员在社交媒体安全性研究方面取得了长足进步,对不良内容的过滤许多都是基于黑白名单、关键字、规则表达式和分类技术等方法。Njaji、Zhang等[2]利用与仇恨言论相关的主观性和语义特征,构建包含仇恨动词的词典来检测仇恨言论。Silva、Mondal等[3]根据句子结构提出一个基本表达式来检测Whisper和Twitter中的仇恨言论,并将这些仇恨言论通过人工标记划分细粒度。

随着自然语言处理技术的发展以及计算机性能的提高,深度学习网络模型逐渐应用到文本分类领域,凭借其高效的特征提取方法,能够有效的提升分类效果。卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)是深度神经网络的两个主要结构。Le、Botton等[4]在研究计算机图像处理时首次提出卷积神经网络,主要利用卷积核提取局部特征,效果优于当时其他技术。Socher、Huval等[5]利用矩阵和向量构建了一个循环神经网络(MV-RNN),通过该网络能够从任意句法类型和长短不一的句子中学习潜在的语义关系,每个句子生成长度一致的特征向量,实验结果显示相比传统机器学习算法其效果更好。Yang、Zhang等[6]基于两个前后连接的双向循环神经网络并结合注意力机制(Attention Mechanism)构建分层注意力网络模型,在单词层面和句子层面应用两个级别的注意机制对文本内容进行编码,取得较好的分类效果。

网络不良文本多由网民自主创造,具有灵活多变的特点。深度学习模型能自主地学习文本中的特征,可以有效地避免人工标准特征存在的不足,并且深度学习模型能通过不断的学习来适应文本的变化。

二、基于特征融合的BiLSTM模型

(一)模型总体设计

将词特征和语义特征结合,提出一种基于多特征融合的BiLSTM模型的网络不良文本分类方法,用于提高检测的性能,模型结构图如图1所示。该方法主要由三部分组成,第一部分是利用N-Gram进行文本词特征的向量表示,第二部分是使用Word2Vec模型提取深层语义特征,第三部分是将这两部分的特征向量拼接相融合并使用Softmax激活函数实现分类。

图1 多特征融合的BiLSTM模型结构图

1.词特征提取

选用语法特征作为词特征。N-Gram是一种基于统计语言模型的算法,对文本内容按照字节采取大小为N的滑动窗口操作,形成长度是N的字节片段序列,即将连续的N个词作为向量空间中的一个维度。忽视一个文本的词序、语法,句法,仅将其视为一个词集合,且假设文中的每个词的出现都是独立的,不依赖于其他词是否出现,则从一个句子中提取N个连续的单词,可以获取到词的前后信息。

N-Gram模型基于隐马尔科夫假设,各个词出现的概率乘积就等于整个句子出现的概率,各个词出现的概率可以直接通过语料统计计算得到。当一个词的出现只依赖于前一个词,概率计算公式如下:

如果一个词的出现仅依赖于它前面出现的两个词时,概率计算公式如下:

公式(1)和(2)中,n表示文本包含的词数量,每一个词用 wi表示,P(wi|wi-1)和 P(wi|wi-1wi-2)表示在文本中前1个词是wi-1和前2个词是wi-1、wi-2的条件下第i个词是wi的概率。

在对n值的选取上,n越大计算所依赖的词越多,可获得的信息量越多,对未来的预测就越准确,模型效果也越好。然而,考虑到网络不良文本中存在较多拼写错误和语法不规范问题,若n取值较大,可以获得下一个词更多的约束信息,但很容易出现训练集中没有的词,产生数据稀疏。若n取值较小,则在训练语料库中出现的次数更多,统计结果更可信。所以n取值不宜过大,可以取n值为2,选用Bi-gram提取文本词特征。

2.语义特征提取

采用结合Word2Vec预训练词嵌入的BiLSTM(Bi-directional Long Short-Term Memory)模型提取深层语义特征。首先,采用Word2Vec方法中的CBOW模型进行词向量的表示。其次,BiLSTM作为文本特征的映射器,将CBOW模型学习到的文本词向量输入BiLSTM模型的数据通道中,在forward层从前向后计算一遍,在backward层从后往前运算一遍,每个时刻结合forward层和backward层的相应时刻输出的结果,经过映射和激活函数的处理,将得到一组输出,并将其进行全连接处理,作为文本语义特征。

(1)Word2Vec

Word2Vec在语料集训练上主要分为CBOW(Continuous Bag-of-Word Model)和 Skip-Gram两种模式,结构如图2所示。其中CBOW是在NNLM的基础上去除前向反馈神经网络中的非线性隐层,直接将中间层与输出层连接,输入层输入词的One-Hot向量,隐藏层直接对输入的向量累加求和并取平均值的运算,输出层输出当前词的某个向量概率,向量概率最大的位置代表的单词为预测出的中间词,即CBOW是从上下文到当前词的某种映射或者预测,CBOW模型的目标函数是输出的真实中心词概率最大,计算公式为:

图2 CBOW和Skip-Gram模型结构示意图

公式(3)中,wt表示当前词汇,wt-c,wt-1,wt+1,…,wt+c表示与wt距离c个单位以内的词汇,通过相邻的c个词汇可以计算wt的概率分布,然后使用中间隐藏层进行均值计算得到词汇wt的词向量表示。Skip-Gram则是从当前词预测上下文,Skip-Gram模型的计算公式如下:

(2)BiLSTM

LSTM模型是RNN的一种变体,RNN存在梯度消失的问题且只有短期记忆。LSTM将短期记忆与长期记忆通过精妙的门控制结合起来,并且在一定程度上缓解了梯度消失的问题,LSTM结构图如图3所示。LSTM模型只使用了上文的信息,而没有考虑到下文的信息,而预测可能需要使用到整个输入序列的信息,BiLSTM是结合文本从前到后作为输入的LSTM和从后向前作为输入的LSTM组合而成,BiLSTM结构图如图4所示。

图3 LSTM结构图

图4 BiLSTM结构图

LSTM包括输入门、遗忘门、输出门三个“门”结构,通过对细胞状态中信息遗忘和记忆新的信息使得对后续时刻计算有用的信息得以传递,而无用的信息被丢弃,并在每个时间步输出隐层状态,遗忘门决定从细胞状态中丢弃信息,通过上一个细胞状态的输出和当前细胞的输入,使用Sigmoid函数输出一个在0到1之间的数值,1表示完全保留信息,0表示完全舍弃。其计算公式为:

输出门确定输出值。确定细胞状态的输出部分ot,然后对细胞状态进行过滤处理确定输入部分ht:

其中xt为t时刻的输入词向量,ht-1表示循环单元上一时刻的隐层状态,Wf,Wi,Wo,WC分别表示上一时刻输出值在遗忘门、记忆门、输出门、临时细胞状态更新中的权重系数,bf、bi、bo、bC表示遗忘门、记忆门、输出门、临时细胞状态的更新偏置量。

3.输出层

对本节模型的前两部分的中间层输出向量作拼接的静态融合,得到该模型的特征向量,包含了词和语义两种特征,然后进行协同训练使用Softmax激活函数将特征向量转化成概率,根据概率判断网络文本是正常文本或不良文本,其计算公式为:

(二)模型实验

1.数据采集及标注

通过网络爬虫的方式进行网络文本数据的采集。采用Scrapy框架在微博平台上获取相应数据,这个框架爬取数据的结构图如图5所示。

图5 微博数据爬取流程图

网络文本分析所需要的数据类型主要包括两部分:网络不良文本和网络正常文本。从微博社区管理中心的举报处理大厅收集来自人身攻击类、辱骂低俗类的微博。从微博首页收集正常微博,共搜集微博文本数据8000条,并对所有数据集按照8:2的比例分配给训练集和测试集。对于爬取到的微博文本数据,根据其是否为不良文本用0和1对其进行人工标记,其中不良文本标记为1,正常文本标记为0,实验数据见表1。

表1 文本分类实验数据表

2.文本预处理

微博搜集的文本存在噪音干扰大的问题,针对微博文本采取以下方法对文本数据集进行预处理,从而提高网络不良文本的识别精确度。

(1)去噪

构建正则表达式过滤html、url,去除@及用户名、情感符号和非中英文的字符,保留文本中的标签信息以及将繁体字转为简体字等。html和url对于判断文本是否属于不良文本没有任何实质作用,故过滤掉html和url;针对带有@及用户名的文本,需要排除用户名对文本的干扰,所以去除@及用户名;为了防止干扰,将特殊字符及非中英文的字符统一去除掉;针对带有“#标签#”的文本数据,如果仅去除符号#和标签内容,可能会影响微博用户所要表达的意思,因此保留文本中的标签内容。

(2)去除停用词

对于一些没有意义的词,例如“的、了、哦”和一些标点等,使用停用词词典进行去除。在互联网上中英文混用的现象非常普遍,而有些无意义的英文单词的出现也会对不良文本识别产生影响,因此也需要将英文停用词加入到停用词典中。本文使用的停用词词典是基于哈工大停用词词表构造的,在哈工大停用词词表的基础上增加英文停用词。哈工大停用词词表共含有768项中文、标点以及特殊字符,在此基础上增加英文停用词640项,新的停用词词典共1408项。

(3)分词

现在的中文分词工具有很多,本文使用基于结巴分词的工具来对微博文本进行中文分词。结巴分词工具中的自定义词典可以添加一些最新的网络热词以及缩略词,但是还有一些不良词汇及变体没有收录。因此,构建不良词汇词典,并将不良词汇词典添加到结巴分词工具的自定义词典中,实现对文本更准确的切分。

3.模型参数设置

模型中会有许多的超参数需要设置,不同超参数的设置会对模型的性能有不同的影响。对这些超参数论文进行基准值设定,超参数基准设定如表2所示。

表2 超参数基准设定值

4.评价标准

在对网络文本分类过程中,评价指标包括准确率(precision)、召回率(recall)和F1值。在对网络文本进行分类过程中,有可能会出现4种结果,模型预测结果如表3所示。

表3 模型预测结果

准确率表示在对网络文本进行分类的过程中,模型正确分类出来的网络不良文本数和预测出来的网络不良文本数的比值,准确率的计算公式如下:

召回率表示在对网络文本进行分类的过程中,模型正确分类出来的网络不良文本数和实际产生的网络不良文本数的比值,召回率的计算方式如下:

F1值是用来对精确率以及召回率进行调和的平均值。F1值是对模型的精确率和召回率进行综合的考虑,与精确率和召回率相比更能反应模型的分类效果。F1值的计算方式如下:

5.实验结果分析

为了避免实验结果出现偶然性,对于模型均采用十折交叉验证取平均值。

(1)对于传统的机器学习方法,使用朴素贝叶斯分类器和SVM分类器。

SVM的惩罚系数设为1000,径向基核函数参数设为0.001。

(2)Word2Vec-CNN模型:模型以Word2Vec模型作为词向量模型,然后把词向量输入到CNN模型,CNN利用不同大小的卷积核提取每条数据中词语的信息,多层CNN可以提取每条数据中的深层信息,然后通过Softmax对文本进行分类。对于CNN设置3、4、5三种高度的卷积核,卷积核个数设置为100。

(3)Word2Vec-LSTM模型:模型以 Word2Vec模型作为词向量模型,以LSTM模型对文本数据再次提取特征信息,最后通过Softmax对文本进行分类。

(4)Word2Vec-BiLSTM模型:模型以Word2Vec模型作为词向量模型,以BiLSTM模型对文本数据再次提取特征信息,最后通过Softmax进行分类。

在数据集上,各个模型的实验结果如表4所示。

表4 各模型实验结果对比

从实验结果可以看出本文提出的模型在网络网络文本数据集中的评价指标均优于其他模型,验证了本文模型在网络不良文本分类中的有效性。

实验数据显示,在数据相同的条件下,深度学习方法在准确率和召回率上相比于传统的机器学习方法均有较大的提高,验证了深度学习模型在网络不良文本分类上确实优于传统的机器学习方法。

在实验结果中,朴素贝叶斯和线性SVM模型的分类效果较差,原因主要在于特征选取的方式是以词频和逆向词频为主,文本中每个词出现的频率都较低,无法通过统计词频大小进行文本重要性的判断,所以在网络不良文本的分类中不占优势。

对比循环神经网络和卷积神经网络,在嵌入层输入矩阵组成相同的情况下,循环神经网络比卷积神经网络有一定的提高。由于网络文本存在长短不一的情况,卷积神经网络只能提取局部的信息,而没有关心上下文的相关性,循环神经网络的优势就会显现。

对比本文模型和Word2Vec-BiLSTM模型,本文模型在精确率、召回率和F1值上均有提高,原因在于本文模型使用的特征多了一个词特征,在网络文本分类的任务中,BiLSTM网络通过结合词特征和语特征就能较好地区分网络不良文本。

三、结语

本文对网络不良文本的特点做了相关分析,针对网络不良文本分类时特征提取不足导致分类精度不高的问题,将N-Gram提取的词特征和基于Word2Vec的BiLSTM提取文本语义特征融合,能有效避免文本信息损失,更好地提取文本信息。在数据集上实验并与其他分类方法进行对比,结果表明,特征融合分类方法比传统机器学习方法和单一特征提取的深度学习方法具有更好的网络不良文本分类性能和效果。◆

猜你喜欢

用词向量卷积
强化诗词用词的时代性
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
苍凉又喧嚣:《我与地坛》中的用词
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
相似的内容,灵动的表达
向量垂直在解析几何中的应用