情感分析器的研究现状

情感分析器的研究现状,第1张

情感分析自从2002年由Bo Pang提出之后,获得了很大程度的研究的,特别是在在线评论的情感倾向性分析上获得了很大的发展,目前基于在线评论文本的情感倾向性分析的准确率最高能达到90%以上,但是由于深层情感分析必然涉及到语义的分析,以及文本中情感转移现象的经常出现,所以基于深层语义的情感分析以及篇章级的情感分析进展一直不是很大。情感分析还存在的一个问题是尚未存在一个标准的情感测试语料库,虽然Bo Pang实验用的**评论数据集以及Theresa Wilson等建立的MPQA是目前广泛使用的两类情感分析数据集,但是并没有公认的标准加以确认。

目前研究主要集中于情感词的正面负面分类,标注语料,情感词的提取等。

由于语料缺乏,前期若使用到情感分析,建议暂时使用SnowNLP(此模块主要使用淘宝评论语料)做情感挖掘,但不仅仅为单纯调用,需要优化,下面是一些实践思考:

可在此基础上优化,比如文本需要特别处理,除了平常的去停用词外,还可以需要对输入的文本结合词性等进行处理。

下面是一些常识:

一)无情感的词语(如去停用词,去掉语气词,无词性标签的词语)

二)对于文本过长,则可以考虑提取关键词或抽取文本摘要后再提取关键词

对于后者实践结果差异明显:

以"发布了头条文章: 《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显 "为例子, 显然该文本为“积极”文本。

1)s = SnowNLP("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")

得分为05,明显不符合

2)s = SnowNLP(“ ”join(jiebaanalysetextrank("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")))

而对于文本特别长的,则可以先抽取摘要,再对摘要提取关键词。

这主要由于此SnowNLP主要用贝叶斯机器学习方法进行训练文本,机器学习在语料覆盖上不够,特征上工程处理不当会减分,也没考虑语义等。

为何要考虑语义层面:

以“ 苏宁易购,是谁给你们下架OV的勇气” 中的“ 下架”其实才是中心词(为表达愤怒的文本),但“ 勇气 ”为下架的宾语(其为积极的文本),此句应该结果小于05,但实际为088,去掉“苏宁易购”则为06>

