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

如何用R统计多份PDF特定关键词频次并生成表格(代码失效求助)

多PDF文件关键词频次统计实现方案

你需要统计多份PDF中特定关键词的出现次数,并生成指定格式的统计表格,之前的代码没实现核心的关键词统计功能,下面是可直接用的Python解决方案:

准备工作

先安装需要的依赖库:

pip install PyPDF2 pandas

完整代码实现

import PyPDF2
import pandas as pd
import os

# 替换成你要统计的目标关键词
TARGET_KEYWORD = "目标关键词"
# 替换成你的PDF文件存放目录
PDF_FOLDER = "./pdfs"
# 公司与ID的映射,根据你的需求修改
COMPANY_ID_MAP = {"Colgate": 1, "Pfizer": 2}

# 初始化存储统计数据的列表
stats_data = []

# 遍历目录下所有PDF文件
for file_name in os.listdir(PDF_FOLDER):
    if not file_name.endswith(".pdf"):
        continue
    
    # 从文件名提取公司名和年份(假设文件名格式为「公司名_年份.pdf」,比如Colgate_2011.pdf)
    file_info = file_name.replace(".pdf", "").split("_")
    company_name = file_info[0]
    year = int(file_info[1])
    company_id = COMPANY_ID_MAP.get(company_name, 0)  # 未知公司ID设为0
    
    # 读取PDF并提取文本
    pdf_path = os.path.join(PDF_FOLDER, file_name)
    with open(pdf_path, "rb") as f:
        pdf_reader = PyPDF2.PdfReader(f)
        full_text = ""
        for page in pdf_reader.pages:
            page_text = page.extract_text()
            if page_text:
                full_text += page_text
    
    # 统计关键词出现次数(不区分大小写)
    keyword_count = full_text.lower().count(TARGET_KEYWORD.lower())
    
    # 将数据加入列表
    stats_data.append({
        "Company name": company_name,
        "Year": year,
        "ID": company_id,
        "Keyword count": keyword_count
    })

# 生成表格并输出
result_df = pd.DataFrame(stats_data)
# 按公司名和年份排序,和你要的格式对齐
result_df = result_df.sort_values(by=["Company name", "Year"])
# 打印表格
print(result_df.to_string(index=False))
# 保存为CSV文件(方便后续用Excel打开)
result_df.to_csv("keyword_statistics.csv", index=False)

注意事项

  1. 文件名格式:如果你的PDF文件名不是「公司名_年份.pdf」,需要修改提取公司名和年份的逻辑,或者提前做一个映射表(比如单独建个CSV,记录每个PDF对应的公司、年份、ID),再读取这个映射表来匹配数据。
  2. 扫描版PDF:如果是扫描生成的PDF(图片格式),PyPDF2无法提取文本,需要额外安装pytesseract和Pillow,用OCR技术提取文本后再统计。
  3. 多关键词统计:如果要统计多个关键词,把TARGET_KEYWORD改成列表,循环统计每个关键词的次数,再在表格里增加对应列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:55:25