You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用academictwitteR提取Twitter提及ID并构建提及网络?

用academictwitteR构建Twitter提及网络

问题背景

使用academictwitteR的get_all_tweets获取推文后,tidy格式数据丢失了提及信息,而提及内容存储在非规整数据框的tweets_bind_lega$entities$mentions列表列中,需要将其展开为规整数据框用于构建提及网络。

解决方案

借助dplyr和tidyr工具包,可快速将嵌套的提及列表展开,并提取构建网络所需的关键字段:

1. 加载依赖包

library(dplyr)
library(tidyr)

2. 展开提及列表并整理为网络边表

# 从原始非规整数据中提取核心字段,展开提及列表
mentions_edge_list <- tweets_bind_lega %>%
  # 保留发推用户ID、推文ID以及嵌套的提及数据
  select(author_id, tweet_id = id, mentions = entities$mentions) %>%
  # 展开每个推文的提及列表,空提及的推文将被过滤(如需保留可设keep_empty = TRUE)
  unnest(mentions, keep_empty = FALSE) %>%
  # 重命名并提取网络分析所需的核心列
  transmute(
    source = author_id,       # 发推用户(网络节点起点)
    target = username,        # 被提及用户(网络节点终点)
    tweet_id = tweet_id       # 关联的推文ID(可选,用于溯源)
  )

# 查看整理后的边表
head(mentions_edge_list)

3. 构建提及网络(可选)

如果需要直接生成可分析的网络对象,可使用igraph包:

library(igraph)

# 基于边表创建有向网络对象
mentions_graph <- graph_from_data_frame(mentions_edge_list[, c("source", "target")], directed = TRUE)

# 查看网络基本属性
summary(mentions_graph)

补充说明

  • 若需将用户ID转换为用户名,可使用academictwitteR的lookup_users函数,传入ID列表获取用户详情后关联到边表中
  • 可添加created_at字段,实现按时间切片的动态网络分析

内容的提问来源于stack exchange,提问作者Doło

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:09:15