文章目录
3. sentiment analysis pre-processing(情感分析预处理步骤)
强调了情感分析的任务很多,文章给出了研究问题的图示(图1)。图1里包括的内容包括:
- 主观性分类
- 情感极性分类(基于aspect的情感分类,上下文极性消歧,情绪评级预测,跨域情绪分类,跨语言情感分类)
- 情绪摘要
- 情绪可视化
- 讽刺检测
- 实体,意见持有人和时间提取
- 词义消歧
- 情感词典生成
- 情感研究和检索
- 垃圾邮件检测
因此,作为信息检索领域的情感分析,除了观点摘要、隐式/显式特征提取等问题外,还面临着NLPs尚未解决的问题,如否定处理、讽刺检测等。
常用的情感分析下图所示,从各种格式的资源中转换为文本,通过NLP方法进行处理。处理步骤包括:文本预处理、特征提取和特征选择。分类步骤可以使用不同的情感分析方法进行。
3.1 Data extraction(数据提取)
3.1.1 数据收集和提取
获取文本数据,一般通过网络爬虫或者是第三方数据。可以从社交媒体,评论网站(电子商务网站或者专业的评论网站),博客,论坛,访谈记录(可以是口头谈论的书面记录,或者是音频和视频记录中完成)
利用相关工具来创建生成相关数据,通过一些API,免费可用的公开数据集,网络爬虫,crowdsourcing(众包服务)。
3.2 数据预处理
一般从社交媒体中获取的数据一般是非结构化的,含有大量噪声和拼写或语法错误,所以要对文本进行清洗和预处理,更重要的是降低输入数据的维度,因为一些词是无用的,应该被删除,他不会对该文本的极性产生任何影响(如冠词,介词,标点符号等)。针对不同的预处理和NLP任务的部分公开可用工具如下表所示。
常用的python处理包有:NLTK,TextBlob(完成诸如标记化、词性标注等NLP任务)
经过研究人员的整理,再次过程中涉及的共同任务有:
- Tokenization(标记化):该步骤将文本分解成更小的元素,命名为标记(例如,文档转换成句子,句子转换成单词);
- Stop words removal(停用词去除)
- Part-of-Speech(post)tagging(词性标记):该步骤识别文本的不同结构元素,如动词、名词、形容词和副词
- Lemmatization(词形还原):词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单词。词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单词
预处理步骤中可能会信息额外的处理和清理步骤,例如扩展缩写和删除重复字符,如Iiiiiiike中的I。所以为了更好地情感分析,需要进行两个基本的步骤,特征提取和特征选择。
3.3 特征提取
特征提取(FE)或者是特征工程师情感分析过程中的一个基本任务,他直接影响情感分类的性能。其目的是提取描述文本重要特征的有价值的信息(例如表达情感的词曲),当然在情感分析中用到了一些重要特征有:
- 词汇出现和词频:最简单的特征表示方法,常用语信息检索和情感分析(n-gram方法,TF-IDF方案)
- 词性标记:在给定语言中标识该词功能的标签或注释。一般来说,单词可以分为几个词类(如名词、动词、冠词、形容词、介词、代词、副词、连词、叹词等)。例如"This camera is good"这句话会被标注为斯坦福对数线性Part-Of-Phase Tagger7:This (限定词DT ),Camera (名词NN ),is (动词VBZ ),good (形容词JJ )。一些情感分析方法依赖于形容词,因为形容词是意见的重要指标。
- 观点词和短语:观点词是常用于表达积极或消极情感的词(例如,好的和美好的为积极情绪,坏的和可怕的为消极情绪) [ 105 ]。除了很多形容词外,还有名词、动词、一些常用短语、成语等也可以在不使用评价词的情况下表达观点和情感
- 否定词:也称为意见转一次,指可能改变观点倾向,逆转情感极性的词,例如:not,never,none,nobody,nowhere,neither,connot这些常见的否定词。但是这些单词一般会在停用词李彪中,并在预处理阶段被剔除,所以在进行处理否定词需要小心,并不是每一个否定词的出现都会导致否定
情感分析的文本一般是文本格式,需要将输入的文本转化为适合分类算法的固定长度特征向量。这种文本表示一般基于词袋模型(BoW)和向量空间模型(VSM)。一把来说,文本表示算法使用关键词集合。基于这些预定义的关键词,特征提取算法计算文本中的词语权重,然后形成一个数字向量,该数字向量就是文本的特征向量(其实也就是在一定维度下,用一组向量来唯一表示一个词),一些典型的文本表示技术:
3.3.1 词袋模型(BoW)
最简单的模型。没有考虑词和词之间的排列顺序,句子结构以及语法构造,只是单纯的考虑了词语出现的次数,所以他丢失了句子之间的信息。
考虑如下两个句子:
S1:the camera of this phone is awesome.
S2:I want this phone:it is all about the camera.I love it.
通过构建一个词汇表如下图,然后将一个句子编码为一直单词词汇表长度的定长向量,其中向量中每个位置的值表示训练集中每个单词的计数或频率。词频-逆文档频率( Term Frequency-Inverse Document Frequency,TF-IDF )是词频-逆文档频率的扩展,也是一种简单有效的方法。
3.3.2 分布式表示方法(word embedding 词嵌入)
- word2vec:利用浅层神经网络学习单词分布式表示(词嵌入 word embedding),分为CBOW和Skip-Gram,分别是从上下文预测当前词和从当前词预测上下文。
- Global vector(Glove):通过聚合来自语料库的全局词-词共现矩阵生成词向量,其结果表示词向量空间的有趣线性子结构。GloVe模型的优点是可以在更多的数据上快速训练,因为实现可以并行化
当然也有很多新的传统词嵌入方法,如Doc2vec,FastText等,然而,传统的词嵌入方法学习的词分布是独立于任何特定任务的。对于情感分析,可以利用情感词典等可用资源对分布进行增强。
3.4 特征选择
一个特征可以是不相关的、相关的和冗余的。为了去除无关和冗余的特征,各种特征选择( Feature Selection,FS )方法被使用。FS是从特征列表中识别并剔除过多的、不相关的特征以减小特征维度空间大小的过程,有助于提高情感分类的准确率。
特征选择一般分类基于词典的方法和统计方法。前者通常是人为收集,在此过程中通过收集具有强烈情感的属于来构建一个小的特征集。这种方法的优点是有效,但是耗时较长,例如SentiWordNext8词库。对于统计方法来说,也是常用的特征选择方法,但是无法将携带情感的特征与不携带情感的特征分开。
统计方法通常分为4类,filter approach,wrapper approach,embedded approach,and hybrid approach(过滤,包装,嵌入,混合)
- Filter approach(过滤方法):最常见的特征选择方法。它在不使用任何机器学习算法的情况下,基于训练数据的一般特征进行特征选择。根据一些统计方法并对其选择最高排名的特征。优点是:过滤方法计算开销比较小,适用于特征数量较高的数据集常用方法包括信息增益,卡方,文档频率,互信息等。
- Wrapper approach(包装方法):该方法依赖于机器学习算法,根据所应用的机器学习算法的结果性能评估特征子集,通过特定的建模算法识别出性能最佳的特征集。包装方法是学习算法(朴素贝叶斯或者是SVM)和特征子集生成策略(例如forward or backward selection)
- Embedded approach(嵌入式方法):在建模算法中融入特征选择过程。它使用包含自身内置能力的分类算法来选择特征,因此,与包装器方法相比,它在计算上是高效的。但是他是针对应用学习算法。常用的嵌入式算法为决策树算法。
- Hybrid approach(混合方法):该方法是过滤器和包装器方法的结合,混合方法通常具有较高的性能和精度,并利用组合方法的优势。许多混合特征选择方法被提出用于情感分析。
4.情感分析技术
情感分析方法在大多数文献中分为三类:机器学习方法、基于词库的方法(使用情感词典)和混合方法,下图给出了情感分析的概要
4.1 机器学习方法
需要训练集和测试集,通过ML的方法对情感极性进行分类。其中可以分为监督学习、无监督学习、半监督学习和强化学习。对于有无标签的情况,分别采用监督学习或者是无监督学习。半监督学习一般用于包含一些已标记样本的未标记数据集。 讲话学习可以利用试错机制帮助智能体与周围环境进行交互,已获得最大累计回报。故机器学习算法可已得到很好的分类结果,但这需要很大的训练数据集才能达到很好地性能。在特定数据集上并不如其他领域。
4.1.1 监督学习
需要带标签的训练文档,其中的标签一般是情感分类(积极,消极,中立)。监督学习分类线性、概率、基于规则和决策树四类。
(1)线性方法
- 支持向量机(SVM):非概率房内器,通过寻找到一个最佳分类超平面,一个有效的分离意味着该超平面离任一一类训练点具有最大间隔,较大的间隔提高了模型的鲁棒性。一般通过混合方法如SVM+朴素贝叶斯或者SVM+决策树可以得到很好结果,单独使用机器学习的方法进行文本分类,SVM精度最高。
- Artificial Neural Network(ANN):我个人的理解就是神经网络。
(2)概率方法
通过预测一个组类的概率分布,他们通常基于贝叶斯定理。概率分类器易于实现,计算速度快,并且不需要大量的训练数据。但是如果数据不满足分布假设,分类性能有时会变差,常用概率分类器都是基于贝叶斯定理,它依赖于