Google colab 基于BERTopic 特朗普推文的动态主题建模

目录

动态主题模型

下载 BERTopic

数据处理

基本主题模型

随时间推移的主题

注意参数

docs

timestamps

global_tuning

evolution_tuning

nr_bins

随时间推移可视化主题



我们将使用动态主题建模和BERTopic来可视化特朗普推文中的主题如何随着时间的推移而演变。这些主题将被可视化和彻底探索。

动态主题模型


动态主题模型可用于分析文档集合的主题随时间推移的演变。

下载 BERTopic

%%capture
!pip install bertopic

数据处理

import re
import pandas as pd
from datetime import datetime

# Load data
trump = pd.read_csv('https://drive.google.com/uc?export=download&id=1xRKHaP-QwACMydlDnyFPEaFdtskJuBa6')

# Filter
trump.text = trump.apply(lambda row: re.sub(r"http\S+", "", row.text).lower(), 1)
trump.text = trump.apply(lambda row: " ".join(filter(lambda x:x[0]!="@", row.text.split())), 1)
trump.text = trump.apply(lambda row: " ".join(re.sub("[^a-zA-Z]+", " ", row.text).split()), 1)
trump = trump.loc[(trump.isRetweet == "f") & (trump.text != ""), :]
timestamps = trump.date.to_list()
tweets = trump.text.to_list()
tweets[0]
#republicans and democrats have both created our economic problems#

基本主题模型


要使用BERTopic执行动态主题建模,我们首先需要使用所有推文创建一个基本的主题模型。时间方面将被忽略,因为我们目前只对这些推文中的主题感兴趣。

from bertopic import BERTopic
topic_model = BERTopic(min_topic_size=35, verbose=True)
topics, _ = topic_model.fit_transform(tweets)

然后,我们可以提取最常见的主题: 

freq = topic_model.get_topic_info(); freq.head(10)

 

-1 表示所有异常值,通常应忽略。接下来,让我们看一下生成的一个常见主题:

topic_model.get_topic(4)

 

我们可以可视化使用主题间距离图创建的基本主题。这使我们能够在随着时间的推移继续创建主题之前直观地判断基本主题是否足够。 

fig = topic_model.visualize_topics(); fig

随时间推移的主题


在开始动态主题建模步骤之前,您对之前创建的主题感到满意非常重要。我们将使用这些特定主题作为动态主题建模的基础。

因此,此步骤将主要向您展示以前定义的主题如何随着时间的推移而演变。

 

注意参数

docs


这些是我们正在使用的推文


timestamps


每条推文/文档的时间戳


global_tuning


是否将主题在时间 t 处的主题表示与其全局主题表示形式求平均值


evolution_tuning


是否将主题在时间 t 处的主题表示与该主题在时间 t-1 的主题表示进行平均


nr_bins


要将时间戳放入的箱数。在数千个不同的时间戳中提取主题在计算上效率低下。因此,建议将此值保持在 20 以下。

topics_over_time = topic_model.topics_over_time(docs=tweets, 
                                                timestamps=timestamps, 
                                                global_tuning=True, 
                                                evolution_tuning=True, 
                                                nr_bins=20)

随时间推移可视化主题


创建topics_over_time后,我们将不得不可视化这些主题,因为随着时间维度的增加,访问它们变得更加困难。

为此,我们将根据主题的频率可视化主题随时间推移的分布。这样做可以让我们看到主题如何随着时间的推移而演变。确保将鼠标悬停在任何点上,以查看时间 t 处的主题表示形式与全局主题表示形式有何不同。

topic_model.visualize_topics_over_time(topics_over_time, top_n_topics=20)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Google Colab是由谷歌开发的基于云计算模式的Python交互式环境。它提供了免费的云存储、GPU加速计算等功能,方便用户进行机器学习和数据分析等任务。Google Colab工作环境基于Jupyter Notebook,提供丰富的编辑环境和代码编辑区域,同时也支持文件上传下载、协作编辑等功能。用户可以直接在Colab中编写代码、运行代码、可视化结果并分享笔记本,使得协同工作更加便利。Google Colab还提供了一系列的示例代码和数据集,方便用户快速开始工作。此外,Google Colab也支持多种外部库和框架的集成,包括TensorFlow、PyTorch、Scikit-Learn等等。Google Colab的优点在于让用户无需担心运行环境配置和硬件设备的问题,只需要连接网络即可享受高性能计算和机器学习体验。 在实际工作和学习中,Google Colab是一个非常方便、快捷、强大的工具,让用户能够轻松进行数据分析、深度学习机器学习等等任务,加速您的工作流程,提高数据视觉化和深度学习技能等方面的技能水平,是一种非常值得尝试的工具。 ### 回答2: Google Colab是一个基于云端的Jupyter笔记本,可以免费使用。它提供了一个可以运行Python代码的环境,通过让用户无需自己设置Python环境,可以快速和方便地进行代码开发和学习Google Colab通过连接到Google云计算平台,提供了大量的计算资源。这意味着用户可以像在本地电脑上一样对大数据集、深度学习机器学习算法进行实验,而不必担心内存和处理器的限制。 使用Google Colab,用户可以创建自己的笔记本、导入和导出笔记本、共享笔记本以及与其他用户进行协作。由于一些常用的Python包和库,如NumPy、Pandas、Scikit-Learn、TensorFlow等经常会被使用到,Google Colab 提供了默认的安装,因此用户无需再次安装它们,可直接在笔记本中使用。 Google Colab还具有其他优势,如自动保存、更改历史记录、git集成、Markdown和Latex支持等。它还提供了API,可以在代码中调用Google云平台上的Google服务,如Google Drive、Google BigQuery等,使其具有更强大的功能。 总之,Google Colab通过连接到云计算平台、提供丰富的计算资源和便携的笔记本,提供了开发和学习Python的优雅方式,成为热门的Python编程工具之一。 ### 回答3: Google Colab是一种云端的Python开发环境,由Google开发,基于Jupyter Notebook,可以免费使用。Colab可以在任何设备上运行,使开发、测试和部署机器学习模型变得更加简单和高效,广受科研人员和数据分析师们的喜欢。 Colab的优点包括: 1.免费:Colab是完全免费的,无需支付任何费用。它可以为用户提供Google云计算的全部优势。 2.易于使用:Colab的用户界面简单易懂,无需任何设置,即可开始使用。 3.包含强大的IT资源:Colab支持Python和TensorFlow等各种开发环境,并且内置的硬件可以很好地支持训练深度学习模型。 4.轻松分享:Colab用户可以使用Google Drive或GitHub等网站轻松地分享代码,并与其他Colab用户合作。 5.智能化代码编辑:Colab支持代码智能补全、语法高亮和其他操作。这会减少错误并提高编码效率。 总而言之,Google Colab对于需要高性能计算的科学家和数据分析师是一个非常好的选择。它可以帮助您快速、轻松地开始编写、训练和部署机器学习模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值