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

使用tidytext对texto_revision.txt分词时遇check_input错误求助

解决tidytext::unnest_tokens()的输入错误问题

这个错误我之前也碰到过,核心问题是unnest_tokens()对输入列的格式有严格要求——它需要你传入的是单个字符向量(每个单元格是一个独立的字符串),而你的text列显然不符合这个标准。下面一步步帮你排查解决:

第一步:先确认目标列的结构

首先得搞清楚你的text列到底是什么类型,是不是因子、列表或者其他非标准字符类型。运行下面的代码查看数据结构:

# 用base R查看整体结构
str(texto_revision)

# 或者用dplyr的glimpse更清晰
library(dplyr)
glimpse(texto_revision)

重点看text列的标注:

  • 如果显示Factor:说明列是因子类型,需要转成字符
  • 如果显示List:说明每个单元格是字符向量(不是单个字符串),需要先处理
  • 如果是其他非字符类型:也要先转成字符

第二步:针对不同情况处理

情况1:text列是因子类型

因子类型会被unnest_tokens()判定为非有效输入,先转成字符型再分词:

texto_revision <- texto_revision %>%
  mutate(text = as.character(text))

# 再尝试分词
texto_revision %>%
  unnest_tokens(word, text)

情况2:text列是列表列(每个单元格是多元素字符向量)

比如你的text列每个单元格是c("这是", "一段", "文本")这种形式,需要先把每个列表元素合并成单个字符串,或者先展开列表:

方法A:合并成单个字符串再分词

texto_revision <- texto_revision %>%
  mutate(text = sapply(text, paste, collapse = " ")) %>%
  unnest_tokens(word, text)

方法B:先展开列表再分词

texto_revision %>%
  unnest(text) %>% # 先把列表列展开成单行一个字符串
  unnest_tokens(word, text)

情况3:列名指定错误

有时候可能你要处理的字符列不叫text,比如实际列名是contenido或者review_text,那要替换成正确的列名:

# 把content替换成你实际的字符列名
texto_revision %>%
  unnest_tokens(word, content)

最后再验证

处理完之后,你可以用class(texto_revision$text)确认列类型是character,再运行分词代码应该就没问题了。

内容的提问来源于stack exchange,提问作者Samir Ricardo Neme Chaves

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:07:05