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

如何使用Python实现PDF中多关键词的同页共存检索

解决PDF中检索同时包含多个关键词的页面需求

Hey there!你要的是同时匹配两个关键词的PDF页面检索功能对吧?之前的多单词搜索应该是只要出现任意一个就返回,现在改成「必须同时存在」就好,我给你写个实用的实现方案,用pdfplumber库(这个库提取文本比PyPDF2更精准,不容易丢内容):

第一步:安装依赖

先确保你装了pdfplumber,没装的话跑这个命令:

pip install pdfplumber

第二步:完整实现代码

import pdfplumber

def find_pages_with_both_keywords(pdf_path, keyword1, keyword2):
    matching_pages = []
    # 打开PDF文件
    with pdfplumber.open(pdf_path) as pdf:
        # 遍历每一页,注意pdfplumber的页码从0开始,实际页面要+1
        for page_num, page in enumerate(pdf.pages):
            # 提取当前页面的文本
            page_text = page.extract_text()
            # 跳过提取失败的页面(比如纯图片页)
            if not page_text:
                continue
            # 检查两个关键词是否都在页面文本里(不区分大小写的话可以转成lower)
            if keyword1.lower() in page_text.lower() and keyword2.lower() in page_text.lower():
                # 把实际页码(从1开始)加入列表
                matching_pages.append(page_num + 1)
    return matching_pages

# 示例使用
if __name__ == "__main__":
    pdf_file = "your_document.pdf"  # 替换成你的PDF路径
    key1 = "Name"
    key2 = "Address"
    result = find_pages_with_both_keywords(pdf_file, key1, key2)
    if result:
        print(f"同时包含'{key1}'和'{key2}'的页面页码是:{result}")
    else:
        print(f"没有找到同时包含'{key1}'和'{key2}'的页面")

代码说明:

  • 用pdfplumber打开PDF,遍历每一页提取文本
  • 加入了不区分大小写的匹配逻辑(如果需要严格区分大小写,去掉.lower()就行)
  • 跳过了无法提取文本的页面(比如全是图片的页面,这类页面也不可能包含文本关键词)
  • 返回的是实际页码(从1开始),符合日常阅读的页码习惯

可选调整:

如果需要支持更多关键词(比如同时匹配3个),只需要把判断条件改成:

all(keyword.lower() in page_text.lower() for keyword in [key1, key2, key3])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:52:32