使用R实现Twitter用户教师身份分类的代码问题求助
问题根因
- 你编写的
todosTwits %>% map_df(as_tibble)代码没有赋值给新变量,转换后的tbl格式结果直接丢失,后续操作的todosTwits仍然是嵌套的status列表,自然无法提取screenName字段 - 嵌套列表结构未正确处理:每个
searchTwitter返回的是独立的status对象集合,两层嵌套结构直接转tibble会出现格式错误 - 后续代码还存在多处语法问题:
append()操作无赋值、用%in%做字符串包含匹配、误用Python风格的.append()方法、变量名拼写不一致
修正后可运行代码
library(twitteR) library(tidyverse) # 检索关键词配置 palabras = c("dolor", "cansado", "#agotado") todosTwits = list() # 批量检索推文 for(i in seq_along(palabras)){ todosTwits[[i]] = searchTwitter(palabras[i], n = 100) } # 转换为tbl格式:用twitteR自带的twListToDF兼容status对象,合并所有检索结果 tweets_tbl <- map_dfr(todosTwits, twListToDF) # 提取去重用户名,不需要循环实现 listaUsuarios <- unique(tweets_tbl$screenName) # 批量查询用户信息 usrs <- lookupUsers(listaUsuarios) usuarios_tbl <- twListToDF(usrs) # 匹配简介含docente的教师用户,忽略大小写 listaDocentes <- usuarios_tbl$screenName[grepl("docente", usuarios_tbl$description, ignore.case = TRUE)]
额外优化建议
- 可以在简介匹配时加入更多教师相关关键词,降低漏判概率
- 调用API时可以添加异常捕获逻辑,避免个别用户查询失败导致整个代码中断
- 可以对简介文本先做清洗,去掉特殊符号、emoji后再匹配,提升准确率
内容的提问来源于stack exchange,提问作者yefersonG
相关产品推荐
相关产品推荐

