使用 NLTK 进行情感分析

2025年3月17日 | 阅读 7 分钟

如今,互联网和其他数字服务领域产生的数据量以惊人的速度和巨大的体积。研究人员、工程师和数据分析师经常处理表格或统计数据。这些表格数据列中可能包含分类数据或数值数据。生成的数据包括文本、图片、视频和音频等各种数据格式。在线行为(如出版物、网络内容、博客文章和社交媒体平台)产生非结构化数据的分析。为了有效地发展业务,公司和企业必须检查文本数据,以了解消费者行为、观点和评论。为了处理海量文本信息,文本分析正在以更快的速度发展。

情感分析:它是什么?

确定一段内容的好坏、负面或中性的程度的方法称为情感分析。情感分析只是提取揭示品牌社会态度的上下文词语,并帮助企业确定他们正在生产的产品是否能找到市场。情感分析的目标是以支持企业增长的方式来检查公众情绪。

情感分析的过程是什么?

第一种方法是自动方法。这种策略利用了机器学习方法。在数据集处理完成后,首先进行预测性分析。从文本中提取单词是后续过程。诸如朴素贝叶斯分类器、回归分析、支持向量机和机器学习算法等不同方法都可以用于分析文本,就像这些机器学习方法一样。

第二种方法是基于规则的策略。在这里,使用了基于规则的分词、解析和词典技术。该策略计算样本中正面和负面词语的数量。如果正面信息多于负面信息,则情绪为正面;否则,则相反。

情感分析最准确的方法是混合方法。该方法结合了上述基于规则和自动化过程。其优点是,与其他主要过程相比,准确性会很高。

情感分析:为什么要进行?

据报告,全球大量数据是非结构化的。无论数据是以电子邮件、文件、网站还是其他任何形式存在,都必须进行检查和组织。例如,如果我们想确定产品在满足客户需求方面表现如何,或者是否有市场需求?我们可以通过情感分析来跟踪该产品的评论。当我们拥有大量非结构化数据并希望通过手动标记来对其进行分类时,情感分析非常有效。

Sentiment Analysis using NLTK

埃隆·马斯克于2022年11月在推特上分享的关于仇恨言论分析的帖子

NLTK库

NLTK库提供了许多工具,您可以使用这些工具有效地处理和分析语言数据。文本分类,可用于各种分类,尤其是情感分析,是其一些高级功能。

情感分析技术包括使用算法将测试文本分类为广泛的正面和负面类别。为了从语言数据中获取想法,您可以使用 NLTK 和这些方法,并借助强大的内置机器学习程序。

基本流程

  • 收集必要数据的第一步是信息收集。
  • 数据处理是去除杂乱和填充词的过程。在此阶段,您基本上是对数据进行净化。
  • 当您显示数据时,您可以根据多种因素进行显示,包括词频、相关性、分组等。

使用 NLTK 情感分析指南

情感分析是一种数据分析,它使用 NLP、计算语言学和文本分类从互联网(特别是社交网络和其他相关来源)中提取和解释主观数据,以调查大多数人对特定主题、人物或想法的态度或情感,并识别证据的情境极性。

我们将使用 Python 中流行的 NLP 工具 NLTK 来检查文本数据。情感分析主要有两种方法。基于词典:它计算特定文本中包含的正面和负面词语的数量;分数越高,文本越积极。文本分类是文本挖掘中最关键的任务之一。这是一种经过广泛观察的技术。

确定作品的体裁或类型,包括网络日志、杂志、网站、新闻文章或推文。它在当今计算机世界的应用包括垃圾邮件识别、CRM 系统中的任务分类、搜索引擎的网站内容分类、美国客户满意度分析等。

在应用 NLTK 情感分析之前,我们需要将 NumPy、pandas、matplotlib 和 seaborn 模块导入我们的代码。下面的演示很好地展示了如何在我们的程序中集成以下模块。

代码

NLTK 中的情感分析分类器

情绪分析是找出作者对他们正在写作的主题的感受的技术。要训练模型,我们必须创建一个训练数据集。这是一个有监督的机器学习过程,要求我们为每个训练数据集分配一个“情感”。在本讲座中,我们的模型同时使用了“正面”和“负面”情绪。情感分析可用于将文本分类为多种情绪。

一个系统,它将由一组规则和方程定义,称为模型。它可以是计算体重根据身高的公式,简单得很。将推文与正面或负面情绪相关联的情感分析方法将被开发出来。我们的内容将被分成两部分。

第一部分的目标是创建模型,第二部分的目标是评估模型的性能。NLTK 的朴素贝叶斯分类器将用于完成建模实验。对于模型,需要一个包含单词作为键和值的 Python 字典。

使用 NLTK 的情感分析概念方法

以下阶段演示了 NLTK 情感概念分析技术。

首先导入模块

通过使用 import 关键字,我们在本阶段加载 pandas、NumPy、matplotlib 和 seaborn 的模块。NumPy 模块处理涉及线性代数的方程。使用 Panda 模块进行文档分析。为了获得更好的可视化效果,使用了 Matplotlib 包。为了获得更好的可见性,也使用了 Seaborn 模块。模块的导入在下面的示例中有所演示。

代码

数据集

对于数据集,我们可以使用 flipkart review data 2022_02。数据存储在菜单选项文件中。数据集由我们已使用的多个列组成。

代码

输出

Sentiment Analysis using NLTK

使用 info 方法,我们检查 csv 文件的信息。我们正在使用 x 的对象和 info 方法。csv 文件的显示信息显示在下面的示例中。

代码

输出

< class ' pandas.core.frame.Data Frame' >
Range  Index : 25 entries, 0 to 24
Data columns ( total 12 columns ):
 #   Column             Non-Null Count  Dtype 
---  -- -- --             -- --- ---- --- --           -- --- 
 0   Unnamed: 0         25 non-null     int64 
 1   Product URL         25 non-null     object
 2   product Title       25 non-null     object
 3   product Price       25 non-null     object
 4   average Rating      25 non-null     int64 
 5   review Description  25 non-null     object
 6   review Author       25 non-null     object
 7   review At           25 non-null     object
 8   review Likes        25 non-null     int64 
 9   review Dislikes     25 non-null     int64 
 10  certified Buyer     25 non-null     bool  
 11  reviewer Location   25 non-null     object
Dtypes : bool(1), int64(4), object(7)
memory usage : 2.3+ KB

分析

最后一步是对 flipkart 评论进行情感分析,这些评论以评论和评分的形式显示。评分将暗示用户的平均感受。如果用户给予的评分非常低,那么很明显用户对公司的产品不满意。或者,如果用户给予的评分非常高,则意味着客户对产品感到非常兴奋。上述 flipkart 评论数据集的代码实现可以通过下面的条形图来显示。

代码

输出

Sentiment Analysis using NLTK

结论

情感分析是使用计算机将几个相关的文本示例分组到不同组中的技术。这些方法使用 NLTK 先进的内置机器学习算法来理解语言数据的动态。例如,NLTK 情感分类可以帮助我们确定对某个特定问题有积极和消极参与的程度。