【发布时间】:2022-07-19 20:11:00
【问题描述】:
我对 AI 编程非常陌生,我正在尝试同时学习和实验。与 youtube 视频相比,我发现堆栈社区更有帮助和信息量更大,所以我想在这里寻求帮助。
我正在尝试制作的当前程序是关于从学术研究 pdf 中提取信息。我正在使用Easyocr 来检测和读取 pdf 中的信息。我正在使用的代码是我从 AIEngineering 在 youtube 上的 video 中学到的。我成功地在我的 PDF 中检测到。但是,我并不完全知道如何在特定边界框中选择信息并将信息传输到文件中。
from pdf2image import convert_from_path
import easyocr
import numpy as np
import PIL
from PIL import ImageDraw
import spacy
reader = easyocr.Reader(['en'])
images = convert_from_path('/content/Testpdf1.pdf')
from IPython.display import display
from PIL import Image
display(images[0])
bounds = reader.readtext(np.array(images[0]),paragraph='True')
bounds
def draw_boxes(image, bounds, color='red', width=2):
draw = ImageDraw.Draw(image)
for bound in bounds:
p0, p1, p2, p3 = bound[0]
draw.line([*p1, *p1, *p2, *p3, *p0], fill=color, width=width)
return image
draw_boxes(images[0], bounds)
bounds[4][1]
这就是output 代码的样子
这是一个测试 pdf,但我使用的大多数其他 pdf 大多遵循相同的布局来显示信息。其他人在实际开始之前用摘要和结果等正确命名,正如您所见,它不能很好地检测段落并将所有段落组合在一起。
考虑到当前的例子,照片中的摘要都是粗体字,这是我唯一想要的边界框部分,我该怎么做?标题相同,它不会省略作者或使其成为不同的边界框。我想以不同的方式提取作者。我尝试在 easyocr 中设置边界框,但大多数时候它只会让情况变得更糟。我发现 this 是 easyocr 的一个很好的替代品,但它是在 java 中而不是在 python 中。
我的主要目标是检测我需要的正确信息并将其提取到 json 文件中。
将来我会尝试向其中添加 ML 模型,因为我想提取的不仅仅是标题和摘要。但我仍然每天都在学习更多关于它的知识!如果你们也可以为我提供一些可以帮助我做到这一点的资源,或者一些可以帮助我了解更多信息的资源,那就太棒了!
感谢您的所有帮助!
【问题讨论】:
标签: python pdf google-colaboratory ocr