如何使用Python进行社交媒体情感分析

技术如何使用Python进行社交媒体情感分析这篇文章给大家介绍如何使用Python进行社交媒体情感分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。学习自然语言处理的基础知识并探索两个有用的 Pyt

本文介绍了如何使用Python分析社交媒体情绪。内容非常详细。感兴趣的朋友可以参考一下,希望对大家有所帮助。

学习自然语言处理的基础知识,并探索两个有用的Python包。

自然语言处理是一种机器学习,它解决了口语或书面语与计算机辅助分析这些语言之间的相关性。在日常生活中,我们经历了无数次NLP创新,从写作帮助和建议到实时语音翻译和口译。

本文研究自然语言处理的一个特定领域:情感分析。重点是确定输入语言的积极、消极或中性性质。本节将解释自然语言处理和情感分析的背景,并讨论两个开源Python包。第2部分将演示如何开始构建自己的可扩展情感分析服务。

学习情感分析时,对自然语言处理有一个大致的了解是有帮助的。这篇文章不会深入研究数学的本质。相反,我们的目标是澄清NLP中的关键概念,这些概念对于实际将这些方法集成到您的解决方案中非常重要。

自然语言和文本数据

的合理起点是从定义开始的:“什么是自然语言?”它是我们相互交流的一种方式,主要的交流方式是口语和书面语。我们可以更进一步,只关注文字交流。毕竟生活在Siri、Alexa这样无处不在的时代,我们知道发音是一套与文字无关的计算。

数据前景和挑战

我们只考虑使用文本数据。关于语言和文本,我们能做些什么?首先,语言,尤其是英语,除了规则、意义多样性和语境差异之外,还有很多例外,这可能会让人类解释者感到困惑,更不用说计算机翻译了。在小学,我们学习文章和标点符号。通过说我们的母语,我们获得了找到直观表达独特含义的单词的能力。例如,出现诸如“a”、“the”和“or”之类的文章,它们在NLP中被称为stopword,因为传统上NLP算法在序列中找到这些单词,这意味着搜索停止。

由于我们的目标是自动将文本分类为情感类,因此我们需要一种以计算方式处理文本数据的方法。因此,我们必须考虑如何向机器表示文本数据。众所周知,语言的使用和解释规则是复杂的,输入文本的大小和结构可能会有很大的不同。我们需要把文本数据转换成数字数据,这是机器和数学的* * *方式。这种变换属于特征提取的范畴。

在提取输入文本数据的数字表示之后,一个改进可以是:给定文本输入体,为上面列出的文章确定一组矢量统计数据,并根据这些数据对文档进行分类。例如,太多的副词可能会让投稿人生气,或者过度使用stopword可能有助于识别内容填充的学期论文。诚然,这可能与我们的情感分析目标没有太大关系。

词袋

当你评估一个文本陈述是正面还是负面时,你用什么语境来评估它的极性?(比如文中是否有积极、消极或中性的情绪)一种方式是含蓄的形容词:叫“恶心”的东西被认为是消极的,但如果同样的东西叫“美好”,你会认为是积极的。根据定义,谚语给人一种熟悉感,这通常是积极的,而骂人可能是敌意的表现。文本也可以包含带有固定情绪的表情符号。

理解单个单词的极性影响为文本的单词包(BoW)模型提供了基础。它分析一组单词或词汇,并提取关于这些单词是否存在于输入文本中的指标。术语表通过处理已知极性的文本形成称为标签的训练数据。从这组标签数据中提取特征,然后分析特征之间的关系,并将标签与数据相关联。

“单词包”这个名字解释了它的用途:它是一个不考虑空间位置或上下文的单个单词。术语表通常由训练集中出现的所有单词构成,并且在训练后经常被修剪。如果在训练前没有清理stopword,那么stopword将会因为高频低上下文而被删除。很少使用的单词也可以删除,因为缺少一般输入示例的信息。

