You need to enable JavaScript to run this app. R语言如何删除语料库中Disclosure前及Conclusion后的所有文本
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何删除语料库中Disclosure前及Conclusion后的所有文本

R语料库指定关键词区间截取实现方案

你可以通过tm包的自定义内容转换功能,配合正则匹配完成区间截取,操作如下:

1. 编写自定义文本处理函数

我们先写一个函数,实现单个文本的截取逻辑:如果文本同时存在Disclosure和Conclusion两个关键词,就保留两个关键词之间的内容,否则保留原文避免报错。

# 需先加载stringr包处理正则,没有安装的话先运行 install.packages("stringr")
library(stringr)

trim_text_by_keywords <- function(text) {
  # 正则匹配Disclosure和Conclusion之间的所有内容,(?s)是让.可以匹配换行符
  matched <- str_extract(text, "(?s)(?<=Disclosure).*?(?=Conclusion)")
  # 如果匹配不到内容就返回原文,避免空值
  ifelse(is.na(matched), text, matched)
}

2. 将函数应用到整个语料库

用tm_map结合content_transformer把自定义函数应用到每一条语料:

corp <- tm_map(corp, content_transformer(trim_text_by_keywords))

补充说明

  • 如果你的文档里关键词存在大小写变体(比如小写disclosure、全大写CONCLUSION),可以在str_extract里添加regex(, ignore_case = TRUE)参数,调整后的匹配语句为:
    matched <- str_extract(text, regex("(?s)(?<=Disclosure).*?(?=Conclusion)", ignore_case = TRUE))
  • 如果你需要保留Disclosure和Conclusion两个关键词本身,只需要调整正则的位置匹配规则即可,修改匹配语句为:
    matched <- str_extract(text, "(?s)Disclosure.*?Conclusion")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:09:03