我想从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月”]
1条答案
按热度按时间mqxuamgl1#
多亏了Jorj McKie,
get_text(sort=True)
工作了一点,mb为text = re.sub(r"\s+", " ", text)
删除了“\n”。