但是,需要注意的是,您可以(也应该)进一步考虑单词在单个训练数据实例之外的情况,这称为术语频率(TF)。您还应该考虑所有训练示例中输入数据的字数。一般来说,出现在所有文档中的低频词更重要,这被称为逆文档频率(IDF)。这些指标肯定会在本主题系列的其他文章和软件包中提到,所以了解它们会有所帮助。

单词在许多文档分类应用中很有用。但是,在情感分析中,当使用缺乏情境意识的问题时,事情是可以解决的。考虑以下句子:

我们不喜欢这场战争。

我讨厌雨天。好消息是今天阳光明媚。

这不是生死攸关的问题。

这些短语的情感对于人类解释者来说是困难的,对于机器翻译来说,关注单个词汇实例也是困难的。

被称为“n-gram”的单词分组也可以用在NLP中。二进制组考虑由两个相邻单词组成的组,而不是(或除此之外)单个单词包。这应该可以缓解上面提到的“不喜欢”等情况。

,但由于缺乏语境意思,它仍然是个问题。此外,在上面的第二句中,下半句的情感语境可以被理解为否定前半部分。因此,这种方法中也会丢失上下文线索的空间局部性。从实用角度来看,使问题复杂化的是从给定输入文本中提取的特征的稀疏性。对于一个完整的大型词汇表,每个单词都有一个计数,可以将其视为一个整数向量。大多数文档的向量中都有大量的零计数向量,这给操作增加了不必要的空间和时间复杂度。虽然已经提出了许多用于降低这种复杂性的简便方法,但它仍然是一个问题。

词嵌入

词嵌入Word embedding是一种分布式表示,它允许具有相似含义的单词具有相似的表示。这是基于使用实值向量来与它们周围相关联。重点在于使用单词的方式,而不仅仅是它们的存在与否。此外,词嵌入的一个巨大实用优势是它们关注于密集向量。通过摆脱具有相应数量的零值向量元素的单词计数模型,词嵌入在时间和存储方面提供了一个更有效的计算范例。

以下是两个优秀的词嵌入方法。

Word2vec

***个是 Word2vec,它是由 Google 开发的。随着你对 NLP 和情绪分析研究的深入,你可能会看到这种嵌入方法。它要么使用一个连续的词袋continuous bag of words(CBOW),要么使用一个连续  skip-gram 模型。在 CBOW 中,一个单词的上下文是在训练中根据围绕它的单词来学习的。连续 skip-gram  学习倾向于围绕给定的单词学习单词。虽然这可能超出了你需要解决的问题,但是如果你曾经面对必须生成自己的词嵌入情况,那么 Word2vec  的作者就提倡使用 CBOW 方法来提高速度并评估频繁的单词,而 skip-gram 方法更适合嵌入稀有单词更重要的嵌入。

GloVe

第二个是用于词表示的全局向量Global Vectors for Word Representation(GloVe),它是斯坦福大学开发的。它是  Word2vec 方法的扩展,试图通过将经典的全局文本统计特征提取获得的信息与 Word2vec  确定的本地上下文信息相结合。实际上,在一些应用程序中,GloVe 性能优于 Word2vec,而在另一些应用程序中则不如  Word2vec。最终,用于词嵌入的目标数据集将决定哪种方法***。因此,***了解它们的存在性和高级机制,因为你很可能会遇到它们。

创建和使用词嵌入

***,知道如何获得词嵌入是有用的。在第 2  部分中,你将看到我们通过利用社区中其他人的实质性工作,站到了巨人的肩膀上。这是获取词嵌入的一种方法:即使用现有的经过训练和验证的模型。实际上,有无数的模型适用于英语和其他语言,一定会有一种模型可以满足你的应用程序,让你开箱即用!

如果没有的话,就开发工作而言,另一个极端是培训你自己的独立模型,而不考虑你的应用程序。实质上,你将获得大量标记的训练数据,并可能使用上述方法之一来训练模型。即使这样,你仍然只是在理解你输入文本数据。然后,你需要为你应用程序开发一个特定的模型(例如,分析软件版本控制消息中的情感价值),这反过来又需要自己的时间和精力。

