说明 PDF2Text 解析:为生成摘要任务而对文本进行预处理
Posted: Wed Jan 29, 2025 4:46 am
为了从大型语言模型生成准确的摘要(通过合理的努力),必须创建语言模型的文本输入数据的要求。源数据通常保存为 PDF 文件。因此,摘要生成流程的第一步是将 PDF 文件解析为文本文件。在解析过程之后,文本通常仍然包含噪声。这些是不必要的标记,对摘要的正确性或内容不起任何作用,但如果在语言模型中处理,仍然会花费金钱。因此,文本清洗是去除噪声并为下一步准备数据的重要步骤。数据上下文在我们如何进行文本清理方面可以发挥重要作用。例如,网页数据需要与报告(元数据标准较少)或期刊文章(元数据标准较多,例如 DOI、ISBN、参考文献等)不同的清理步骤。由于我们的数据各不相同,因此我们通常会开发一种文本清理流程,该流程会针对预期的大多数数据类型进行尽可能优化。定义文本清理管道的另一个标准是自然语言处理(NLP)任务的类型。对于摘要生成的任务,我们遵循下面介绍的文本清理管道。然而,对于其他 NLP 任务,可以考虑对文本清理管道进行相应的扩展。
在生成摘要的背景下,不提供有关共同主题的任何直接实质性信息 医疗保险线索电子邮件列表 的部分不会发挥作用,被称为噪音。如果文本包含大量噪音,可能会导致 LLM 模型生成错误的摘要。此外,它们被计算为代币。因此,从文本输入中去除噪声不仅可以提高生成摘要的正确性,还可以降低成本。
我们的客户示例中最常用的数据类型是报告、杂志文章和书籍。这些数据模式通常具有以下特征:它们通常在末尾包含文献部分,并且每个页面可能包含页眉和页脚。文献部分及其后续部分以及页眉和页脚都被视为噪音。此外,所有没有意义的特殊字符都应该从文本输入中删除。下图显示了我们将 PDF 文件解析为文本的优化流程。
将 PDF 解析为文本的优化流程
为了清理数据,首先使用PDFMinerPDFasHTMLLoader库将 PDF 文件BeautifulSoup转换为 LXML 格式。这种中间转换有助于定位重要和不重要的信息。然后进行清理。我们逐步删除文献部分及其后续部分、页眉和页脚、页码、URL 链接以及所有{A-Za-z0-9ÄÖÜäöüß.!?_$%&:;@,-} 未包含在列表中的特殊字符。然后使用 Aleph Alpha Luminous 模型对提取的文本进行总结。详细描述将在下一节中给出。
机器摘要描述:使用 Aleph Alpha 生成引导摘要
生成摘要分两步进行。在第一阶段对文本进行总结之前,首先对其进行预处理。为了创建可管理的文本单元,文本被分解为片段,由这些片段形成具有最小和最大单词数的句子。然后,这些句子被组合成部分,称为块,并传递到语言模型在第一阶段进行处理。每个块都被转换成一个简洁的摘要。为此,将使用下面给出的提示创建一条 Aleph-Alph 链。然后“map_llm_chain”被应用到每个块。
第一阶段摘要的结果是小的、可管理的部分(“块”)、每个部分的摘要(“块摘要”)和每个部分的标题(“块标题”)。
在第一阶段的结果传输到摘要生成的第二阶段之前,块被分成组(“主题”)。这是使用 Louvain 社区搜索算法完成的。已分组的部分根据使用 Louvain 算法找到的社区进行分组,以创建更全面、更连贯的摘要。 Aleph Alpha Map-Reduce 链用于从链接的部分生成文本摘要。具体提示用于生成关于文本各个方面的附加摘要,例如目标、方法、结果和含义。每个方面都有一个“地图提示”和一个“组合提示”(参见下面的示例)。
在生成摘要的背景下,不提供有关共同主题的任何直接实质性信息 医疗保险线索电子邮件列表 的部分不会发挥作用,被称为噪音。如果文本包含大量噪音,可能会导致 LLM 模型生成错误的摘要。此外,它们被计算为代币。因此,从文本输入中去除噪声不仅可以提高生成摘要的正确性,还可以降低成本。
我们的客户示例中最常用的数据类型是报告、杂志文章和书籍。这些数据模式通常具有以下特征:它们通常在末尾包含文献部分,并且每个页面可能包含页眉和页脚。文献部分及其后续部分以及页眉和页脚都被视为噪音。此外,所有没有意义的特殊字符都应该从文本输入中删除。下图显示了我们将 PDF 文件解析为文本的优化流程。
将 PDF 解析为文本的优化流程
为了清理数据,首先使用PDFMinerPDFasHTMLLoader库将 PDF 文件BeautifulSoup转换为 LXML 格式。这种中间转换有助于定位重要和不重要的信息。然后进行清理。我们逐步删除文献部分及其后续部分、页眉和页脚、页码、URL 链接以及所有{A-Za-z0-9ÄÖÜäöüß.!?_$%&:;@,-} 未包含在列表中的特殊字符。然后使用 Aleph Alpha Luminous 模型对提取的文本进行总结。详细描述将在下一节中给出。
机器摘要描述:使用 Aleph Alpha 生成引导摘要
生成摘要分两步进行。在第一阶段对文本进行总结之前,首先对其进行预处理。为了创建可管理的文本单元,文本被分解为片段,由这些片段形成具有最小和最大单词数的句子。然后,这些句子被组合成部分,称为块,并传递到语言模型在第一阶段进行处理。每个块都被转换成一个简洁的摘要。为此,将使用下面给出的提示创建一条 Aleph-Alph 链。然后“map_llm_chain”被应用到每个块。
第一阶段摘要的结果是小的、可管理的部分(“块”)、每个部分的摘要(“块摘要”)和每个部分的标题(“块标题”)。
在第一阶段的结果传输到摘要生成的第二阶段之前,块被分成组(“主题”)。这是使用 Louvain 社区搜索算法完成的。已分组的部分根据使用 Louvain 算法找到的社区进行分组,以创建更全面、更连贯的摘要。 Aleph Alpha Map-Reduce 链用于从链接的部分生成文本摘要。具体提示用于生成关于文本各个方面的附加摘要,例如目标、方法、结果和含义。每个方面都有一个“地图提示”和一个“组合提示”(参见下面的示例)。