如何构建 Twitter 情绪分析 Python 程序? [分步教程]

已发表: 2020-08-07

资源

随着公司越来越受数据驱动,一种称为“情绪分析”的机器学习技术日益流行。 它通过自然语言处理 (NLP) 分析数字数据/文本,以找到文本中表达的极性(积极、消极、中性)、感受和情绪(愤怒、快乐、悲伤等)。

由于 Twitter 是全球最全面的实时公共对话来源之一,因此商业公司、政治团体等有兴趣对推文进行“情绪分析”以了解目标市场的情绪/意见或研究竞争对手的市场. 尽管他们已准备好为此目的使用程序,但要实现高度准确的预测,特定于特定标准和领域,最好的方法是创建定制的Twitter 情绪分析 Python模型或程序。

目录

分步教程:使用 Python 创建 Twitter 情绪分析程序

本教程旨在使用 Python 创建一个 Twitter 情绪分析程序。 生成的程序应该能够解析从 twitter 获取的推文并理解文本的情感,例如它的极性和主观性。

附加条件

1.首先是Python的基本编码/编程知识。

2.要在您的计算机上安装的工具:

  • Python
  • 库:Tweepy、text blob、word cloud、pandas、NumPy、matplotlib

(Tweepy 是 twitter API 的官方 python 库,使 Python 能够与 Twitter 平台进行通信)

3. 推特账号

4. Twitter 应用程序需要由 Twitter 创建和验证:这是获取编程中需要的“消费者密钥和访问令牌”所必需的。

如果您还没有为此目的创建 Twitter 应用程序,那么这里是创建它的方法。

阅读更多: Python NumPy 教程:通过示例学习 Python Numpy

如何创建 Twitter 应用程序?

  • 访问 Twitter 开发者网站: dev.twitter.com。
  • 使用您的 Twitter 帐户登录
  • 转到“我的应用程序”
  • 单击“创建新应用程序”。
  • 接下来,您需要填写一个表格,如下图所示。

资源

  • 接下来,单击“创建我的访问令牌”。
  • 在下一页中,选择“应用程序类型”列下的“读取和写入”选项。

您将获得您的 Twitter 应用 OAuth 设置,其中包括与您的使用者密钥、使用者密码、访问令牌、访问令牌密码等相关的所有必要详细信息。您需要注意这些详细信息,因为这些 API 凭据将使您能够获取推文来自推特。 最好将其保存在您计算机中的 CSV 文件中,以后您可以直接将 CSV 文件上传到您的程序中以读取 API 凭据

开始创建 Twitter 情绪分析 Python 程序

1. 导入库:Tweepy、text blob、word cloud、pandas、NumPy、matplotlib

2. 验证 Twitter 应用程序:接下来,您需要使用 Twitter 应用程序 OAuth 设置凭据(也称为 Twitter API 凭据)验证您的 Twitter 应用程序。 为此,您需要使用下图所示的代码创建一个 Authentication 对象。

资源

要填写 Twitter API 凭据,您可以上传 CSV 文件或手动复制粘贴凭据详细信息。

3. 从 Twitter 用户那里获取推文:现在,为了获取推文,您首先需要选择一个 Twitter 用户,您要解析其推文以了解其中表达的情绪。 比方说; 您想通过对 UserXYZ 的 100 条推文进行情绪分析来查看“UserXYZ”的推文是正面的、负面的还是中性的。

获取推文的代码

帖子 = api.user_timeline(screen_name = ”UserXYZ”, count= 100, Lang =”en”, tweet_mode =“extended”)

运行上述命令将显示推文。

4. 创建数据框:现在,您需要为您获取的推文创建一个数据框。 假设您将 df 的第一列命名为“推文”,它将包含分布在 100 行中的所有推文,因为您正在分析 100 条推文。

Df = pd.dataframe( [tweet.full_text for tweet in posts] , columns=[ 'Tweet'])

5. 清理文本:清理推文的文本对于推特情感分析 python 程序的成功很重要,因为会有很多不需要的符号,如@、#、转发推文、URL 中的超链接等。这里是你的python'' 库开始使用。

获取主观性和极性:清理文本后,您需要使用 TextBlob python 库创建两个函数来获取推文的主观性和极性。 主观性显示了文本的自以为是,极性描述了文本的积极性或消极性。 最好编写 python 脚本在数据框中再创建两列来托管主观性和极性。 所以,现在你的数据框将有三列(第一列是推文,第二列是主观性,第三列是极性)

创建主观性和极性函数的代码如下:

资源