7 第五章语义 第一节语义性质 1 语义是人的思维活动和情感活动的结果,语义是语言的意义是语言形式的内容。在语言里,语素、词、 词组、句子等各级单位都有意义它们的意义都是语义。 2 语义包含理性意义即思想和非理性意义即情感两个方面。 3 语言形式类型:语汇、语法 4 词汇意义:由语汇形式表达的语义。语法意义:由语法形式表达的语义。 5 语言形式所表达的意义有一般与个别、稳定与临时的分别。在通常情况下都能够存在的意义有一般的、 稳定的,在特定的上下文、特定的交际场合中或特定的知识背景下才能出现的意义是个别的临时的。 6 语言意义(语义) :一般的稳定的意义是语言形式本身所表达的意义。 7 语境意义:个别的临时的意义这是语言在特定的交际场合和知识背景等语境因素作用下所表达的意义。 8 语言学中语义研究:一般而言是以语义为研究对象的语义学研究。 9 语义性质概括性、模糊性和民族性 第二节词义结构 1 词:音义结合的语言单位,词义是指词的语音形式所表达的内容。词的意义包括词汇意义和语法意义。 2 词义是人们对一定对象的概括反映,但这种反映在揭示事物本质的程度上有深有浅。 3 词义分理性意义与非理性意义。 4 词的理性意义分类通俗意义、科学意义。通俗意义即人们对事物所具有的一组非本质特征的反映。科学 意义即人们对事物本质特征的反映。 5 词的非理性意义分感情色彩、语体色彩、形象色彩。 6 词的形象色彩:由词内部的组成成分所吸引的对事物视觉形象或听觉形象的联想。 7 义素:语音学中一个音位可以进一步分解为若干个区别特征,现代语言学中把义项进一步分析为一束更 小的语义构成成分的集合,这种由分析义项得到的词义的语义特征叫做义素(语义成分、语义原子) 8 义素分析的基本方法:对比法。 9 义素分析步骤:3 个①确定对比的范围②比较词义的异同③整理和描写。 10 义素分析结果整理应从两方面着手:1 加进某些符号来表示分析结果。2 如果某对义素具有非此即彼的 对立关系,应只取其中一个义素,并在前面加上正负号来表示这对义素,而不必吧两个对立的义素都列出 来。 11 义素在语义研究语法研究中的作用: 1 义素分析可以清楚简洁地说明词义的结构,便于比较词义之间的异同,便于揭示近义词、反义词 等词义的关系,有利于词义研究、学习和掌握。 2 有助于说明词语组合的语义限制条件。 3 可以使语义的描写形式化,这种形式化的语义知识便于用计算机来处理因而对包括机器翻译、人 机对话等在内的自然语言的计算机处理有重要意义。 第三节词义的聚合 1 相关性:词义所反映的客观对象并不是孤立存在的而是同周围的其他客观对象互相联系,互相存在的。 2 相似性:不同客观对象可能具有某些相同或相近的特征,通过这些特征它们之间可以建立起某种联系。 4 语义场:词义有一定的系统性。一个词的意义(义项)同邻近的其他词义可以建立起各种关联,从而处 于互相依存、互相规定、互相制约的关系之中。场(field)此概念是从物理学中借过来的,它原指一个范 围,在这个范围中某些物质相互关联相互作用。语义场是指若干具有共同的类属义素的词语(义项)构成 的聚合体,类属义素是指反映事物所属类别的语义特征。 5 语义场的特点 1 最重要系统性, (系统性也程度有差别)2 层次性 6 语义场对词义研究和语言间语义对应关系的研究的意义: 1 它以系统的观念来看待词汇意义,而不是孤立的研究单个的词义变化,它从词义的相互关联中去 探讨词义的内涵及其发展演变 2 可以为义素提供一个分析的基础。 3 为词义体系的建立提供了一种可供选择的理论和途径。 4 为认识不同语言之间的语义对应关系提供了一种可以利用的手段和框架。 第四节语义 1 句子是形式和意义的统一体。语言形式所表达的意义分两类 1 语言意义(即由语言形式本身所表达的意 义)2 语境意义(即在特定语境下产生的意义) 2 句子语言意义可根据表达形式的不同分三部分 1 词汇意义、2 关系意义、3 语气意义 3 词语之间的关系意义可分为语法关系意义和语义关系意义。 4 语法结构关系: 词语在一定的语法结构中形成的相互关系。 (而由这种关系所赋予的意义即语法关系意义) 比如主谓结构关系所赋予的意义是陈述。动宾是涉及。偏正是修饰或限定。并列是平等。再比如:改良品 种这个线性序列存在着两种不同语法关系意义 1 是偏正结构赋予的修饰限定。2 是动宾赋予的涉及。 5 语义结构关系:词语在组合中产生的语义上的关系,它是一定的现实关系的概括和反映。 (有这种结构赋 予的意义就是语义关系意义) 6 语气意义:人们平常在使用句子进行交流时吧,总抱有一定目的, (或向他人述说一件事情,或向他人提 问,或想要求他人做某件事情,或是要抒发某种情感, )反映说话人使用句子的目的和说话人情绪的意义即 语气意义! 7 语义之间的关系意义包括语法关系意义和语义关系意义,它们分别由语法结构关系和语义结构关系所赋 予。句子中语法结构关系是语法学的研究对象。 8 句子语义结构: 1 述谓结构:从语义结构上看,一个句子包括情态和命题两部分。情态部分包括时态、语态、语气等 方面的意义,情态以外的部分便是命题。一个命题在语义结构上可以进一步分析为一个述谓结构,一个述 谓结构由一个谓词和若干个变元组成。A 在一个句子中谓词是处于支配地位的核心成分(一个谓述结构可 以由多少个变元以及可以有何种性质的变元都是由谓词的语义规定的)B 根据谓词和变元间的不同语义关 系可以把变元分为若干个类型,这种类型即语义角色。 2 述谓结构类型:1 简单~~2 复合~~3 从属~~4 降级~~ A 简单述谓结构:有的述谓结构由一个谓词和若干个变元构成,其中所有变元都只是名词性成分而不 是述谓结构。 B 从属述谓结构:有的述谓结构中的变元本身也是一个述谓结构这种充当其他谓词变元的谓述结构。 C 降级谓述结构:谓述结构的变元可以带有修饰或限定的成分,以表示变元某些方面的特征,充当这 类成分的述谓结构。 D 复合述谓结构:有的述谓结构由两个或两个以上相对独立的述谓结构按照一定的语义关系复合而成 的。 9 语义指向:句子的语义结构还包括语义指向的内容。句子中某个成分在语义指向哪儿。或者说同哪个或 哪些成分发生语义联系即此成分的语义指向。 10 句义之间的两种重要关系:蕴含、预设。 11 语义学研究的蕴涵关系:即就话语本身所表达的意义而言的蕴含关系,这种蕴含关系通常可以从句子本 身的意义推知而不必依赖特殊的背景知识。 12 预设: 它与蕴含一样也是就话语本身而言的也是有句义甲就必有句义乙但蕴含包含在句子的断言范围内, 是句子的基本信息;而预设不在句子范围之内,是句子的背景信息。 13 歧义:即同一形式的语言符号序列可能表达不同的意义现象。 14 歧义分类:1 词汇歧义 2 组合歧义(又分语法结构歧义和语义结构歧义) 第六章文字 1 字符:即文字符号,是文字的最基本单位,也就是直接跟某种语言单位相联系的符号吧,如汉字的“字” 和拼音文字的字母。 2 文字字符分类:意符、音符、记号 3 字符分类:单纯字符和复合字符 4 文字类型:词语文字、语素文字、音节文字、音位文字(辅音音位文字、全音音位文字) 5 文字与语言的关系:文字是语言的书写符号系统,文字是在语言的基础上产生的,是记录语言的工具, 而不是语言本身。(文字与语言有密切关系,但文字不等于语言,在文字和语言间不能划等号。 6 语言对文字的影响 1 文字是书写语言的符号系统,是在语言的基础上产生的,因此,应该说文字的特点和语 言的特点是有一定联系的,特别是选择什么样的语言单位作为字符代表的对象跟不同语言固有的特点是有 一定联系的。汉字在语音上代表一个音节,这跟汉字产生初期汉语的词语绝大多数是单音节的特点显然是 分不开的。 2 文字的类型会影响语言之间的相互影响,因为在现代汉语社会里语言之间的影响主要是 通过书面语进行的,文字类型相同会促进这种影响,而文字类型不同会在不同程度上阻碍这种影响,文字 对语言的的影响是有限的,无限夸大文字对语言的影响是没有根据的。 3 现在说的文字的种种神奇作用,归根结底都是语言本身,包括口语和书面语的作用,并 不是作为语言的书写符号系统的文字的作用,是混淆文字和语言,特别是混淆文字和书面语的结果。 7 世界最古老的三种文字:苏美尔文字、古埃及文字、中国甲骨文字。 8 汉字起源和演变:汉字的起源可以说还是一个没有完全弄清楚的问题。从原始文字发展到成熟的文字, 需要一个相当长的过程,所以汉字的起源应该远远早于距今三四千年左右的商代后期。 汉字文字学传统上把单纯字符称为独体字。汉字是除了苏美尔楔形文字和古埃及文字以外影响最大,并且 是唯一到今天还在继续使用的自源文字。 9 文字创制:在此即现代社会里为没有文字的语言创制文字特别是政府或语言学家为还没有文字的民族创 制文字。 (我国从 20 世纪 50 年代起为侗苗

本次实验将加载两个数据,一个是已经标注好的用户评论数据,另外一个是用户评价主题句,通过标注过的用户评论数据进行基于集成模型的情感极性模型训练,然后利用模型对主题句进行情感极性推理,最后通过数据聚合可视化得出主题情感极性。

使用 Pandas 加载在线数据表格,并查看数据维度和前 5 行数据。

数据属性如下表所示

加载我们之前通过主题词典提取出来的主题句。

数据属性如下表所示

用户评论分词

jieba 分词器预热,第一次使用需要加载字典和缓存,通过结果看出返回的是分词的列表。

批量对用户评价进行分词,需要一些时间,并打印第一行情感极性训练集的分词结果。

批量对用户评价主题句进行分词,并打印第一句用户主题句分词结果。

依据统计学模型假设,假设用户评论中的词语之间相互独立,用户评价中的每一个词语都是一个特征,我们直接使用 TF-IDF 对用户评价提取特征,并对提取特征后的用户评价输入分类模型进行分类,将类别输出为积极的概率作为用户极性映射即可。

用户评论向量化

TF-IDF 是一种用于信息检索与数据挖掘的常用加权技术,当某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,比较适合对用户评论中的关键词进行量化。

数据集合划分

按照训练集 8 成和测试集 2 成的比例对数据集进行划分,并检查划分之后的数据集数量。

我们在系列实验的开始使用朴素贝叶斯模型来训练情感分析模型,下面我们新增逻辑回归模型作为对比模型。逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习方法,在线性回归的基础上,套用了一个 sigmod 函数,这个函数将线性结果映射到一个概率区间,并且通常以 05 分界线,这就使得数据的分类结果都趋向于在 0 和 1 两端,将用户评论进行向量化之后也可以用此方式预测用户情感。本实验直接对标注过的用户情感数据进行训练,并验证单一模型和集成模型在情感分析性能上的差异。

模型加载

通过传入原始的标签和预测的标签可以直接将分类器性能进行度量,利用常用的分类模型评价指标对训练好的模型进行模型评价,accuracy_score 评价被正确预测的样本占总样本的比例,Precision 是衡量模型精确率的指标,它是指模型识别出的文档数与识别的文档总数的比率,衡量的是模型的查准率。Recall 召回率也称为敏感度,它是指模型识别出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率,表示正样本在被正确划分样本中所占的比例,f1_score 值是精确率与召回率的调和平均数,是一个综合性的指数。

我们分别对不同模型使用相同的数据集进行训练和测试,以此来比较单模型之间的差异,并打印模型运行时间供大家参考,批量处理不同的模型需要一些时间进行计算,清耐心等待。

通过求得的指标进行模型评价,我们发现使用相同的数据进行模型训练,朴素贝叶斯模型和逻辑回归模型性能基本持平,相差很微弱,逻辑回归稍稍占一些优势。

Stacking 堆栈模型训练

集成学习是地结合来自两个或多个基本机器学习算法的优势,学习如何最好地结合来自多个性能良好的机器学习模型的预测结果,并作出比集成中的任何一个模型更好的预测。主要分为 Bagging, Boosting 和 Stacking,Stacking 堆栈模型是集成机器学习模型的一种,具体是将训练好的所有基模型对整个训练集进行预测,然后将每个模型输出的预测结果合并为新的特征,并加以训练。主要能降低模型的过拟合风险,提高模型的准确度。

开始对两个模型进行集成训练,训练的时间要比单一模型时间久一些,清耐心等待。

评测结果收集。

结果分析

将结果存入 Dataframe 进行结果分析,lr 表示逻辑回归,nb 表示朴素贝叶斯,model_stacking 将两个单模型集成后的模型。从结果来看集成模型准确度和 f1 值都是最高的,结合两个模型的优势,整体预测性能更好,鲁棒性更好。

样例测试

通过测试样例发现,分类器对正常的积极和消极判断比较好。但是当我们改变语义信息,情感模型则不能进行识别,模型鲁棒性较差。作为早期的文本分类模型,我们使用 TFIDF 的特征提取方式并不能很好的解决语义问题,自然语言是带有语序和语义的关联,其词语之间的关联关系影响整句话的情感极性,后续我们继续试验深度情感分析模型研究解决此类问题。

加载民宿主题数据。

模型预测

将情感分析模型推理的结果写入 DataFrame 中进行聚合。

单主题聚合分析

挑选一个主题进行主题情感分析。

对民宿“设施”进行描述统计,此次我们使用主题词典的出来的用户关于民宿“设施”主体的讨论条数为 4628 条,平均用户情感极性为 040 表示为整体呈现不满意的情况,有超过一半的关于“设施”的民宿评论中表现用户不满意的情况,重庆民宿需要在“设施”进行改善,以此提高用户满意度。

单主题情感极性可视化

我们开始进行“设置”主题下的用户主题情感进行可视化,首先加载画图模块。

对“设施”主题下的用户情感极性进行可视化,我们利用集成模型对主题句进行情感极性预测,如下所示。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/7797378.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-07
下一篇2023-09-07

发表评论

登录后才能评论

评论列表(0条)

    保存