R语言使用tidytext做客户评价情感分析执行unnest_tokens报输入格式错误
解决tidytext分词时的输入校验报错
报错根源
unnest_tokens内置的输入校验逻辑要求:待分词的列必须是由长度为1的单值字符组成的普通向量列,当前你传入的ReqSummary列数据类型不符合要求,因此触发check_input的报错。
操作步骤
- 先定位列的实际类型,运行代码查看结果:
触发这类报错的常见类型为两种:因子(factor)、嵌套列表(list)。class(data.tb$ReqSummary) - 针对类型做转换修正:
- 如果类型为因子:直接转成字符格式即可
data.tb$ReqSummary <- as.character(data.tb$ReqSummary) - 如果类型为嵌套列表(单元格内存放了多值向量):先把每行的内容拼接为单条字符串,再转字符类型
data.tb$ReqSummary <- sapply(data.tb$ReqSummary, paste, collapse = " ") data.tb$ReqSummary <- as.character(data.tb$ReqSummary) - 额外排查:确认
ReqSummary是data.tb里真实存在的列名,没有拼写错误、隐形前后空格,避免取到错误列触发校验失败。
- 如果类型为因子:直接转成字符格式即可
- 类型修正完成后,直接运行原有分词代码即可正常跑通流程:
data.tok <- unnest_tokens(data.tb, output = word, input = ReqSummary, to_lower = TRUE, strip_punct = TRUE, strip_numeric = TRUE)
内容的提问来源于stack exchange,提问作者Narin
相关产品推荐
相关产品推荐