运行代码后,您将在相应列中看到每条推文的主观性和极性得分。 TextBlob 在 1 到 -1 的范围内描述极性。 因此,如果一条推文的极性为 -0.4,则意味着它有点负面,如果它有 0.6 的主观性,那么它是相当主观的。

6. 接下来,您可以选择在您的Twitter 情绪分析 Python程序中包含一个词云,因为词云作为一种用于情绪分析的数据可视化技术也很流行,其中词的大小表明了它的重要性。

WordCloud 示例:

资源

您已经导入的 matplotlib、Pandas 和 WordCloud 库将开始运行。 要先绘制词云,您需要创建一个变量; 让我们将其命名为“allwords”,以表示数据框“推文”列中的所有推文。

创建 WordCloud 的代码

allwords = ' '.join( [twts for twts in df ['Tweets' ]] )

WordCloud = WordCloud (width =xxx, height =xxx, randon_state =xxx, max_font_size =xxx.generate (allwords)

plt.imshow(wordcloud)

plt.axis(“关闭”)

plt.show()

7. 因为你有每条推文的极性分数,你可以开始计算推文的正面、负面和中性分析。 为此,您需要创建一个函数,我们称之为“分析”,其中您可以将分数 0 分配给中性,<0 分配给负面,>0 分配给正面。

Def分析(分数):

如果分数 < 0

返回“否定”。

elif 分数 == 0

返回“中性”

别的,

返回“正面”。

接下来,要托管推文的情绪分析结果,在数据框中创建一个新列,我们将其命名为“TwtAnalysis”,然后编写以下代码:

df ['TwtAnalysis'] = df ['极性']。 申请(分析)

8. 新数据框将添加名为“TwtAnalysis”的列,并将根据其极性得分将每条推文称为正面、负面或中性。 下图中显示了一个示例:

资源

9. 将推文分类为正面、负面和中性后,您可以继续构建Twitter 情绪分析 Python程序 以不同的格式表示数据,例如:

  • 获取正面、负面或中性推文的百分比。
  • 分别打印所有正面评论或负面或中性推文
  • 创建正面、负面和中性推文等的视觉情绪分析图表。

另请阅读:用于机器学习的 9 大 Python 库

结论

Twitter 情绪分析Python程序 这篇文章,只是一篇 创建这样一个程序的方法。 开发人员可以通过多种方式自定义程序以匹配规范,以实现数据读取的最大准确性,这就是通过 python 编程的美妙之处,python 是一种很棒的语言,由活跃的开发人员社区和太多的库支持。

Python 在机器学习和数据科学领域拥有巨大的空间。 有一段时间编程的人都知道,机器学习将继续成为编程未来的突破之一。

如果您想获得全面和结构化的学习体验,并且如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时严格的培训、30 多个案例研究和作业、IIIT-B 校友身份、5 多个实用的实践顶点项目和顶级公司的工作协助。

情感分析在社交媒体上的功能重要性是什么?

在这个社交媒体时代,消费者的意见拥有决定品牌成败的无限力量。 情感分析是准确了解消费者意见和情感背后驱动因素的最佳方式。 借助情绪分析中的可用数据,企业可以找到目标受众,为其品牌识别社交媒体影响者,并发现新兴市场趋势。 此外,社交媒体平台上的情绪分析还可以全面了解其品牌健康状况; 企业可以收到有关其新推出的产品和服务的诚实消费者反馈,从而进行改进。 通过更好地确定改进范围和问题解决方案,它还可以有效地处理在线声誉。

你能自学Python吗?

如果你有一定程度的编程经验,你当然可以开始自学 Python。 Python 具有相对简单的句法结构,也很直观,即使对于初学者来说也很容易理解。 此外,很容易安装包并从任何地方在您的机器上执行它。 您可以通过注册 Python 课程、参加编码训练营来加快学习速度。 借助一个始终愿意提供支持的活跃开发人员社区、丰富的学习资源和文档,初学者可以在大约 7-8 周内学习 Python 的基础知识。

Python 和 C++ 哪个更难学?

Python 和 C++ 是完全不同的编程语言,具有完全不同的行为和特性。 但是,两者都强烈支持面向对象的编程。 但是考虑到整个 Python 框架,它比 C++ 更简单、更容易、更快地学习。 事实上,很多人学习 Python 是为了体验简单编码的感觉。 Python 是开源的、免费的,并且在开发复杂的机器学习应用程序时提供了极大的可靠性和易用性。 虽然 C++ 在性能方面更高效,但它并不适合用于机器学习项目的 Python。