自然语言文本情感分析

2023-05-30 06:27朱珍元张林静
电脑知识与技术 2023年1期
关键词:自然语言处理情感分析深度学习

朱珍元 张林静

摘要:该文简要介绍了自然语言处理领域中的文本情感分析,通过不同情感分析方法的对比,总结出目前文本情感分析的最佳策略是基于深度学习的预训练语言模型,最后总结出自然语言情感分析领域的发展趋势和有待深入研究的难点。

关键词:自然语言处理;情感分析;深度学习;语言模型

中图分类号:TP183        文献标识码:A

文章编号:1009-3044(2023)01-0038-03

1 前言

自然语言处理(NLP) 是人工智能领域非常重要的一个分支,而文本情感分析(Sentiment Analysis) 已经逐渐成为NLP的重要内容。自然语言处理的任务主要是研究人与计算机的交互问题,计算机既能够理解人类的自然语言文本的意义(一般称为自然语言理解),又能以自然语言文本的形式来表达给定的意图、思想等(一般称为自然语言生成)。基于算法,通过软件,实现机器的自动化处理,为人类提供有价值的结论。

NLP的主要子问题有文本挖掘、语音识别和生成、信息过滤、信息检索、问答系统、机器翻译等。其中文本情感分析属于文本数据挖掘。文本情感分析是带有情感色彩的主观性文本数据挖掘,目的是获取用户情感信息[1]。近年来,随着深度学习理论的不断发展和完善,基于深度学习的模型逐渐成为自然语言处理技术的主流研究方法[2]。

2 文本情感分析简介

文本情感分析的快速发展得益于论坛、微博、微信等社交媒体的快速发展,主要对用户的评论数据进行文本挖掘以确定用户对于某些特定主题的态度是积极的还是消极的。其主要内容包括主客观分类、情感分类、情感极性判断等,在信息检索、社交网络、推荐系统、舆情监控、虚假信息检测等领域有着广泛的应用。如文本情感分类能够在一定程度上解决网络评论信息杂乱的现象,能够帮助用户快速找到所需要的信息;电商网站根据评论数据挖掘用户的情感倾向,从而调整营销决策;在舆情监控方面,政府根据民众的留言信息挖掘其对某件事情的情感倾向,对一些负面情绪及时引导和干涉,避免突发事件发生。

情感分析的核心问题是情感分类,一般有二分类、三分类和多元分类,可以根据实际需要划分情感种类和设置情感词。除了情感分类还包括情感检索和情感抽取等子问题,可以对一篇文章、一个句子、一个短语或者一个词进行情感分析。文本情感分析的基本流程一般包括原始文本的获取、文本预处理、构建语料库和情感词典、构建情感分析模型、对模型进行训练、使用模型对文本进行情感分析、对分析结果进行评价完成模型测试、必要时还需要动态调整模型的参数以便训练出最佳学习模型。

3 基于情感词典的情感分析法

首先对文档进行分词,去除停用词及与情感无关的词;其次对分词结果进行分类,找出不同类型的词(情感词、程度副词、否定词),借助情感词典赋予相应的权重;然后根据权重汇总每一组情感词的得分,从而计算出整篇文档的情感得分;最后根据阈值将情感归于正向、负向或者中性[3]。其代码实现主要过程如图1所示。

首先对输入的文档采用jieba库进行分词,然后基于Boson情感词典,对三条文本实例评论计算情感得分,结果如图2所示。

第2条评论得分最高,情感最为积极;第3条得分最低,情感最为消极。基于情感词典的情感分析是最为简单的方法,但对情感词典的依赖较大,词典的完善程度对分析结果的准确性有很大影响。在今天这样的信息时代,每天都会产生新词淘汰旧词,每天去更新辞典不现实。而且该方法没有考虑词语之间的语义关系以及同样的词语在不同的语境有不同的含义,不能做到动态调整词语的情感值,导致分析结果准确率下降。因此,有更多的研究者开始着手基于机器学习的情感分析研究。

4 基于机器学习的情感分析法

首先构造一个模型,输入大量带有标签或者没有标签的语料信息,使用机器学习的算法对模型进行训练。情感分析中常用的机器学习算法有K-近邻(KNN) 、朴素贝叶斯(NB) 和支持向量机(SVM) 。

如基于机器学习中朴素贝叶斯分类算法的情感分析流程为:

1) 对事先准备好的语料进行分词。

2) 人工加上积极或者消极的标签作为特征。

3) 将带有标签的语料数据划分为训练集和测试集。

4) 构建朴素贝叶斯分类器也就是模型,并使用训练集进行训练,使用测试集测试并得出准确率。其主要代码为:

5) 输入数据对模型进行验证,输出文本的情感分类和概率值。

使用機器学习的方法对文本进行情感分类比起构建情感词典有一定的进步,分类效果较好。但对语料库的依赖较大,对语料库以外的领域文本进行分类可能会发生错判;另外还需要人工对语料库进行特征标记,人为主观因素可能会影响最后的结果。其次,机器学习需要依赖大量的数据,如果模型的效率不高,难以适应如今的互联网信息量指数式增长的时代,这类方法也不能充分利用上下文文本的语境信息,对最终情感分析结果的准确性会造成影响[1]。因此,为了解决这些问题,研究者开始着手基于深度学习的情感分析研究。

