首页 > 其他分享 >关于pdf转markdown的一些总结

关于pdf转markdown的一些总结

时间:2024-08-30 23:21:37浏览次数:9  
标签:总结 markdown github https marker pdf com

实现一个陌生的功能,一般会经过这几个阶段如,调研,技术选型,确定最佳技术方案与备选方案,开发,测试,上线;

调研

大致了解不同的产品

最好能上外网,首选用谷歌搜,其次用百度搜;关键词可以是pdf转markdown,或pdf markdown api等等;例如我在百度搜索pdf转markdown,最后得到了方案有

Nought:https://github.com/facebookresearch/nougat
Marker:https://github.com/VikParuchuri/marker
MinerU:https://github.com/opendatalab/MinerU
gptpdf:https://github.com/CosmosShadow/gptpdf
PDF-Extract-Kit:https://github.com/opendatalab/PDF-Extract-Kit
zerox:https://github.com/getomni-ai/zerox
OminiParse:https://github.com/adithya-s-k/omniparse
pix2text:https://github.com/breezedeus/Pix2Text

但是如果在谷歌搜索会得到

TextIn
mathpix
等等

确定优先级

接着可以团队开会确定优先级顺序,如果优先级从高到低依次是效果与性能,开发复杂度,部署成本,时间成本,费用成本,则首选付费api,即第三方公司的云方案;如果优先级从高到低依次是未来能精准适配业务,费用成本,维护复杂度,时间成本,则可以考虑免费的开源框架进行本地部署,如果对性能与效果也有一定的要求,就需要深入了解开源框架源码,进行相应微调;

对不同产品进行测评

pdf转markdown的产品大致分为三种类型,分别是云方案,本地部署,python基本的函数库;

云方案

marker,TextIn,mathpix,aspose,gptpdf等
优点是本地只需下载很小的sdk,以代理的方式调用远程大模型API,性能较好,效果较好;缺点是付费不低,可用性等各方面完全依赖云;
一般官网有文档,可以免费测试;

marker

github上星较多,但是靠不靠谱还要试用才知道;但是很抱歉,官网没有提供试用的接口,要用?先花点钱;但通过两点可以看到marker的缺点;
1)github上的转换示例可以看出,marker对公式,各种符号支持很不好;marker这里很有意思,既没有在官网或github上直接说其对公式符号支持不好,它就给了示例,就让你自己去发现!可谓是扬长避短的哲学!
在这里插入图片描述

在这里插入图片描述

2)在github上进入到其Discord社区,会发现一些很有用的信息,其中包括marker的创始人的较新的一段话,反映了对公式符号支持不好;这个社区里边创始人比较诚实,主动说了公式符号是个难点,特别是嵌套在文本里的公式符号!
在这里插入图片描述
在这里插入图片描述
marker的官网显示价格是3美元~5美元/1000页之间

TextIn

合合信息出品的,它有一款叫CS的app,适用于存储文件信息的,用起来还可以;不过它家竟然也出了pdf转markdown的云方案,提供付费API,价格大约是9美元/1000页;相比marker要贵;直接根据官网文档测试了下,对公式符号支持不好,速度可以;上图是转后的markdown,下图是pdf;

https://www.textin.com/document/pdf_to_markdown

在这里插入图片描述

在这里插入图片描述

mathpix

效果最好,对公式符号支持很好,速度可以,一页稍复杂pdf大概4秒不到;但非常贵,每个月0~40000页pdf,25美元/1000页,大于40000页pdf,10美元/1000页,当然按照企业方案,你一个月给他2000美元,可以允许转20万页pdf;官网允许免费测10页pdf;

aspose

付费方案比较多,费用不低,官网可以自行查看,试了下,但公式这块的效果没有仔细去分析;

gptpdf

13美元/1000页,本地安装个sdk,调用大模型;没有试过;

本地部署

pix2text,minerU,marker(也支持免费的本地部署),pix2text(基础模型免费)
优点是是效果随着pdf格式的变化其输出效果较稳定;缺点是部署对机器配置要求高,因为依赖包比较大,一般2G到5G,另外有付费版模型

pix2text

纯cpu跑转换比较慢,单页稍复杂pdf耗时15秒左右;但效果还可以,对公式符号支持较好;该款产品号称是mathpix的替代品,但如果能把转换速度再上一个台阶,相信还是很有竞争力的;安装包较大,不用docker镜像,直接安装约为2.5G,打成镜像后为9.4G左右;

minerU

本地安装包较大,部署难度大,需要非常高配置的机器才能保证速度快,根据网上分析,对公式符号支持一般;

marker

本地安装包较大,部署难度大,需要非常高配置的机器才能保证速度快;

python基本的函数库

PyMuPDF

支持pdf转docx较好,pdf转markdown较差
,PyMuPDF4LLM,pyMuPDF的升级版,只支持pdf转markdown一些基本标题正文的转换(基本字体),但字体间有数字等其他字符,公式,图片,无法较好处理;

pdfplumber,PyPDF2

执行原理和pymupdfllm类似,无法应对稍微复杂的pdf格式

pdf—>docx—>markdown

