python - 如何使用 Tika 将 PDF 拆分为段落

标签 python pdf apache-tika

我有一个 PDF 文档,目前正在使用 Tika-Python 解析该文档。我想将文档分成几个段落。

我的想法是将文档分成段落,然后使用 isspace() 函数创建段落列表

我还尝试使用 \n\n 进行拆分,但没有任何效果。

这是我当前的代码:

file_data = (parser.from_file('/Users/graziellademartino/Desktop/UNIBA/Research Project/UK cases/file1.pdf'))
file_data_content = file_data['content']

paragraph = ''
for line in file_data_content:
    if line.isspace():  
        if paragraph:
            yield paragraph
            paragraph = ''
        else:
            continue
    else:
        paragraph += ' ' + line.strip()
yield paragraph

最佳答案

我无法确定 file_data_content 现在是什么样子,因为我不知道您使用什么来处理 PDF 数据以及它返回什么。但是,如果它返回一个基本字符串,例如 Line1\nLine2\netc.,则以下内容应该有效。当你说:

for line in file_data_content:

file_data_content 是一个字符串,您正在逐个字符而不是逐行处理字符串,这显然是一个问题。因此,您需要将文本拆分为行列表并处理该列表的每个元素:

def create_paragraphs(file_data_content):
    lines = file_data_content.splitlines(True)
    paragraph = []
    for line in lines:
        if line.isspace():
            if paragraph:
                yield ''.join(paragraph)
                paragraph = []
        else:
            paragraph.append(line)
    if paragraph:
        yield ''.join(paragraph)

text="""Line1
Line2

Line3
Line4


Line5"""

print(list(create_paragraphs(text)))

打印:

['Line1\nLine2\n', 'Line3\nLine4\n', 'Line5']

关于python - 如何使用 Tika 将 PDF 拆分为段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58606054/

相关文章:

java - 使用 tika 检索错误的 mime 类型 (application/x-tika-ooxml)

java - 是否可以使用java中的apache tika从excel表(从列或行)中获取特定数据?

python - 使用 os.walk 会缩短硬盘的使用生命周期

javascript - 如何在 Electron 浏览器窗口中查看 PDF?

javascript - 杂技 Actor 10 : Run Javascript whenever a different item is highlighted in a dropdown

java - Apache Tika 的 C/C++ 替代品

python - 用 Python 钓鱼

python - super 在多级继承中的使用

python - 当绘图到达 QChartView 边框时如何 ScrollView

javascript - pdf-lib 使用什么颜色格式?