在靠近用户的地方部署容器
本工程教育(EngEd)计划由科支持。
在全球范围内即时部署容器。Section是经济实惠、简单而强大的。
免费开始。
推特数据的情感分析
2020年8月4日
社交网络是收集人们对不同主题的意见和情绪的主要资源,因为他们每天都会在社交媒体上花费数小时,并分享他们的意见。在这篇文章中,我们将讨论情感分析的应用以及如何连接到Twitter并运行情感分析查询。为了理解代码,需要有Python的基本知识。
情感分析是从一段文本中提取情感,并相应地将其分类为正面、负面或中性的过程。
为什么要在Twitter上进行情感分析?
情感分析在不同领域有许多应用。例如,公司可以通过社交媒体了解用户的反馈和评论--并获得关于其产品的实际反馈。社交网络是一个丰富的平台,可以在人们交流和分享意见时了解他们对不同主题的意见和情绪。
推特拥有13亿个账户,每月有3.3亿活跃用户,每天有1.45亿用户。推特数据是全世界最容易理解的现场公开对话的来源,因此可以作为了解客户情绪的宝贵工具,因为人们和市场对产品和商业决策做出了反应。
情绪分析可以预测即将发生的事件的结果,评估近期产品发布的影响,调整广告活动的方向或内容,等等。
用Python进行情绪分析
我们将使用Twitter的API来获取实时推文,进行情感分析,并将我们的发现可视化。
设置开发环境
使用pip ,安装所需的库。确保你安装了Python 3。
pip install tweepy
pip install textblob
pip install nltk
你应该有一个Twitter账户。申请一个开发者账户。填写后续步骤中要求的细节。

提交申请并等待开发者访问。
获得访问权限后,我们需要创建一个应用程序和API密钥,以便验证和整合大多数Twitter开发者产品。

填写所需的细节。忽略你不需要的字段(这些字段用于与Twitter和其他用例进行认证。)

转到你的应用程序下的Keys and Tokens 标签,以获得API密钥和API秘钥。(不要与他人分享。)

让我们开始吧
让我们开始编码。我们使用一个叫做tweepy的Python库来验证并从Twitter API中获取信息。你也可以使用twitter。
import tweepy
access_token = "xxxx"
access_token_secret = "xxxx"
consumer_key = "xxxx"
consumer_secret = "xxxx"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
Tweepy的API类提供了对整个twitterRESTfulAPI方法的访问。每个方法都可以接受各种参数并返回响应。
我们将使用API.search,它返回与指定查询相匹配的相关tweet的集合。一条原始推文可能包含许多不需要的字符和信息,如表情符号、"@"提及、"#"标签等。这些可能在其他情况下是有用的。

query=""
count=""
tweets = api.search(q=query, count=count)
text = []
for i in tweets:
text.append(i.text)
#we are extracting text and excluding metadata from the tweet
#this method is useful for getting tweets related to a particular topic
我们还可以使用API.mentions_timeline ,以获得您的组织在推特上被提及的最新推文。
接下来,我们在使用情感分析之前对文本进行清理。
import re
text = re.sub('@[A-Za-z0–9]+', '', text)
text = re.sub('#', '', text)
text = re.sub('RT[\s]+', '', text)
text = re.sub('https?:\/\/\S+', '', text)
#removed @mentions, #hastags and URLs
我们将使用TextBlob库来获取文本的情感。
from textblob import TextBlob
text = cleaned_tweet
blob = TextBlob(text)
sentiment = blob.sentiment.polarity
#blob.sentiment returns (polarity, subjectivity)
#polarity is within the range [-1.0, 1.0]. -1 very negative. 0 neutral. 1 very positive
#The subjectivity is a float within the range [0.0, 1.0] where 0.0 is very objective and 1.0 is very subjective.
TextBlob有Naive-Bayes分类器,我们可以用它来对文本进行分类。
情感分析如何工作
让我们来研究两个语句。
- 今天是个好日子,我很高兴。
- 真是个可怕的人。
当我们阅读这些句子时,单词happy,beautiful 描述了句子1的积极性,单词horrible 描述了句子2的消极性。像is,a 这样的词没有表达任何特定的情绪,是中性的。
我们可以有基于规则的系统,根据一组手工制作的规则进行情感分析,或者有依靠机器学习技术从数据中学习的自动系统。这些系统学习哪些词代表积极的情绪,哪些代表消极的情绪。
当然,单词在不同的背景下和对不同的人有不同的含义。因此--我们可以训练一个有监督的机器学习算法来进行情感分析。如果你有兴趣,你可以看看我的代码,我在这里用神经网络实现了情感分析。
样本结果和结论
作为一个用例,我对与JavaScript有关的推文进行了分析。以下是结果。
- 一个原始推文的例子。
RT @kennyrecruiter: Microsoft has released tutorials on building #Javascript applications using #nodejs. They look good and are easy to fol…
- 在清理了文本之后
: Microsoft has released tutorials on building Javascript applications using nodejs. They look good and are easy to fol…
-
我们的算法预测这是
1,意味着积极。 -
125条随机推文的情绪。

- 词汇云是用来直观地表示文本中的词汇的,字体越大,一个词的重复程度越高。
没有清洗。

有清洗。

正如你所看到的,清洗文本是一个非常重要的步骤,因为它使我们能够获得文本试图传达的主要信息。
情感分析对于一个团队来说,以类似的方式找出他们的用户是如何喜欢他们的产品的。