你还可以对针对你的应用程序的数据训练一个词嵌入,虽然这可以减少时间和精力,但这个词嵌入将是特定于应用程序的,这将会降低它的可重用性。

可用的工具选项

考虑到所需的大量时间和计算能力,你可能想知道如何才能找到解决问题的方法。的确,开发可靠模型的复杂性可能令人望而生畏。但是,有一个好消息:已经有许多经过验证的模型、工具和软件库可以为我们提供所需的大部分内容。我们将重点关注 Python,因为它为这些应用程序提供了大量方便的工具。

SpaCy

SpaCy  提供了许多用于解析输入文本数据和提取特征的语言模型。它经过了高度优化,并被誉为同类中最快的库。最棒的是,它是开源的!SpaCy  会执行标识化、词性分类和依赖项注释。它包含了用于执行此功能的词嵌入模型,还有用于为超过 46  种语言的其他特征提取操作。在本系列的第二篇文章中,你将看到它如何用于文本分析和特征提取。

vaderSentiment

vaderSentiment 包提供了积极、消极和中性情绪的衡量标准。正如 原论文  的标题(《VADER:一个基于规则的社交媒体文本情感分析模型》)所示,这些模型是专门为社交媒体文本数据开发和调整的。VADER  接受了一组完整的人类标记过的数据的训练,包括常见的表情符号、UTF-8 编码的表情符号以及口语术语和缩写(例如 meh、lol、sux)。

对于给定的输入文本数据,vaderSentiment 返回一个极性分数百分比的三元组。它还提供了一个单个的评分标准,称为 vaderSentiment 复合指标。这是一个在 [-1, 1] 范围内的实值,其中对于分值大于 0.05 的情绪被认为是积极的,对于分值小于 -0.05 的被认为是消极的,否则为中性。

关于如何使用Python进行社交媒体情感分析就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50256.html

(0)

相关推荐

  • 周记可以写什么,《周记》有哪些题材可写

    技术周记可以写什么,《周记》有哪些题材可写可以写关于一笔电影的观后感,不要太过重去描绘故事情节,要重写自己的感觉和看方法,很多道理都可从电影中发掘出来的周记可以写什么。可以写跟你家人的情感问题,如果吵架的话可以从另一个角

    生活 2021年10月25日
  • 基于alpine构建jdk镜像遇到的坑

    技术基于alpine构建jdk镜像遇到的坑 基于alpine构建jdk镜像遇到的坑alpine常用于作为docker的基础镜像,因为它很小,功能精简,基本上没有啥漏洞,记录一下最近用alpine作为基础

    礼包 2021年11月11日
  • ibatis怎么多条件查询(ibatis优点)

    技术iBATIS发展方向的四个方面分别是什么这期内容当中小编将会给大家带来有关iBATIS发展方向的四个方面分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。iBATIS发展方向

    攻略 2021年12月19日
  • 如何进行CVE-2017-16943-进出口-UAF脆弱性分析

    技术怎么进行CVE-2017-16943-Exim-UAF漏洞分析本篇文章为大家展示了怎么进行CVE-2017-16943-Exim-UAF漏洞分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希

    2021年12月20日
  • 缓存视频怎样转入本地视频,uc下载的视屏怎么转到本地

    技术缓存视频怎样转入本地视频,uc下载的视屏怎么转到本地打开UC浏览器点击下面状态栏中间的菜单按钮,选择【我的视频】;然后点击【已缓存的视频】;长按视频弹出的菜单中就可以看到【打开目录】;再然后长按需要移动的视频,选择【

    生活 2021年10月25日
  • 如何使用Cytoscape的NetworkAnalyzer工具计算网络相关属性

    技术如何使用Cytoscape的NetworkAnalyzer工具计算网络相关属性如何使用Cytoscape的NetworkAnalyzer工具计算网络相关属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编

    攻略 2021年11月10日