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

使用step_tokenfilter函数时R会话崩溃问题求助

解决tidymodels中step_tokenfilter导致R会话崩溃的问题

先复现你遇到的崩溃场景:

library(tidymodels)
library(textrecipes)

# 含特殊字符的测试数据
text_data <- tibble(
  text = c("Hello! @#$%^&*()_+", "World~`{}[]|\\:;\"'<>,.?/", "Test text with 特殊字符"),
  label = factor(c("a", "b", "a"))
)

# 触发崩溃的预处理流程
text_rec <- recipe(label ~ text, data = text_data) %>%
  step_tokenize(text) %>%
  step_tokenfilter(text, max_tokens = 10) %>%
  step_tf(text)

# 调用prep会导致R会话崩溃
prep(text_rec)

以下是几个可行的解决方法:

  • 提前清理特殊字符
    在分词前过滤掉非文字/数字的特殊符号,避免生成异常token导致崩溃:

    text_rec <- recipe(label ~ text, data = text_data) %>%
      step_mutate(text = stringr::str_replace_all(text, "[^\\w\\s]", " ")) %>%
      step_mutate(text = stringr::str_squish(text)) %>%
      step_tokenize(text) %>%
      step_tokenfilter(text, max_tokens = 10) %>%
      step_tf(text)
    
    prep(text_rec) # 可正常运行
    
  • 更换分词引擎
    默认分词器对特殊字符兼容性差,换成spacyr或其他引擎(需提前安装对应依赖):

    # 先安装并初始化spacyr
    # install.packages("spacyr")
    # spacyr::spacy_install()
    # spacyr::spacy_initialize()
    
    text_rec <- recipe(label ~ text, data = text_data) %>%
      step_tokenize(text, engine = "spacyr") %>%
      step_tokenfilter(text, max_tokens = 10) %>%
      step_tf(text)
    
    prep(text_rec)
    
  • 升级相关包
    该问题大概率是旧版本包的bug,更新tidymodels生态的核心包:

    update.packages(c("tidymodels", "textrecipes", "tokenizers", "dplyr"))
    

    更新后重新测试原代码,多数版本兼容问题会被修复。

  • 手动指定保留的token
    绕过step_tokenfilter的自动逻辑,先手动筛选高频token再传入:

    # 提前提取高频token
    token_counts <- text_data %>%
      mutate(tokens = map(text, ~ tokenizers::tokenize_words(.)[[1]])) %>%
      unnest(tokens) %>%
      count(tokens, sort = TRUE) %>%
      top_n(10) %>%
      pull(tokens)
    
    # 在recipe中只保留筛选后的token
    text_rec <- recipe(label ~ text, data = text_data) %>%
      step_tokenize(text) %>%
      step_tokenfilter(text, keep_tokens = token_counts) %>%
      step_tf(text)
    
    prep(text_rec)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.04 10:07:32