使用PYPDF和Langchain

PDF看起来很简单 - 直到您尝试解析一个。这是建造自己的解析器的方法。

来源:KDnuggets
作者的图像| canva

PDF文件无处不在。您可能已经在各个地方看到了它们,例如大学论文,电费,办公合同,产品手册等。它们非常普遍,但是与他们合作并不像看起来那么容易。假设您想从PDF中提取有用的信息,例如阅读文本,将其分为部分或快速摘要。这听起来很简单,但是一旦尝试,您会发现它不会那么平稳。

与Word或HTML文件不同,PDF不会以整洁,可读的方式存储内容。取而代之的是,它们的设计看起来不错,而不是通过程序阅读。文本可以到处都是,分为怪异的块,散布在页面上,也可以与表和图像混合。这使得很难从中获取清洁,结构化的数据。

在本文中,我们将构建可以处理这种混乱的东西。我们将创建一个可以:

我们将创建一个可以
    Extract and clean text from PDFs at the page level, with optional layout preservation for better formattingHandle image metadata extractionRemove unwanted headers and footers by detecting repeated lines across pages to reduce noiseRetrieve detailed document and page-level metadata, such as author, title, creation date, rotation, and page sizeChunk the content into manageable pieces for further NLP or LLM processing
  • 在页面级别从PDF中提取和清洁文本,并具有可选的布局保存,以更好地格式
  • 处理图像元数据提取
  • 通过检测到跨页面的重复线以减少噪音
  • 检索详细的文档和页面级元数据,例如作者,标题,创建日期,旋转和页面大小
  • 将内容切成可管理的零件,用于进一步的NLP或LLM处理
  • 让我们开始。

    文件夹结构

    在开始之前,最好组织您的项目文件以清晰度和可扩展性。

    __init.py__

    需要的工具(unigness.txt)

    所需的必要库是:

    pypdf

    和运行: