使用 Python 进行 Facebook 抓取和情绪分析¶
在今天的帖子中,我要向您展示如何非常轻松地抓取 Facebook 页面上发布的帖子,如何通过使用 Google NLP API 根据情绪程度和情绪态度进行情绪分析,以及我们如何将这些数据下载到 Excel 文件中。
最后,我要向您解释的是,如何计算不同变量之间的相关性,以便以"Likes"等方式衡量情绪态度或情绪量级的影响。在我看来,这是非常有用的东西,因为这样,你将能够理解哪个是语气或职位的类型,工作最好的这样一个社区。
但是,了解如何正确理解此数据非常重要,例如:
- 相关性需要具有统计意义:因此,我们还将计算 p 值。
- 相关性并不意味着因果关系:因为可能有很多其他因素没有考虑造成这种影响。
为了能够抓取 Facebook 的帖子,执行情绪分析,将这些数据下载到 Excel 文件中并计算我们将使用以下 Python 模块的相关性:
- Facebook 爬虫 :爬 Facebook页面上的帖子。
- 谷歌NLP API: 从规模和态度的角度做情绪分析。
- Pandas:将数据下载到 Excel 文件中。
- Scipy:计算变量之间的皮尔逊相关性。
1.- 在 Facebook 上抓帖子¶
使用 Facebook 抓取 Python 模块在 Facebook 页面上浏览帖子非常简单。您只需安装此模块并使用以下编写的代码:
您需要替换您感兴趣的页面的变量"any facebookpage",并插入要刮取的页数(在我的示例中,我只使用 2)。此代码将打印帖子的标题,并将帖子与字典一起附加在列表中的指标。
字典包含的指标包括:
- 发布 ID:此指标的键是
post_id
- 文本: 它们对此指标的键是
text
- 发布时间:此指标的键为
time
。 - 图像:此指标的键
image
,它将返回帖子主图像的链接。 - 视频:此指标的键
video
,它将返回帖子主图像的链接。 - 视频缩略图:此指标的键为
video_thumbnail
- 视频 ID:此指标的键是
video_id
- 赞数:此指标的键为
likes
- 注释数:此指标的键为
comments
- 股票数量:此指标的键为
shares
- 发布 URL:此指标的键是
post_url
- 链接:此指标的键为
link
- 图像:如果有多个图像,此变量将存储包含所有图像链接的列表。此指标的关键为
images
2.- 进行情绪分析¶
在抓取了尽可能多的帖子后,我们将使用 Google NLP API 执行情绪分析。为了使用 Google NLP API,首先您需要创建一个项目,启用自然语言服务并获取密钥。你可以找到一些 有关如何设置您的项目在此链接上的信息。
正确设置 NLP API 项目后,可以开始使用不同的模块。使用下面的代码,我们将对从 Facebook 页面中刮出的每个出版物执行情绪分析,我们将在帖子列表中附加一个新的字典键,其中每个帖子的大小和态度分数。
如果托管了 NLP API 密钥,则需要替换路径的变量"您的 NLPAPIkey"。现在,我们已经得到了情绪和幅度分数,让我们下载所有数据到用 Pandas处理的Excel文件。
您只需将
对于一些帖子,NLP API 模块无法计算其用加泰罗尼亚语编写的量级和态度分数,不幸的是,其模型还不支持加泰罗尼亚语。
当您要解释和分析幅度和态度分数时,重要的是要知道:
- 量级分数计算文本的情感程度。0 和 1 之间的分数将不传达情感,1 和 2 之间将传达低情绪,高于 2 将传达高情感。
- 态度分数计算文本是否与"正"、负或中性有关。低于0的结果将传达消极的态度,超过0他们将传达积极的态度。显然,比分越接近 1 或 -1,积极或消极的态度就越强,而分数越接近 0,态度就越中性。
3.- 计算相关性¶
最后,为了使我们的分析更加完整并理解变量之间的关系,我们将计算不同指标的 Pearson 相关性和 p 值。
这可能是一个有趣的分析,因为你能够理解,例如,你分析的社区反应更好,当发布的帖子是非常情绪化的,或当它是情绪中立,或者如果他们更喜欢消极或积极的态度的帖子。
认为 Facebook 上的用户对负面新闻的反应比正面新闻好,或者当帖子高度情绪化时,用户与品牌的互动更多,这是否有意义?这种假设是你可以用这种技术回答的。
为了运行我们的示例,我们将创建一个列表,其中包含赞、量级分数和态度分数,代码如下,我们将计算它们的相关性和 p 值:
巴塞罗那足球俱乐部职位的评分和赞之间的相关性是 0.006, 态度得分和赞之间的相关性是 0.10 。这意味着情绪不会对帖子的表现产生太大的影响,但如果帖子是积极的,它会对赞的数量产生一些积极的影响。
原文翻译自网文,作者:
原文: https://www.danielherediamejias.com/facebook-scraping-and-sentiment-analysis-with-python/