分析印度杂志
现在读
如何使用TextBlob获得一个句子的情感评分?
分析印度杂志

如何使用TextBlob获得一个句子的情感评分?


当产品负责人或服务提供商想知道用户的反馈时,情绪分析强烈显示用户对产品或服务的满意程度。大多数来自客户的反馈仍然可以作为评论,所以总是需要快速分析这些评论或句子,并找到客户的情绪。为此,Python提供了许多特性来快速分析评论或句子并找到情感,TextBlob就是其中之一。在这篇文章中,我们将了解如何使用TextBlob获得一个句子的情绪得分。此外,我们还将讨论情感分析的重要性,它的应用程序和用于此任务的不同python包。本文将讨论的要点如下。

表的内容

  1. 什么是情感分析?
  2. 情感分析的应用
  3. 用于情感分析的Python包
  4. 关于TextBlob
  5. 情绪评分是如何计算的?
  6. 使用TextBlob在Python中获取情感评分

让我们从理解情绪分析的真正含义开始讨论。

什么是情感分析?

利用自然语言处理、文本分析、计算语言学和生物统计学对情感状态和主观信息进行系统识别、提取、测量和研究,被称为情感分析(也称为意见挖掘或情感AI)。情感分析通常被用于面对客户的材料,如评论和调查回复,以及在线和社交媒体和医疗论文,以实现从营销到客户服务到临床医学的各种目标。

情感分析的一个核心问题是在文档、句子或特征/方面层面对给定文本的极性进行分类,无论在文档、句子或实体特征/方面中传播的观点是正面、负面还是中性。快乐、愤怒、轻蔑、悲伤、恐惧和惊讶都属于高级情绪类别,有时也被称为“超越极性”。

它本质上是一个多级文本分类文本,其中输入的文本被分为积极、中性或消极情绪。根据训练数据集的性质,类的数量可能有所不同。它通常表示为一个二元分类问题,1表示正面情绪,0表示负面情绪。

基于方面的情感分析、分级情感分析(积极、消极、中性)、多语言情感分析和情感检测是其他类型的情感分析。

主观性/客观性活动通常被定义为将文本(通常是一个句子)分为两类:客观的或主观的。在某些情况下,这个问题可能比极性分类更具挑战性。单词和短语的主观性可能会受到其上下文的影响,客观的文件可能会包含主观的句子(例如,一篇新闻文章引用了人们的思想)。

情感分析的应用

情感分析有多种应用,包括评估用户评论、推文情感等。让我们来看看其中的一些:

分析电影评论:分析在线电影评论,收集观众对电影的看法。

新闻情绪分析:分析某公司的新闻情绪以获得真知的一种技术。检查在脸书、推特和其他社交媒体帖子中表达的情绪。在线美食评论:通过分析用户评论来发现人们对食物的感觉。

电子商务和社交网络:用户可以在许多社交网络平台或电子商务网站上提交文本评论、评论或反馈。这些用户生成的文本是用户对各种产品和项目的情感意见的重要来源。对于一个条目,这样的语言可能会暴露条目的相关方面以及用户对每个特性的看法。

用于情感分析的Python包

NLTK(自然语言工具包)

NLTK平台包括了对50多个已映射到机器学习技术的语料库和词汇源的接口,以及一组强大的解析器和实用程序。

除了情感分析,NLTK算法还支持命名实体识别、标记化、词性(POS)和主题分割。NLTK还拥有这里所提供的所有库中最广泛的语言支持,以及一系列良好的第三方扩展。

请记住,NLTK是由学术研究人员开发的。它不是为了在真实环境中支持NLP模型而构建的。甚至指南也缺乏文档。也没有64位二进制;您必须安装32位版本的Python才能使用它。最后,虽然NLTK不是最快的库,但通过并行处理可以使它更快。

宽大的

SpaCy Python库声称提供“工业强度的自然语言处理”,对于需要大规模性能或可以从强大的面向对象编程风格中受益的情感分析应用程序来说很有趣。

SpaCy是一个基于Cython的多平台环境,Cython是一个Python超集,允许创建快速运行的基于c的Python框架。因此,根据学者的说法,SpaCy是目前运行速度最快的解决方案。

与NLTK相反,SpaCy专注于工业应用,并维护有限的有效工具包,通过更新取代旧版本和工具。命名实体识别、词性标注和分类都包含在SpaCy的预构建模型中。

斯坦福CoreNLP

Stanford CoreNLP是一套高度可扩展的Java库,用于自然语言处理,使用包装器访问Python。它独立于平台、功能丰富且高效,目前在许多生产系统中使用。CoreNLP在NLP流中很好地支持非英语语言。阿拉伯语、汉语、法语、德语和西班牙语是目前的一些语言模式。

