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

如何按日/周/月时间切片计算账号基于hashtag的两两相似度

你只需要先给每条推文生成对应时间粒度的切片标签,再按切片分组后执行原有的相似度计算逻辑即可,具体实现代码如下:

library(rtweet)
library(widyr)
library(tidyverse)

# 1. 拉取用户和推文数据,需要覆盖更长时间范围的话可以调大n参数
rstats <- search_users("rstats", n = 10)
rstats_tmls <- get_timeline(rstats$user_id, n = 1000)

# 2. 定义时间切片粒度,可选值:"day"(按日)/"week"(按周)/"month"(按月)
time_unit <- "month" 

# 3. 分组计算各时间切片下的账号相似度
rstats_tmls %>%
  # 生成时间切片标签,按周计算要改周起始日可以加week_start参数,比如week_start=7代表周日为一周第一天
  mutate(time_slice = floor_date(created_at, unit = time_unit)) %>%
  unnest(hashtags) %>%
  # 按时间切片+用户+hashtag计数
  count(time_slice, user_id, hashtags) %>%
  # 按时间切片分组,组内计算两两相似度
  group_by(time_slice) %>%
  pairwise_similarity(user_id, hashtags, n, sort = T, upper = FALSE)

最终输出结果会多一个time_slice列,标识每一条相似度结果对应的时间周期,你可以直接基于这个结果做后续的时间序列趋势分析。

注意事项

  • 如果需要统计的时间跨度较长,记得调大get_timeline的n参数,或者用rtweet的分页拉取接口获取更久之前的推文,避免单账号300条推文覆盖的时间范围不足
  • 若某一时间切片内某个账号没有发布带hashtag的内容,该账号不会出现在当期的相似度计算结果中
  • 按周统计时如果需要自定义周起始日,在floor_date函数中添加week_start参数即可,参数取值1-7对应周一到周日

内容的提问来源于stack exchange,提问作者mundos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:05