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

使用R tidy text mining分句时重编码拆分同句多行为的方法

问题原因

你编写的代码未生效的核心原因是dplyr::recode()是全值匹配函数,只有当column列的单元格内容完全等于apples and oranges时才会触发替换,只要单元格内存在其他字符(比如前后还有其他描述内容)就不会生效。

解决方法

方法1:用正则全局替换匹配局部内容

使用stringr::str_replace_all()支持文本内的局部匹配,还可以批量配置拆分规则,适配所有需要拆分的行为组合即可:

library(tidyverse)
library(tidytext)

# 配置拆分规则:命名向量的键为原并列短语,值为拆分后的带句号格式
split_rules <- c(
  "apples and oranges" = "apples. Oranges",
  "walking and biking" = "walking. Biking"
  # 可继续添加其他需要拆分的并列行为组合
)

# 全局替换所有匹配到的短语
data <- data %>% 
  mutate(behaviour = str_replace_all(column, split_rules))

# 分句
tidy_text_data <- data %>% 
  unnest_tokens(output = "sentences", input = behaviour, token = "sentences")

方法2:通用正则自动拆分所有并列结构

如果你需要拆分的都是「A and B」类结构,无需逐个指定匹配项,可直接用通用正则规则自动处理,还支持自动将拆分后首字母大写,适配分句规则:

data <- data %>% 
  mutate(behaviour = str_replace_all(column, "([a-zA-Z]+) and ([a-zA-Z]+)", "\\1. \\U\\2"))

其中\\U\\2会自动将匹配到的第二个行为首字母转为大写,符合句子开头格式,提升分句准确率。

方法3:自定义分句规则更可控

如果默认的句子分词规则仍不符合你的拆分需求,可直接指定你插入的句号作为拆分依据,完全自主控制拆分逻辑:

tidy_text_data <- data %>% 
  unnest_tokens(
    output = "sentences", 
    input = behaviour,
    token = "regex",
    pattern = "\\.\\s?"
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:39:03