如何将R语言text_tokens()输出转为带comment_id的data.frame?
解决方法
这里提供两种适配tidyverse的高效方法,来实现你需要的长格式结果:
方法1:mutate + unnest 组合
先将分词结果转为列表列加入原数据框,再展开成多行:
library(tidyverse) library(corpus) library(stopwords) text <- data.frame(comment_id = 1:2, comment_content = c("Hallo mein Name ist aaron","Vielen Lieben Dank für das Video")) tmp <- text_tokens(text$comment_content, text_filter(stemmer = "de", drop = stopwords("german"))) # 生成目标数据框 result <- text %>% mutate(comment_tokens = as.list(tmp)) %>% # 将tokens转为列表列 unnest(comment_tokens) # 展开列表列为多行 # 查看结果 print(result)
方法2:map2_df 批量构建数据框
通过遍历comment_id和分词结果,批量生成小数据框并自动合并:
# 直接生成目标数据框 result <- map2_df(text$comment_id, tmp, ~data.frame(comment_id = .x, comment_tokens = .y)) # 查看结果 print(result)
两种方法都能得到你期望的输出格式,且处理百万级数据时效率表现良好。
内容的提问来源于stack exchange,提问作者Aaron Philipp
相关产品推荐
相关产品推荐