5 基于深度学习的情感分析方法

深度学习是机器学习的一个子集,是一门用于学习和利用“深度”人工神经网络的机器学习技术,主要算法模型包括卷积神经网络(Convolutional Neural Networks,CNN) 、循环神经网络(Recurrent Neural Networks,RNN) 和递归神经网络(Recursive Neural Networks,RNN) [4]。深度学习的快速发展得益于当今的信息爆炸,互联网每天指数级的数据增长能够为网络模型提供大量的数据进行学习。深度学习的核心思想就是通过数据驱动的方式,采用一系列的非线性变换,能够从原始数据中进行特征提取。随着深度学习的兴起,许多国内外的学者将深度学习技术应用于自然语言生成和自然语言理解方面的研究,并取得了一些突破性的成果。以深度学习为基础构建情感词典,或者借用已有的通用情感词典,自动标引训练语料,可以解决训练神经网络分类器中的训练语料不足的问题。

基于深度学习的情感分析流程一般都是先进行数据预处理,再构建神经网络学习模型,然后对模型进行训练和测试。

如使用sklearn库的情感分析流程为:

1) 读取带有标签的语料。

2) 样本数据向量化处理。

3) 构建网络模型,设置模型参数、输入输出的维度、输入词序列长度,类别数以及隐藏层的层数和隐藏层的神经元个数。

4) 对模型进行训练。

5) 对训练好的模型进行测试。

6) 对模型进行评价。

其评价代码为:

实验结果表明,通过sklearn库的情感分析模型的效果较好,但是仍然依赖特定的语料库,而且后续动态调整模型的参数对数据运算的效率有影响。

当下比较火热的是基于预训练模型的自然语言处理模型。所谓预训练模型指的是通过大量语料的输入和大量的算力提前给出的一个参数不随机的机器学习模型,通过在预训练模型中使用你所希望处理任务的目标语料对模型进行微调,就可以在多下游任务上取得非常良好的效果[5]。预训练模型有很多,而当下影响力最大的预训练语言模型是Transformer 的双向深度语言模型—BERT[6]。BERT能够有效地提取文本信息并应用于多种NLP任务,BERT模型有多个规模,其中的BERT_Base参数规模较小大概为110M。使用PyTorch包,基于具有12层Transformer的中文BERT_Base预训练模型完成文本情感分析[5],实验结果表明,基础的bert_base_uncased模型可以在BERT上达到约0.9的分类成功率,超越了一众传统的语言模型。

基于预训练语言模型的文本情感分析一般先采用深度学习的网络结合冻结和微调的技术构建训练好的模型,然后根据分析任务直接使用預训练模型,必要时进行微调,能够在很大程度上提高文本情感分析的效率。对预训练模型加微调模式使得模型的应用更为灵活,能够在很多任务上起到良好效果,有非常高的应用价值。预训练语言模型已成为NLP中的重要里程碑。

6 结论与展望

本文对自然语言的情感分析方法做了简单介绍和对比。基于情感词典的方法易于理解,但对特定情感词典的依赖性较大。机器学习的方法不依赖于人工搭建的情感词典,但是依赖于人工序列标注,也不能理解上下文的关系,影响准确性。深度学习能够充分利用上下文的信息,使用多层神经网络能够有效提取数据特征,学习性能更好。通过使用深度学习的预训练语言模型节省了开发时间,降低了使用难度,是目前最为实用的方法。

尽管深度学习在NLP各个子任务中取得了巨大成功,但若大规模投入使用,仍然有许多难点需要克服。如何缩小深度神经网络模型的大小且保持模型性能不变是未来的一个研究方向。随着各种新兴媒体的出现,有了大量的数据可以支持深度学习使用,如何在不同的语境中准确判断文本的情感对于分析和决策有至关重要的作用。目前还没有较好的技术处理自然语言中的反语;大部分情感分类仍然使用的是二分类:积极或者消极,对于多分类的情感分析还没有好的效果。怎样在预训练模型中加入情感的成分信息,从而引导模型学习更多的情感组合,实现更为准确和高效的文本情感分析也是未来有待深入研究的难点。

参考文献:

[1] 王颖洁,朱久祺,汪祖民,等.自然语言处理在文本情感分析领域应用综述[J].计算机应用,2022,42(4):1011-1020.

[2] 金国哲.基于深度神经网络的朝鲜语文本表示及情感分析研究[D].长春:吉林大学,2021.

[3] 肖刚,张良均.Python中文自然语言处理基础与实战[M].北京:人民邮电出版社,2021.

[4] Xie Y.Deep learning for natural language processing[J].Handbook of Statistics,2018,38:317-328.

[5] 吕云翔,刘卓然. Python深度学习实战——基于PyTorch[M].北京:人民邮电出版社,2021.

[6] Devlin J,Chang M W,Lee K,et al.BERT:pre-training of deep bidirectional transformers for language understanding[C]. NA ACL-HIT 2019:Annual Conference of the North American Chapter of the Association for Computational Linguistics,2019:4171-4186.

【通联编辑:代影】

猜你喜欢
自然语言处理情感分析深度学习
基于组合分类算法的源代码注释质量评估方法
在线评论情感属性的动态变化
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望