优点是性能快,缺点是效果随着pdf格式的变化其输出效果很不稳定,因为函数是固定转换方法,没有经过数据训练

pdf——>html——>markdown

pdf——>html这一步较难,一般网上有付费api,价格不菲,html转markdown难度相对较小

最佳技术方案与备选方案

其实根据上面测试,基本也就能敲定最终技术方案与备选方案;这里之所以有备选方案,是因为,如果在开发或部署最佳方案时遇到很大难题,一时半会难以解决,那么可以赶紧上备选方案以满足业务需求;

开发

开发其实还不是pdf转markdown的难点,难点在于前期调研,对比,测试不同的产品,最终敲定方案;开发无非是结合相关产品的API接口文档,进行函数调用,看入参,返回值,看是否需要轮询以查询结果;

测试

如果选本地部署方案,需要注意测试环境的磁盘容量,如果磁盘容量不够,由于框架涉及的包太大,会导致测试环境部署失败等问题,打成docker镜像,只会让包更大,例如自己搭建一个基于Django的接口demo,大约是15MB,但是打成docker镜像后就变成了75MB,所以只会加大测试或生产环境的负担;虽然docker让项目从开发到测试到生产的迁移变得便捷!

这一期的总结就先到这,一些自己的想法,希望能和大家多多交流!

标签:总结,markdown,github,https,marker,pdf,com
From: https://blog.csdn.net/u014570939/article/details/141728643

相关文章

  • 2024.8.30 总结(集训 考 DP)
    上午三个多小时考四道题的DP。赛时会的分:[100](?)+100+[30](?)+100。估分:100+100+0+100。实际分:10+100+0+100。挂巨量的分,挂了120分。下面是一些值得注意的点:T1就是分组背包。DP数组下标要考虑负数可以直接全体加一个值变成非负的,[或者用map之类的](?)(&不......
  • markdown语法
    markdown学习标题语法+空格+标题几个#就是几级标题,最高六级如:六级标题+空格+标题字体粗体**+内容+**斜体*+内容+*粗体+斜体***+内容+***删除线()~~+内容+~~引用作用当某段内容出自某人之口或者某篇文章时,使用引用可以方便地把引用的部分分开......
  • 2024/8/19~24总结
    树上合并总的来说,树上合并类问题主要用于解决树上统计种类数、最大值一类的问题。最朴素的树上合并思路为分别统计每个子树的答案合并再加上父亲节点本身的答案。一般采用启发式合并,将小子树合并进大子树中如树上数颜色题意:给定一颗有根树,每个节点有颜色,求每棵子树的......
  • atc 经典dp 26题 题型总结
    题目链接稍微记录下吧。主要想发现他这个题单主人是怎么去分类dp的类型的。借鉴题目不一定要多难。但是题型的分类总结感觉很重要。某种dp的处理方式。。他是相似的。。AB数组前面往i+1,i+2.。。这样的推。C限制只能交叉继承。。不能继承pre一样位置的。他每......
  • python学习总结(一)
    @TOC<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=1">1.变量元组类型b=()列表类型b=[]字典类型b={}简单类型b=123a=’123‘c=Trued=5.0命名规则1、开头必须以字母或下划线_开头2、区分大小写3、除了开头,其余字母、数字、下划线均......
  • 工作随意总结20240830
    最近被裁换工作了,面试过了一个测开岗位,正好趁着入职前的空闲时间,总结一下过去工作中的经历,想到哪写到哪吧,定期总结很重要。工作主要在一家ToB云服务厂商从事测试工作,工作内容主要涵盖了功能、自动化、渗透、性能等方方面面,覆盖到面很广,单一某方面来说深度上就有一些欠缺......
  • 449页pdf!深入探讨大语言模型的世界:赵宇教授新书《自然语言处理:大模型理论与实践》
    随着人工智能技术的飞速发展,自然语言处理成为了计算机科学与人工智能领域中不可或缺的关键技术之一。作为一名长期致力于人工智能和自然语言处理研究的学者,我见证了这一领域的迅猛变革,从基于规则的方法到现今基于深度学习的革命性技术,尤其是大模型技术的应用,给自然语言处理......
  • wireShark总结
    wireShark总结一、常见协议包:1.ARP协议2.ICMP协议3.TCP协议4.UDP协议5.DNS协议6.HTTP协议1、ARP协议简述:就像你要给朋友家送快递,但只知道朋友家的门牌号(IP地址),不知道具体位置。这时你就去问小区物业(ARP协议的作用),物业告诉你朋友家的具体位置(MAC地址)。常见问题:ARP欺......
  • 【C#】一个喜欢用Python的菜狗在尝试Linq之后总结的常见用法以及示例
    1.筛选(Where)筛选集合中的元素。类似python中列表推导式中的if示例int[]numbers={1,2,3,4,5,6};varevenNumbers=numbers.Where(n=>n%2==0);foreach(varnuminevenNumbers){Console.WriteLine(num);}//输出:2,4,6python中的实现[if......
  • Guava工具总结
    Table双键MappublicclassOTest{publicstaticvoidmain(String[]args){Map<String,Map<String,Integer>>map=newHashMap<>();//存放元素Map<String,Integer>workMap=newHashMap<>();wor......