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

使用R提取无元数据PDF文件标题的问题求助

解决PDF标题提取问题
  • 原代码的问题:

    1. 仅处理文本的第一行(text[1]),无法覆盖标题占1-3行的场景;
    2. 正则表达式^(\\s*)([A-Z\\s]+)\\s+.*会在遇到第一个非大写/非空格字符时停止匹配,若标题行内有连续空格或后续内容混入大写字符,会导致提取不完整。
  • 修正后的方案:
    先筛选出开头连续的全大写行(最多3行),再合并并清理多余空格:

# 假设text是从PDF提取的每行文本向量(如pdftools::pdf_text()拆分后)
# 定义函数判断是否为标题行:去除首尾空格后仅含大写字母和空格
is_title_line <- function(line) {
  trimmed <- trimws(line)
  nchar(trimmed) == 0 || grepl("^[A-Z\\s]+$", trimmed)
}

# 提取开头连续的标题行(最多3行),过滤空行
title_lines <- text[sapply(text, is_title_line)][1:3]
title_lines <- title_lines[nchar(trimws(title_lines)) > 0]

# 合并标题行并清理多余空格
titulo <- gsub("\\s+", " ", paste(title_lines, collapse = " "))
titulo <- trimws(titulo)
  • 补充说明:
    如果标题中包含标点(如连字符、逗号等),可以修改正则表达式的匹配规则,比如将^[A-Z\\s]+$改为^[A-Z\\s\\-\\.,:;!?]+$,覆盖常见标题标点。

内容的提问来源于stack exchange,提问作者Lucas Reydô

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:38:30