首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Tika将PDF拆分为段落

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

Stack Overflow用户
提问于 2019-10-29 18:53:57
回答 2查看 1.5K关注 0票数 2

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

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

我也尝试过使用\n\n进行拆分,但是都不起作用。

这是我当前的代码:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-29 20:36:49

我不能确定file_data_content现在是什么样子,因为我不知道你用什么来处理你的PDF数据,以及它返回了什么。但是,如果它返回一个基本的字符串,比如Line1\nLine2\netc.,那么下面的代码应该是有效的。当你说:

代码语言:javascript
复制
for line in file_data_content:

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

代码语言:javascript
复制
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)))

打印:

代码语言:javascript
复制
['Line1\nLine2\n', 'Line3\nLine4\n', 'Line5']
票数 1
EN

Stack Overflow用户

发布于 2020-05-03 18:50:18

代码语言:javascript
复制
paragraphs = file_data_content.split('.\n\n')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58606054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档