使用tidytext从R数据框提取哈希标签报错,求解决方案
解决tidytext提取推文哈希标签的报错问题
tidytext 0.4.0版本后彻底移除了token = "tweets"的支持,所以你原代码会报错,这里提供两种替代方案:
方法1:用正则表达式直接提取哈希标签
这种方式更直接高效,适合只需要提取哈希标签的场景:
library(tidytext) library(dplyr) library(stringr) otros_numerales_numeral_petro <- Numeral_Petro_sin_emojis %>% # 用正则匹配以#开头的哈希标签,直接提取 unnest_tokens(output = "hashtag", input = "Texto", token = "regex", pattern = "#\\w+") %>% # 可选:统一转为小写,避免同一标签大小写不同导致的重复 mutate(hashtag = str_to_lower(hashtag))
正则#\\w+会匹配所有以#开头、后续跟着字母/数字/下划线的内容,完美覆盖标准哈希标签格式。
方法2:借助tokenizers包的推特分词功能
如果后续还需要提取@提及等其他推特元素,可以用这种方式:
library(tidytext) library(dplyr) library(tokenizers) library(stringr) otros_numerales_numeral_petro <- Numeral_Petro_sin_emojis %>% # 对每条推文做推特分词,筛选出哈希标签 mutate(hashtags = map(Texto, ~ tokenize_tweets(.x)[[1]] %>% str_subset("^#"))) %>% # 展开为每行一个哈希标签 unnest(hashtags, names_repair = "unique") %>% # 重命名列名 rename(hashtag = hashtags) %>% # 可选:统一转为小写 mutate(hashtag = str_to_lower(hashtag))
tokenize_tweets()会自动识别推特专属元素(哈希标签、@提及、网址等),再通过str_subset筛选出哈希标签即可。
内容的提问来源于stack exchange,提问作者Juan Jose Echeverry De Mendoza
相关产品推荐
相关产品推荐

