新闻情感分析它是新闻内容评论及转发的情感分析的集合,因为每一起舆情事件的信息类型都是由原贴、转发以及评论构成。
那么当网络上有与己相关的舆情事件发生,或想要关注的舆情事件发生时,我们应该如何掌握其情感倾向或各情绪的占比情况,以评估事态影响,采取针对性的应对措施呢?
新闻情感分析解决方法
在这里以新闻情感分析工具-识微商情为例,看其如何助力新闻情感分析工作开展:
1舆情数据收集:可根据用户需求,自动对全网的舆情数据进行采集,释放人力,关注信息一目了然。
2语义分析:这就包括原贴、转发以及评论,用户也可以自定义筛选某一信息类型。通过监测关于某一个特定主题的正负面中立意见,可自动识别文本中各种情感是如何表达的,然后通过内置的告警通知,向舆情接收者发出通知(用户可自定义舆情预警接收方式,如微信、短信、邮件、客户端、人工客服等)。
3全面综合分析:除新闻情感分析之外,还能实时追踪已订阅主题的发展变化趋势,分析舆情事件在各生命周期阶段的热点话题,挖掘舆情事件在演化过程中的传播网站、传播媒体、关键传播节点以及传播溯源、同步生成可视化的分析图表和报告等,便于对网络舆情事件的发展变化趋势做出有效的预测,为舆情应对、引导以及工作总结提供助力。
特点如下:
第一,语序和虚词是表达语法意义的主要手段。例如“不很好”和“很不好”,因语序不同,所表示的意义也不一样。在“我和弟弟”“我的弟弟"中,“和”表示并列关系,“的”表示偏正关系,由于虚词“和”与“的”的不同,因此表示的语法关系和意义也不相同。
第二,词、短语和句子的结构原则基本一致。无论词素组成词,词组成短语,或者短语组成句子,都有主谓、动宾、补充、偏正、联合五种基本语法结构关系。
例如词“地震”,短语“身体健康”,句子“火车开动了”等都是主谓结构。
第三,词类和句法成分不是简单的对应关系。汉语中词类和句子成分的关系比较复杂,同一词类可以充当多种句法成分,词在语法方面呈现出多功能性;反之,同一种句子成分义可以由儿类词充当,两者之间又具有一定的灵活性,所以词类和句法成分之间不像印欧语那样有简单的对应关系。
第四,词十分丰富,有语气词数词和名词结合时,一般都需要在数词的后面加个量词。不同的名词所用的量词也往往不同。如“一个人、一头牛、一张纸、一粒米”等。
语气词常出现在句未,表示各种语气的细微差别,如“是他吗?”“是他吧?"“是他呢。”
汉语的特点:
优美:已成为一种艺术——书法艺术。汉字的书法艺术是任何其它文字所无法相比的。 下列的古代书法作品已经成为无价之宝。著名的有兰亭序、神策军纪圣功德碑、玄秘塔碑、祭侄稿等无数作品。
辨识度高:人类的眼睛视野总是一个面,而不是一条线,所以线性排列不易辨认;排成方块一目了然。拼音文字=线形文字;汉字=方块文字。汉字比拼音文字有更高的阅读效率。
形象,直观达意;汉字是象形文字,其显著的特点是字形和字义的联系非常密切,具有明显的直观性和表意性。汉字的表意性使汉字成为世界上单位字符信息量最大的文字,因此容易辨识, 利于联想,这也为加快阅读速度带来极大的便利。
最近出于兴趣和需要,重新回顾中文分词技术,期间有些心得,以及一些关于自然语言处理的浅薄之见,这里简单分享一下。
首先, 中文分词_ 里面简单介绍了其中主要的分词算法以及相应的优缺点,包括字符匹配法、统计法以及理解法,其中字符匹配法和统计法比较流行且可以取到相对不错的效果,而理解法则相对比较复杂高级,但是我认为这才是真正解决中文分词任务的根本算法。
如今用于中文分词的算法和模型虽算不上比比皆是,但也算是唾手可得,开源的如jieba、ltp、Hanlp等等,提供中文分词服务的如腾讯云、百度大脑、讯飞AI平台等,以及其他如Jiagu等。
其实这些平台算法的差距并不算太大,分词准确率基本上都是在80%以上,然而在98%以下(这里胡诌个数),在一些不太严格的应用场景下基本已经够用了,只要挑一个在自己的业务场景下表现最好的即可。
在我看来,对于中文分词这项任务而言,最关键最核心的其实并不是算法模型,这些都不是所谓的瓶颈,最重要的其实是高质量、大规模的词典。对于字符匹配法而言,词典是基础,没有词典自然连分都分不出来;对于统计学习法而言,其效果一方面取决于算法和模型的选择,一方面取决于其训练数据的数量与质量,需要堆人力物力,比如找专门的标注公司标注数据等。但是就算是人标的数据,也难免有所错误遗漏,所以在有错误的训练数据下,模型也不可能学的太好,同时训练数据再大,也难以覆盖全部语料,总会出现OOV,总有些句子会训练不到,此时还强求模型可以做到“举一反三”有些不切实际。
词条中还提到了关于中文分词的技术难点:歧义识别与新词识别,关于歧义识别,上面并没有提具体的解决思路,对于新词识别而言,这又是自然语言处理领域很基础并且很重要的点,可以参见一下我之前的文章: 《NLP基础任务之新词发现探索之路》 | lightsmile's Blog ,也有另一个思路,比如说爬取网上一些网站的相关条目,比如等。
简单看了一下 jieba 、 ansj_seg 、 Jiagu 的分词词典,发现其中jieba的词典质量最差,其中不少词性都是错误的,Jiagu的词典还算不错,就是一些新词不全,ansi_seg的没有细看。
尽管这些工具在一些评测数据的结果可以达到90以上的成绩,但是在我看来,还是不够的,我觉得中文分词这个基础而又艰巨的任务还是要到99%以上才可以,否则分词都分不对,那些在分词基础之上的任务更是不行,毕竟词是基本的语义单元。
然而在现在深度学习盛行的潮流下,许多任务如文本分类、命名实体识别等并不一定需要依赖于分词,直接基于字符(char)的Embedding也可以取得不错的效果,并且也可以规避OOV(out of vocabulary words,未登录词)的问题。
但是深度学习,尤其是监督学习的很关键之处是得有大规模的高质量训练数据,不然巧妇难为无米之炊,再好的模型也难以从垃圾中学到有用的知识。
话说回来,虽然自然语言处理是计算机科学与其他领域的交叉学科,深度学习、机器学习算是人工智能的一部分,然而许多时候往往十分依赖人工,而所谓的智能其实也不智能。
无论是计算机视觉领域里的图像分类还是自然语言处理领域的文本分类,其任务都是学习一个从输入 映射到输出或者说标签 的函数 ,具体来说就是将 表征为多维向量 ,将 表征为多维向量 ,然后让 进入一个模型进行一系列的运算后得到一个 ,通过不断地比较 和 的值并调整模型的参数使模型的运算结果 更为准确即更加贴近 (过程有点类似于 “猜数字”游戏 ),从而最终得到一个近似函数 ,我们就可以用来代替未知的 用于预测未来的样本 ,得到它对应的 。
我们可以发现,以上学习算法确实可以得到能够解决问题的模型,然而局限之处在于它也只能做这个任务,即对输入 预测 ,别的啥也干不了。
同时在基于深度学习的自然语言处理模型中,基本套路都是Embedding+Encoder+Decoder,其中Embedding是基于字还是基于词,是使用预训练词向量还是随机初始化,这些选择所导致的效果的差异都随着训练轮数的增加而最终减小。然而,由于梯度下降以及解空间的特点,基于bert的效果确实是要比Word2Vec的要好,那些词向量确实比Word2Vec的嵌入了(或者说学到了)更多的语言知识。
关于模型的选择和取舍,工业界和学术界的标准其实差别很大。学术界里有的论文是开创性的,而许多论文其实都是在原来基础上小修小改,将最近的较新的思想和算法一堆,实验结果比原来指标高一点又是一篇文章,程序运行占用多大内存、跑了多长时间这些都不是主要因素,也就是一切向指标看齐。
而工业界则更加看重的是性价比,不同的公司、不同的部门、不同的阶段其主要矛盾不同。比如说Facebook之前出的fastText,尽管模型很简单,最终效果可能比不上一些其他复杂的模型,但是其训练速度超快、基于CPU就可以,并且可以很方便地对模型进行压缩。许多时候,一些指标高低差几个点并没有那么关键,模型大小、训练时间、预测时间在很多时候是比较关键的因素,除非由于甲方或客户不满意,或者家大业大,有的是资源,那么这时候效果和指标又成为主要矛盾,这时的优化可能要以一定的时间和空间为代价。
原来的自然语言处理各任务基本上都构建在分词的基础之上,粗略来说有一个 语法 、 语义 到 语用 的递进的过程。这一层一层的任务虽然耦合的很好,但是
这种Pipline将会导致下层的错误都将会被积累到上层,其直接影响就是越到上层其准确率越低,甚至低到惨不忍睹的程度。然而在表示学习,尤其是深度学习崛起以后,其强大的特征学习能力,使得现在的模型多为end-to-end模型,其结果是一方面可以使得相关人员摆脱繁琐的特征工程,可以将特征提取与组合设计的工作交给神经网络模型去隐形完成,大大解放了生产力;令一方面可以将模型视为整体的一部分,即它的输入直接对应原始输入,它的输出直接是我们想要的结果,有点直达病灶的意思,摆脱了原来Pipline错误累积的困境。
不过我个人看来成也end-to-end,败也end-to-end,虽然简化了任务,但是有点太过开门见山,得到的模型一个个都是彼此孤立的,各做各的事情,然而从整体论的角度来看它们都是整个自然语言处理系统的一部分,一些特征本来是可以共享,一些结果是彼此相互依赖的。这也又涉及到参数共享、多任务学习等概念,不细表。由于神经网络的可解释性较差,这使得模型更加像一个黑盒,训练调参的过程更像是在炼丹,因为谁也不知道具体能炼出个什么玩意儿。
如下图很形象地诠释了这一现状:
下面就深度学习下的自然语言处理四大任务进行简单对比(都是个人浅薄之见,难免有不足之处,还望海涵)。自然语言处理四大任务分别是:序列标注、文本分类、句子关系、文本生成。
序列标注任务的原始语料是一连串的句子,经过标注后的语料格式大概如下(以命名实体识别为例):
我们可以发现,每一行的格式都是一个字符以及它所对应的类别,如 B_{type} 、 O ,那么对于每一个字符模型需要预测的类别数量总计为 2len(types) + 1 ,其中2是指 BI 这种标注规范, len(types) 指类型种类的数量(如人名、地名、机构名共三种),1是指 O 。可以发现模型需要拟合的函数的值域还是很小的,即 O(len(types)) 。
文本分类任务的标注语料格式大概如下(以情感极性分析为例):
每一行的格式都包含原始文本以及它所对应的类别(或者说标签),我们可以发现模型需要预测的类别数量总计为 len(types) ,即类型种类的数量(以新闻语料分类,如 娱乐 、 军事 、 科技 、 体育 等),可以发现模型需要拟合的函数的值域也是较小的,即 O(len(types)) 。
句子关系任务的标注语料格式大致如下(以语句相似度为例):
每一行都是两个句子以及它们的关系( 1 代表语义相同, 0 代表语义不同),我们可以发现模型需要预测的类别数量总计为 len(relations) ,即关系种类的数量,可以发现模型需要拟合的函数的值域也是较小的,即 O(len(relations)) 。
文本生成任务的标注语料格式大致如下(以机器翻译为例):
我们可以发现每一行都是源语言句子以及目标语言的对应翻译。虽然此时模型和序列标注模型一样都需要对于单个样本预测多次,但是序列标注模型需要预测的次数直接等于字符的数量,是确定的,但是文本生成任务模型需要预测的次数是不确定的,并且每次预测的值域都是目标语言所有word(或者character)所组成的整体集合,即 O(len(words)) ,其规模可能是十万级或百万级的。因此我们很容易发现文本生成任务的难度和复杂程度是要远远高于其他任务的。对话任务如生成式闲聊机器人更是如此。
可能是之前的AlphaGo过于吸引广大群众的眼球,做相关业务的公司吹的太厉害,以及“人工智能”、“深度学习”这几个词听起来逼格满满,导致许多外行人认为现在的人工智能已经发展到很厉害的层次,并且可以做各种各样的事情,似乎无所不能。但是内行人心里却明白:“什么人工智能,人工智障吧”、“所谓人工智能,多是智能不够,人工来凑”。外行人看不到深度模型算法的局限性,如许多模型的精度并不能达到那么高;也看不到深度模型算法的前提条件,如高质量、大规模的数据集,他们以为模型大约聪明到随便喂点数据便成为终结者般的存在。这也就导致了他们刚开始预期很高,然而在投资或找到外包后发现效果远远不能达到预期,大失所望而潦草结束或撤资离场的局面。
如下一张图大概有点这个意思:
统观学术界与工业界,和计算机视觉领域相比,自然语言处理这种更深层次的、涉及到认知智能的领域的进展虽悠久但缓慢,并且许多任务目前为止距离真正商用还有很大的距离。然而正是科学史上如阿基米德、牛顿等伟大人物与其他相对无名之辈默默耕耘,前赴后继,才使得如今之人类齐享先辈之成果,即所谓“前人栽树后人乘凉”也。
我辈也无需悲观,须戒骄戒躁,搞算法的就多己见、少盲从,少水论文;搞工程的就多积累经验,提升实践能力,多做高质量的项目。功夫不负有心人。
由于语料缺乏,前期若使用到情感分析,建议暂时使用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>
渡者之言翻译如下:
渡者之言是一款由中国团队开发的开源中文自然语言处理工具。该工具涵盖了分词、词性标注、命名实体识别、依存句法分析等常见自然语言处理任务,并支持多种中文文本编码格式,可以被广泛应用于各种文本分析和挖掘场景。
此外,渡者之言还提供了可视化的分析界面和用户友好的API接口,方便用户进行快速文本处理和定制化应用开发。可见,渡者之言在中文自然语言处理领域具有较高的应用价值和技术竞争力。渡者之言是一款对于中文自然语言处理具有重要意义的开源工具,拥有丰富的功能和易用的接口,是中文语言处理领域中不可或缺的研究和应用工具之一。
渡者之言的发展历程可追溯到2010年,当时由华南理工大学自然语言处理实验室推出了第一个版本。
经过多年的不断迭代和优化,渡者之言逐渐成为中文文本处理领域内的重要工具之一,广泛应用于社交网络、搜索引擎、智能客服、舆情分析等方面,成为了许多企业和研究机构进行中文语言处理的首选。
未来,随着人工智能技术的不断发展,渡者之言将更加完善和智能化,为中文自然语言处理领域的发展做出更多贡献。
渡者之言是一个包含多种自然语言处理功能的开源平台,支持中文文本的分词、词性标注、命名实体识别、句法分析、情感分析、关键词提取等常用功能。
作为一个自然语言处理平台,渡者之言在处理中文文本方面具有许多优势:
1中文特殊性:相较于英文等其他语言,中文存在大量复合词、歧义词汇、省略结构等独特的语言现象,需要针对性地处理。
2深度学习技术:渡者之言采用深度学习模型,在信息获取、语义理解等方面有较高的准确度。
3预训练模型:渡者之言基于大规模的中文语料库进行预训练,将可用性和鲁棒性提升至一个新的层次。
除此之外,渡者之言支持多种编程语言接口,如Python、Java、Go、PHP等,方便开发者快速集成到自己的应用中。同时也减轻了开发者在项目中处理中文文本的工作量,提高了生产效率。
以下以语义特征为例:
机器学习基于语义特征的情感分析
基于语义特征的情感分析先人已有研究,可以通过情感词典匹配来做,但是应用机器学习在这方面会使精确度更高些。
以本人参与的一个项目为主,总结下相关技术点。
背景是:分析用户评论感情色彩是积极还是消极,即是褒还是贬。
具体步骤为:
1有监督的人工给文本标注类标签。如有5000条评论数据,我们给其中的1000条标为积极的,再选1000条标为消极的,积极和消极就是所谓的类标签。
2选择特征。从积极的评论数据中按词来选择积极的所有特征。同理,从消极的评论数据中按词来选择消极的所有特征。如“这款游戏非常好玩”->”这款”->“游戏”->”非常”->”好玩”,分为四个特征词,也可以采用双词搭配,“这个游戏”和“非常好玩”作为特征。
3特征降维,减少特征的数量。如上“这个游戏非常好玩”中的“这个游戏”没有必要作为特征,因为“好玩”或“非常好玩”已经决定了评论是积极的。
4将语料文本变成使用特征表示。
5统计所有特征出现的次数,并按倒序排序。
6从以上结果中选出排序最靠前的一些特征作为最终的评判特征。
7使用训练数据根据特征训练分类算法,得到分类器。
8用测试数据检测分类器的准确度。
我们将数据分为两部分:开发集、测试集。用开发集的数据训练分类算法得到分类器;再用分类器对测试集里的数据进行分类,给出分类预测得到的标签;对比分类标签和人工标注得到的标签的差异,计算出准确度。
情感分析自从2002年由Bo Pang提出之后,获得了很大程度的关注,特别是在在线评论的情感倾向性分析上获得了很大的发展。本文主要关注无监督的情感分析方法,由于不需要大量标注语料,无监督情感分析方法一直受到许多研究者的青睐,但同时效果也低于有监督的情感分析方法。
Turney首次提出基于种子词的非监督学习方法,使用“excelent”和“poor”两个种子词与未知词在搜索网页中的互信息来计算未知词的情感极性,并用以计算整个文本的情感极性。后续的非监督情感分析方法大都是基于生成或已有的情感词典或者相关资源进行情感分析。
例 如,Kennedy和Inkpen考虑文本中词的极性转移关系并基于种子词集合进行词计数决定情感倾向。朱嫣岚等人将 一组已知极性的词语集合作为种子,基于HowNet对未知词语与种子词进行语义计算,从而判别未知词的极性。Lin等采用LSM 模型、JST模型、Reverse-JST模型构建了三种无监督的情感分析系统。但是由于深层情感分析必然涉及到语义的分析, 以及文本中情感转移现象的经常出现,所以基于深层语义的情感分析效果并不理想,本文针对中文文本中经常出现的情感转移现象提出情感极性转移模型,提高了深层语义情感分析的分析效果。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)