该套件定期更新,包括一系列编程语言的api。它有一个用于任意文本的注释器,既高效又稳定,还与注释管道集成。一些CoreNLP组件支持NLTK模块。

CoreNLP包括一个内置的情绪分析工具和它自己的一组第三方资源。斯坦福大学提供了一个现场演示,其中包括情感分析解决方案的源代码。

Gensim

大约在2010年,来自捷克共和国自然语言处理实验室的两名学生创建了Gensim,该系统已经发展成为最具扩展性和复杂性的NLP解决方案之一。与NLTK一样,Gensim非常全面和强大,可以在更大的管道中作为远程资源使用,如短语建模或与SpaCy和TextaCy等其他框架结合使用。

Gensim是一个流行的文件相似性和主题和矢量空间建模程序。它也是降维和多标签分类的好工具。另一方面,Gensim主要关注从文档和词云中有效地初始化数据。

Gensim支持Cython实现,处理时间与SpaCy相当,具体取决于手头的任务。该项目在2019年3月发布了一组新的优化,在各种功能上提供了显著的速度提升。

本文的后续部分将重点讨论如何使用名为TextBlob的python工具包对给定的语料库或词块进行评估或分配情感评分。

关于TextBlob

TextBlob是一个吸引人的、相对轻量级的Python 2/3工具包,用于开发NLP和情感分析,它提供了更好的易用性和更轻松的学习曲线。

该项目具有比NLTK更友好的界面,并且它还使用了来自安特韦普大学的Pattern web挖掘模块。例如,组合这些资源可以使强大的Pattern库和预先训练过的NLTK模型之间的转换变得简单。

另请参阅

TextBlob中集成的情感分析功能具有主观性和极性。TextBlob最流行的情感分析方法是使用TextBlob和VADER(价感知字典和情感推理机)的工作流。

鉴于TextBlob的设计和用途,它几乎没有什么功能特性能让它从竞争对手中脱颖而出,这并不令人意外。它功能强大,功能丰富,但在速度方面,它仍然依赖于外部资源,没有一个是特别令人印象深刻的。

情绪评分是如何计算的?

当我们使用TextBlob来计算文本的情感时,我们得到了极性和主观性的数值。极性数字表示句子的否定或肯定程度。另一方面,主观性指的是文本的客观或主观程度。TextBlob使用了一种情感计算算法,词典中的每个单词被评级如下:

在计算单个单词的情感时,TextBlob采用“平均”技术,该技术应用于极性值,计算单个单词的极性得分,因此类似的过程适用于每个单词,从而产生较大文本的组合极性。

TextBlob也可以理解否定,极性是-0.5的两倍。

TextBlob有一个有趣的特性,它处理修饰语(也称为加强词),这些修饰语根据其模式加强文本的含义。TextBlob在包含修饰语时忽略了极性和主观性,而不是仅仅依靠强度来计算文本的情感。

使用TextBlob在Python中获取情感评分

在本节中,我们将使用TextBlob根据他们的情绪给一个固定的句子打分。

!pip install textblob from textblob import textblob

让我们看看TextBlob库是如何工作的。下面的第一行代码包含文本示例,而第二行打印文本。在第三行中,利用情感函数,返回两个属性:极性和主观性。

在上述报告中,声明的极性为0.0,表明情绪是中性的。在我们的例子中,输出还包括文本的主观性,即0.3。主观性是一个介于0和1之间的浮点数。价值越接近1,声明越有可能是一种公众意见,而不是一条真实的信息,反之亦然。现在我们了解了TextBlob库的操作方式。

现在让我们尝试将此应用到数据集。数据集包含了对数据集的食物回顾。将情绪1标记为积极,0标记为消极。

我们将直接应用TextBlob功能,使用lambda函数迭代文本,如下所示。

数据(计算的)=(“文本”)。apply(lambda x: (TextBlob(x). emotion .极性))data.head()

结论

通过这篇文章,我们了解了什么是情感分析,它的主要应用是什么。在情绪评分或任何与nlp相关的任务的背景下,我们还看到了一些在开发人员、研究人员和学生中广泛使用的基于python的流行工具包。最后,我们看到了如何利用这样的工具包之一,TextBlob,来计算一个句子的情绪得分。这是构建情感分类器时最重要的任务。

参考文献

你怎么看?

订阅我们的通讯

通过分享你的电子邮件获得最新的更新和相关的优惠。
加入我们的Telegram Group。成为一个有吸引力的社区的一部分

188BET网页

滚动到顶部
Baidu