在R语言中如何删除不规则文本块中的昵称片段,仅保留评论内容?
R语言混杂昵称评论的文本清洗方案
适用场景
处理Comment字段中混杂用户昵称、评论、无固定分隔规则的爬取数据,目标是提取纯评论内容用于词云分析。
示例数据构造
你提供的可复现数据代码如下:
library(dplyr) library(stringr) df2 <- data.frame(Num = c(1,2,3), Comment = c('nick comment12021.12.01 nickn comment2222021.12.02 nickname333 commennnnt222021.12.01', 'nick comment12021.12.01 nickn comment2222021.12.02 nickname333 commeeeent222021.12.01', 'nick comment12021.12.01 nickn comment2222021.12.02 nickname3333333 comment22021.12.01') )
方案1:基于固定格式标记提取(适配你给出的示例)
你的示例中所有评论末尾都带有YYYY.MM.DD格式的固定日期标记,用正则匹配即可快速提取纯评论,可选是否保留日期:
保留评论末尾日期
df_clean <- df2 %>% mutate(comment_only = str_extract_all(Comment, "\\S+\\d{4}\\.\\d{2}\\.\\d{2}") %>% sapply(paste, collapse = " "))
不保留日期(更适合词云分析)
df_clean <- df2 %>% mutate(comment_only = str_extract_all(Comment, "(\\S+)\\d{4}\\.\\d{2}\\.\\d{2}", group = 1) %>% sapply(paste, collapse = " "))
方案2:无固定标记时的处理方法
如果数据没有统一的结束标识,可以用两种方式处理:
- 提前收集爬取站点的用户昵称生成词库,用正则批量替换所有匹配到的昵称,剩余内容即为评论
- 回溯爬虫逻辑,动态网站的昵称和评论分属不同HTML节点,重新爬取分别抓取两个字段,准确率远高于事后清洗混杂文本
内容的提问来源于stack exchange,提问作者Yun
相关产品推荐
相关产品推荐

