python - 如何使用 Tika 将 PDF 拆分为段落
问题描述
我有一个我目前正在使用 Tika-Python 解析的 PDF 文档。我想把文件分成几段。
我的想法是将文档分成段落,然后使用该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:
andfile_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']
推荐阅读
- bash - bash脚本中通配符的停滞问题
- python - 如何在 Django 应用程序中获取原始本地机器时区?
- java - 具有多个提供程序的 Spring 安全性
- python - Atom 编辑器 - sqlite3.OperationalError:没有这样的表
- google-apis-explorer - 自定义搜索 API “试试这个 API” 工作吗?
- html - 向父元素或子元素添加边距时锚标记不起作用
- sql - 使用 JSON_QUERY 转义 JSON 特殊字符不起作用
- python - 通过多索引连接 2 个数据帧
- spring - Spring-Kafka:如何在 Producer Kafka 中插入 application.yml 主题
- javascript - 按下回车只是将值附加到 url 并没有用 searchForm 字符串完全替换 url