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

如何在DataFrame中为每条推文创建tokens列?已尝试转为tibble

给DataFrame添加分词列的实现方法

以下是几种简洁的实现方式,适用于在已有DataFrame中新增tokens列存储每行推文的分词结果:

方法1:使用tokenizers包(推荐,处理更专业)

先加载依赖包,直接通过tokenize_words生成分词列表列:

library(tokenizers)
library(dplyr)

# 假设你的数据框名为tweets_df,推文内容列名为text
tweets_df <- tweets_df %>%
  mutate(tokens = tokenize_words(text))

该方法会自动处理小写转换、标点移除,还可通过stopwords参数过滤停用词,比如:

# 过滤英文停用词
tweets_df <- tweets_df %>%
  mutate(tokens = tokenize_words(text, stopwords = stopwords("en")))

方法2:使用tidytext + purrr

如果习惯用tidytext生态,可结合map函数生成每行的分词列表:

library(tidytext)
library(dplyr)
library(purrr)

tweets_df <- tweets_df %>%
  mutate(tokens = map(text, ~ {
    unnest_tokens(tibble(content = .x), word) %>% 
    pull(word)
  }))

方法3:基础R实现(无需额外包)

用基础函数手动处理分词,适合快速验证:

# 先统一转小写,移除标点,再按空格分词
tweets_df$tokens <- lapply(tolower(tweets_df$text), function(x) {
  cleaned_text <- gsub("[^a-z0-9\\s]", "", x)
  strsplit(cleaned_text, "\\s+")[[1]]
})

注意:如果之前尝试转tibble时出现异常,大概率是误用了unnest_tokens直接展开行(该函数会把分词拆成多行),而上述方法都是保留每行的分词列表,符合你要在原数据框新增列的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:40:35