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

如何在R语言中提取PDF文件中的项目符号文本?

提取PDF中项目符号列表信息的R解决方案

核心思路

针对PDF文本中显示为<U+25CF>或•的项目符号,用正则表达式匹配所有以这些符号开头的行,提取内容后整理成目标格式,最终生成包含所有文档摘要的数据框。

完整代码

# 加载所需包(去重避免重复加载)
library(dplyr)
library(stringr)
library(pdftools)

# 设置工作路径
setwd("C:/documents/R_Studio")

# 获取所有PDF文件(转义点号,避免匹配任意字符)
files <- list.files(pattern = "\\.pdf$")

# 定义提取项目符号内容的函数
extract_bullet_points <- function(pdf_text) {
  # 将单页文本合并为整个文档的完整字符串
  full_text <- paste(pdf_text, collapse = "\n")
  
  # 匹配所有以<U+25CF>或•开头的行,提取符号后的内容
  bullet_items <- str_extract_all(full_text, "(?:<U\\+25CF>|•)\\s*(.*)")[[1]]
  
  # 提取捕获组内容并去除前后多余空格
  clean_items <- str_trim(str_extract(bullet_items, "(?<=\\s).*"))
  
  # 将内容用句号连接成目标格式
  paste(clean_items, collapse = ". ")
}

# 遍历所有PDF文件提取信息
bullet_summary <- lapply(files, function(file) {
  pdf_content <- pdf_text(file)
  list(
    filename = file,
    summary = extract_bullet_points(pdf_content)
  )
})

# 转换为标准数据框
summary_df <- bind_rows(bullet_summary)

# 查看结果
print(summary_df)

代码说明

  • 合并文本:pdf_text返回按页拆分的文本向量,用paste(collapse = "\n")合并成完整文档内容,避免跨页项目符号被拆分。
  • 正则匹配:(?:<U\+25CF>|•)匹配两种项目符号形式(非捕获组),\\s*(.*)匹配符号后的空格和内容,str_extract_all提取所有符合条件的行。
  • 内容清理:str_trim去除文本前后冗余空格,保证内容整洁。
  • 格式整理:用paste(collapse = ". ")将多个项目合并成连续字符串,匹配需求格式。
  • 生成数据框:通过lapply遍历所有文件,最后用bind_rows转换为数据框,方便后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:21:02