首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中是否有一种方法只提取核心文本(没有框、页脚等)。从pdf里?

在python中是否有一种方法只提取核心文本(没有框、页脚等)。从pdf里?
EN

Stack Overflow用户
提问于 2022-11-07 09:48:49
回答 1查看 41关注 0票数 -1

我只想从一个“富”pdf文档中提取核心文本,这意味着它有很多我不感兴趣的表格、图表、框、页脚等等。

我尝试使用一些常见的python包,如PyPDF2、pdfplumber或pdfreader.The,显然它们提取了pdf中所有的文本,包括上面列出的那些我不感兴趣的部分。

例如:

代码语言:javascript
运行
复制
from PyPDF2 import PdfReader
file = PdfReader(file)
page = file.pages[10] 
text = page.extract_text()

这段代码将为我从第11页获得整个文本,包括页脚、框、表格中的文本和页面的编号,而我想要的只是核心文本。

不幸的是,到目前为止,我找到的唯一解决方案是将粘贴到另一个文件中,即核心文本。

是否有任何方法/包可以自动识别主文本从pdf的其他部分,并只返回给我?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 21:00:12

根据D.L的评论,请添加一些可重复的代码,最好是一个可使用的pdf。

不过,我想我至少可以回答你的部分问题。杰斯文水管工是一个非常健壮的python处理包。水管工包含一个包围盒功能,允许您从内部(.within_bbox(...))或外部(.outside_bbox)提取在Page对象上划定的‘边界框’(或地理区域)上的文本。从页面中提取的每个字符对象都包含位置信息,如y1 - Distance of top of character from bottom of pageDistance of left side of character from left side of page。如果您试图从.pdf中提取的大多数页面都包含脚注,我建议只提取y1值之上的文本。考虑到脚注通常远低于页面的末尾,除了使用芝加哥风格引用的学术论文之外,您仍然应该能够为要提取文本的地方设置一个标准的.bbox (在不包括脚注的集合.bbox中,或者在不包含脚注的集合.bbox中)。

对于你关于桌子的问题,这是一个更棘手的问题。到目前为止,表是最难检测和/或从中提取的东西。据我所知,水管工提供了最健壮的开源表检测/提取功能。要提取表外的区域,我将调用每个.find_tables(...)对象上的Page函数,以返回表的.bbox,并在表周围提取。然而, --这并不完美。--它并不总是能够检测表。

关于您的第三个问题,如何排除框,您指的是文本框吗?请提供进一步的澄清!

最后--重申我的第一点-- 水管工是一个非常健壮的包。也就是说,从.pdf文件中提取文本是非常困难的。祝你好运--请提供更多的信息,我很乐意尽我所能帮助你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74344614

复制
相关文章

相似问题

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