Spacy结合PyPDF2识别pdf中的实体(初步效果)

作用如题

import spacy
import PyPDF2

# 加载 Spacy 中文模型
model = spacy.load('zh_core_web_sm')


# 提取 PDF 文本并进行实体识别
def extract_entities_from_pdf(pdf_path, page_number):
    # 使用 'rb' 模式打开 PDF 文件
    with open(pdf_path, mode='rb') as mypdf:
        # 调用 PdfFileReader 函数
        pdf_document = PyPDF2.PdfReader(mypdf)

        # 获取 PDF 文档的页数
        num_pages = len(pdf_document.pages)
        print(f"PDF 文档页数: {num_pages}")

        # 确保页码不超出范围
        if page_number >= num_pages:
            print(f"输入的页码超出范围(最大页数 {num_pages}),请检查页码")
            return

        # 提取指定页面的文本内容
        page = pdf_document.pages[page_number]
        text = page.extract_text()

        print(f"第 {page_number + 1} 页内容:")  # 页码从 1 开始
        print(text)

        # 使用 Spacy 模型处理文本
        doc = model(text)

        # 存储抽取到的实体,使用 set 去重
        entities = set()
        for entity in doc.ents:
            entities.add(str(entity) + ':' + str(entity.label_))

        # 打印去重后的实体
        print(f"第 {page_number + 1} 页中的实体:")
        print(entities)
        return entities


# 使用示例
pdf_path = 'zhengzhi_9up.pdf'  # PDF 文件路径
page_number = 11  # 要提取的页码(第10页)

entities = extract_entities_from_pdf(pdf_path, page_number)

'''
效果:
PDF 文档页数: 127
第 12 页内容:
改革开放以来,我国城乡就业规模持续扩大,人民收入较快增长,家庭财产稳步增加,打赢了人类历史上规模最大的脱贫攻坚战,建成世界上规模最大的教育体系、社会保障体系、医疗卫生体系。中国人民通过改革开放过上了幸福生活。
改革开放是中国和世界共同发展进步的伟大历程,不仅深刻改变了中国,也深刻影响着世界。从“引进来”到“走出去” ,从加入世界贸易组织到共建“一带一路” ,从应对亚洲金融危机和国际金融危机到成为世界经济增长的主要稳定器和动力源,中国已经成为影响世界的重要力量。
探究与分享
	请用一组微镜头,晒晒你和家人的幸福生活。
我们的笑脸食
住 行
……衣
第一课 踏上强国之路
7

第 12 页中的实体:
{'第一:ORDINAL', '7:CARDINAL', '亚洲:LOC', '世界贸易组织:ORG', '中国:NORP', '中国:GPE'}
'''
posted @ 2024-10-21 16:56  Akimizuss101  阅读(20)  评论(1编辑  收藏  举报