如何从文本文档中提取段落?

数据挖掘 数据挖掘 文本挖掘 数据清理
2021-10-08 12:52:18

我使用 pdftotext 从公司年报的 pdf 文件中提取了文本数据。提取的文件内容如下所示: Sample pdf file is here

前瞻性陈述

在本年报中,我们披露了前瞻性信息,使投资者能够

了解我们的前景并做出投资决定。本报告以及我们定期分享的其他书面和口头陈述包含

陈述……//内容以这种格式继续,直到段落结束//

永远的英雄

现在,如果查看上述链接上的实际报告,帐户注释和独立审计师报告下的文本遵循印度所有公司报告中几乎相似的结构。只有董事长的信息或董事会报告有所不同,但通常会谈论增长、业绩、未来、投资等。

那么有什么方法可以仅提取段落/多个段落组合成包含有用信息的单个(如果相同信息的延续)。我已经搜索过,但我发现大部分工作都在段落/文档摘要上,但没有找到像从文档中提取实际连续文本数据块这样的东西。注意:在从 pdf 转换为文本时生成的段落之间有很多嘈杂的数据(pdf 中的实际数据,但它们就像页码,如果公司在页眉/页脚中添加了一些文本,而不是页面标题等):

多行段落 R

ñ

一世

WE W DS REMA INDS

M 中的 BRANVANT

相关市场

和 SS 德卡

亚克罗

6

下一个多行段落

1个回答

并非总是可以从 pdf 中提取段落,因为有时段落会被拆分为多个 pdf 框架,因此pdftotext即使实际上存在链接,也要将它们拆分为不同的段落。类似地,即使它们代表不同的信息,例如示例 pdf 中的菜单,某些帧末端也会并置。

这是使用空行将文本文件拆分为多个段落的简单方法:

def txt2paragraph(filepath):
    with open(filepath) as f:
        lines = f.readlines()

    paragraph = ''
    for line in lines:
        if line.isspace():  # is it an empty line?
            if paragraph:
                yield paragraph
                paragraph = ''
            else:
                continue
        else:
            paragraph += ' ' + line.strip()
    yield paragraph