概括
我正在用 Python 构建一个文本摘要器。我主要针对的文件类型是通常为 pdf 格式的学术论文。
我想要达到的目标
我想有效地提取论文的正文(摘要到结论),不包括论文的标题、出版商名称、图像、方程式和参考文献。
问题
我曾尝试寻找有效的方法来做到这一点,但我找不到有形且有用的东西。我当前的代码尝试按句子拆分 pdf 文档,然后过滤掉每个句子的平均字符数少于平均数的条目。下面是代码:
from pdfminer import high_level
# input: string (path to the file)
# output: list of sentences
def pdf2sentences(pdf):
article_text = high_level.extract_text(pdf)
sents = article_text.split('.') #splitting on '.', roughly splits on every sentence
run_ave = 0
for s in sents:
run_ave += len(s)
run_ave /= len(sents)
sents_strip = []
for sent in sents:
if len(sent.strip()) >= run_ave:
sents_strip.append(sent)
return sents_strip
注意:我使用这篇文章作为输入。
上面的代码似乎工作正常,但我仍然无法有效地过滤掉抽象部分之前的标题和出版商名称以及结论之后的参考部分等内容。此外,像图像这样的东西会导致乱码字符出现在文本中,这会破坏输出的整体质量。由于奇怪的 unicode 字符,我无法将输出写入 txt 文件。
上诉
有什么方法可以提高此解析器的性能并使其更加一致?
谢谢您的回答!