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

如何在RStudio/Python中用指定词表过滤EDGAR S-1披露文本的句子?

解决RStudio中过滤EDGAR S-1文件句子的问题

核心思路

读取目标S-1文本文件,拆分出所有句子,筛选出包含指定术语列表中任意词汇的句子,最终将筛选后的内容覆盖写入原文件。

具体代码实现

1. 可选:加载文本处理工具包

如果需要更便捷的文本操作,可使用stringr包:

# 首次使用需安装
install.packages("stringr")
# 加载包
library(stringr)

2. 定义术语列表

terms_list <- c("institutions", "disaster", "error")

3. 读取并处理文本内容

# 读取原文件所有行
text_lines <- readLines("your_s1_file.txt")
# 合并所有行成完整文本块
full_text <- paste(text_lines, collapse = " ")
# 拆分句子(适配句号、感叹号、问号结尾的常规句子格式)
sentences <- str_split(full_text, "(?<=[.!?])\\s+")[[1]]

# 筛选包含任意术语的句子(忽略大小写,按需可删除ignore_case参数)
filtered_sentences <- sentences[str_detect(sentences, regex(paste(terms_list, collapse = "|"), ignore_case = TRUE))]

# 合并筛选后的句子为完整文本
filtered_text <- paste(filtered_sentences, collapse = " ")

4. 覆盖写入原文件

# 直接覆盖原文件,操作前建议备份原文件避免数据丢失
writeLines(filtered_text, "your_s1_file.txt")

关键细节说明

  • 句子拆分优化:如果原文件存在带缩写的特殊句子(如"U.S.A."),可调整拆分正则表达式为"(?<=[.!?])(?<!U\\.S\\.A\\.)\\s+",避免误拆分。
  • 匹配规则调整:若需要严格区分大小写,删除regex()中的ignore_case = TRUE参数即可。
  • 数据安全:覆盖写入前务必备份原文件,防止意外丢失原始数据。

示例验证

假设原S-1文本:

We work with various institutions to manage risks. Our operations are not affected by recent disasters. This report contains no errors in financial data. We expect growth in next quarter.

运行代码后,原文件将被替换为:

We work with various institutions to manage risks. Our operations are not affected by recent disasters. This report contains no errors in financial data.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:30:49