简单使用Marker

简单使用Marker

1 简单介绍

Marker是由Datalab维护的开源项目,它利用了surya的模型进行做的,能够快速准确地将文档转换为Markdown、JSON、分块数据及HTML格式。相对MinerU和Docling文件解析的效果较差,但是解析的速度是较快的,如果考虑速度和性能,可以考虑这个模型。不好的地方除了github没有官方本地部署较完整的文档。

Datalab也维护了Surya,Surya是一款文档OCR工具包,功能包括:支持90多种语言的OCR技术、任意语言的行级文本检测
版面分析(表格、图像、标题等检测)、阅读顺序检测、表格识别(检测行/列)、LaTeX OCR(数学公式)。

# Github地址(没有标准的开发文档)
https://github.com/datalab-to/marker

# Surya的Github地址
https://github.com/datalab-to/surya

2 安装环境

安装依赖环境

pip install marker-pdf[full] -i https://pypi.tuna.tsinghua.edu.cn/simple

简单例子

注意:Windows中模型的默认下载路径是“C:\Users\Admin\AppData\Local\datalab”,Admin是我的用户名,此处对应你的用户名。模型大小:4.97G。

# 注意!! 解析的过程不支持多线程和多协程
from marker.converters.pdf import PdfConverter
from marker.models import create_model_dict
from marker.output import text_from_rendered


def test():
    print(create_model_dict())
    converter = PdfConverter(
        artifact_dict=create_model_dict()
    )

    # 解析图片
    rendered = converter("E:/temp/test.png")
    text, _, images = text_from_rendered(rendered)
    print(text, _, images)

    # 解析pdf
    rendered = converter("E:/test/test1.pdf")
    text, _, images = text_from_rendered(rendered)
    print(text, _, images)

    # 解析docx
    rendered = converter("E:/test/test2.docx")
    text, _, images = text_from_rendered(rendered)
    print(text, _, images)
    
    # 保存文件
    rendered = converter("E:/test/test2.docx")
    # 文件输出目录
    out_dir = "E:/test/test-output"
    # 不要后缀名称
    file_name_base = "test2"
    save_output(rendered, out_dir, file_name_base)


if __name__ == '__main__':
    test()

截图
在这里插入图片描述

使用多进程
使用多进程可以提高效率。

if __name__ == '__main__':
	# 一定要在主进程中为torch添加下面创建进程的方式,否则会报下面的错误
	# RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method

    # 在主进程中设置创建进程的方式,有fork和spawn两种
    # 默认复制当前内核父进程fork(Linux、macOS),创建空白新进程spawn(Windows)
    torch.multiprocessing.set_start_method('spawn')

    Process(target=test).start()
    time.sleep(2)
    Process(target=test).start()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值