python 从PDF科学论文中提取文本

k7fdbhmy  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(152)

我想从PDF格式的科学文档中提取文本。我第一次使用PyPDF 2,但在几个单词中间出现了随机空格。我目前使用的是PyMUPDF

import fitz
import re

def extract_pdf_text(pdf_file_path):
    doc = fitz.open(pdf_file_path)
    text = ""
    for page in doc:
        text += page.get_text("text")#.replace("\n", " ")
    return text

pdf_path = "/home/xxx/Papers/xxxxx.pdf"
text = extract_pdf_text(pdf_path)
text = re.sub(r"�", " ", text)
url_pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
text = re.sub(url_pattern, 'replaced_link.', text)
text = re.sub(r"\s+", " ", text)

删除-,用修复字替换url并删除多余空间
目标是将文本分成句子(我使用空格)。但在某些地方失败了,因为提取的文本粘在PDF的两个不同部分(例如标题和作者)的空格上。我想用“\n”代替粘贴它们。

如果我把句子提取出来
[“请参阅本出版物的讨论、统计数据和作者简介,网址为:https://www.researchgate.net/publication/313756771HDSKG:“,“从网页内容中获取领域特定知识图表会议论文·2017年2月”]
代替
[“请参阅本出版物的讨论、统计数据和作者简介,网址为:https://www.researchgate.net/publication/313756771“,“HDSKG:从网页内容中获取领域特定知识图”,“会议论文·2017年2月”]

mqxuamgl

mqxuamgl1#

多亏了Jorj McKie,get_text(sort=True)工作了一点,mb为text = re.sub(r"\s+", " ", text)删除了“\n”。

相关问题