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

时间:2019-10-29 10:53:56

标签: 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

2 个答案:

答案 0 :(得分:0)

我不确定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']

答案 1 :(得分:0)

paragraphs = file_data_content.split('.\n\n')