gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 19:33:22 25 4
gpt4 key购买 nike

使用下面的代码片段,我尝试从 this 中提取文本数据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

output I obtain , 但是,大多数单词之间没有空格。这使得对文本进行自然语言处理变得困难(我的最终目标,在这里)。

此外,“手指”一词中的“fi”一直被解释为其他东西。这是相当有问题的,因为这篇论文是关于自发的手指运动......

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

最佳答案

在不使用 PyPdf2 的情况下,使用具有相同功能的 Pdfminer 库包,如下所示。我从 this 得到代码正如我想要的那样,我编辑了它,这段代码给了我一个文本文件,其中单词之间有空格。我使用 anaconda 和 python 3.6。要为 python 3.6 安装 PdfMiner,你可以使用这个 link .

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

class PdfConverter:

def __init__(self, file_path):
self.file_path = file_path
# convert pdf file to a string which has space among words
def convert_pdf_to_txt(self):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8' # 'utf16','utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(self.file_path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos = set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True):
interpreter.process_page(page)
fp.close()
device.close()
str = retstr.getvalue()
retstr.close()
return str
# convert pdf file text to string and save as a text_pdf.txt file
def save_convert_pdf_to_txt(self):
content = self.convert_pdf_to_txt()
txt_pdf = open('text_pdf.txt', 'wb')
txt_pdf.write(content.encode('utf-8'))
txt_pdf.close()
if __name__ == '__main__':
pdfConverter = PdfConverter(file_path='sample.pdf')
print(pdfConverter.convert_pdf_to_txt())

关于python - PDF 提取中的空白和奇怪的单词解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com