当前位置: 首页 > 面试题库 >

PDF提取中的空白和奇怪的单词解释

郁权
2023-03-14
问题内容

使用下面的代码片段中,我试图从提取文本数据这个PDF文件。

import pyPdf

def get_text(path):
    # Load PDF into pyPDF
    pdf = pyPdf.PdfFileReader(file(path, "rb"))
    # Iterate pages
    content = ""
    for i in range(0, pdf.getNumPages()):
        content += pdf.getPage(i).extractText() + "\n"  # Extract text from page and add to content
    # Collapse whitespace
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content

但是,我获得的输出在大多数单词之间没有空格。这使得很难对文本执行自然语言处理(我的最终目标在这里)。

同样,单词“ finger”中的“ fi”始终被解释为其他含义。这是相当有问题的,因为本文是关于手指的自发运动的。

有人知道为什么会这样吗?我什至不知道从哪里开始!


问题答案:

您的PDF文件没有可打印的空格字符,只是将单词放置在需要的位置。您可能需要做一些额外的工作来找出空格,可能是假设多字符运行是单词,然后在它们之间放置空格。

如果您可以在PDF阅读器中选择文本,并正确显示空格,那么至少您知道有足够的信息来重构文本。

“ fi”是印刷的连字,显示为单个字符。您可能会发现“ fl”,“ ffi”和“ ffl”也会发生这种情况。您可以使用字符串替换将“ fi”替换为连字。



 类似资料:
  • 我面临着一个奇怪的问题:碎片底部有一个空白,我无法摆脱它。还值得一提的是,如果我单击任何按钮,这个空间就会消失。 感谢您的帮助!请在下面找到屏幕截图和布局代码。 截图 详细活动布局: DetailFragment布局: 详图网格布局: 详细附加网格布局:

  • 我怀疑它没有正确解密,因为它能够拉动表单的文本提示,但不能拉动响应本身。在下面的代码中,它从示例PDF中提取和,但不是它们之间的响应。 我正在使用PDFBox2.0,但我也尝试过1.8。 我已经尝试了所有的解密方法,我可以找到的PDFBox,包括不推荐的那些(为什么不)。我得到的结果与完全不尝试解密一样,只是地址和城市提示。

  • 我的屏幕底部有一个奇怪的白色边框。它在左下角,也就是TimeView.java。 这是我的ContentPane.java 这是gameview.java 这是Mainframe.java }

  • 问题内容: 当我将网站更改为 包裹在DIV中的每个img元素都有3px的底边距,即使该边距未在CSS中定义。换句话说,没有样式属性会导致该3px底边距。 现在,假设haha.jpg为50x50,.placeholder设置为display:table。奇怪的是,我观察到的.placeholder的高度尺寸是50x53 … 有人以前遇到过这种异常并修复过吗? 编辑 这是JS FIDDLE 问题答案:

  • 我使用PDFBox填充PDF表单中的字段,方法是获取PDTextbox,然后调用'set value'。我还使用Wordutils.wrap(Apache Commons)手动包装文本,我发现某些字符组合,特别是括号,会导致PDF文本字段中输出奇怪的字符。例如: Pt.说:“我转身时膝盖扭动了一下,我跌倒了,我感觉有什么东西在(膝盖)动。当我试图站起来时,我崩溃了,因为它太疼了。” 在文本字段中显

  • 因此,在迁移到其他主机,导出和导入数据库,修复链接后,我得到了一些奇怪的php输出,该输出在以前的主机上运行良好。 php连接: php数据库调用: html格式的输出: '; } echo“”;echo“”;如果($row['priceMax']){echo'';}elseif($row['price']){echo'';}$firstRow=0;}}? 有人能解释这里到底出了什么问题吗?我不知