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

如何将语句切分为最多n词的字符串?求R语言快速实现方法

在R语言中快速生成最多含3个词的滑动字符串块

问题

给定这段文本:

passage <- "Approximately 60 cases have been reported in the medical literature. Onset is in infancy."

需要把它切分成最多包含3个词的滑动字符串块,最终输出要和示例一致。

解决方案

用基础R就能快速实现,不需要额外安装包,步骤如下:

  1. 拆分文本为单个词的向量
words <- strsplit(passage, " ")[[1]]
  1. 遍历每个词的位置,生成1到3个词的滑动组合
word_count <- length(words)
output <- unlist(lapply(1:word_count, function(pos) {
  # 计算当前位置能取到的最大词数(最多3个)
  max_words <- min(3, word_count - pos + 1)
  # 生成1到max_words个词的拼接字符串
  sapply(1:max_words, function(k) paste(words[pos:(pos + k - 1)], collapse = " "))
}))
  1. 查看结果
print(output)

原理说明

  • strsplit按空格把文本拆分成独立的词向量,这是后续操作的基础。
  • 遍历每个词的位置pos,对每个位置,先确定能取到的最大词数(不能超过3个,也不能超出剩余词的数量)。
  • 对每个位置,生成1、2(如果有)、3(如果有)个词的拼接结果,最后用unlist把所有结果合并成一个向量,就是需要的输出。

如果你习惯用purrr包,也可以用map系列函数替代lapply,但基础R的写法已经足够高效,无需额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:02:21