pdf翻译成中文

admin 2024年5月13日02:48:28评论20 views字数 2821阅读9分24秒阅读模式

最近在搞pdf to latex代码,让我可以订阅arXiv文档来关注最新的ai 动态

尝试了几个办法

1.mathpix这个太几把贵了,很奇怪 只能翻译很少的页书 有的pdf一下子就50-80页的,没几个pdf就翻译额度用玩了

2.aspose.这个玩意儿在部分情况下免费一个月150pdf,而且不看页书,竟然可以翻译正确,我拿了几个复杂的pdf,它竟然可以转换成tex 然后我再编译回来 竟然可以打开!不可思议,唯一的缺点就是他们的官方文档实在太难阅读了,我几乎是靠着我的代码阅读工具才勉强写出来的代码,而且这个翻译很随机,有的时候可以翻译成功,有的时候翻译的tex代码完全无法看,我也不知道他们咋实现 的,但是简单的pdf我看着好像没啥问题。就是很难用!

3.有道翻译的pdf,就是翻译的中文不行。。。实在难以下咽的感觉,阅读好累还不如不翻译

然后我就想办法用llm来解决这个问题,我习惯用了haiku ,因为是便宜好用,主要是ChatAnthropic这个库太好用了,其他的我都要自己去封装,而且要兼容langchain,比如我还要写它的异步函数,很麻烦

但是我测试下来,我告诉haiku

你是一个翻译专家并且精通LaTex语法,请将以下LaTeX文档从英文翻译为中文,直接给出翻译后的完整LaTeX文档内容,不需要任何额外的说明或确认以及不要"```latex"的包裹标签

但是haiku老回复我“以下是将上述英文 LaTeX 文档翻译为中文的结果:”无论我怎么更换prompt都会这样,很难受,于是我换了gpt4-turbo,很好 效果很强烈,但是很贵,当你看到我现在这个帖子的时候,你已经在节约10美元的情况下学到了和我一样的知识。

我先把gpt4的结果放一边。

我现说说我为了节约用钱,直接用了一些便宜的大模型的结果,为了节约钱,我直接用llm chat来对话,我随便拿了一些我之前测试容易出现问题的latex场景,比如有的latex就是package.tex没有任何的英文内容:

usepackage{cite}usepackage{amsmath,amssymb,amsfonts}usepackage{algorithmic}usepackage{graphicx}usepackage{textcomp}usepackage{xcolor}usepackage[hyphens]{url}usepackage{multirow}usepackage{booktabs}usepackage{pifont}usepackage{array}usepackage{xspace}usepackage{soul}usepackage{subcaption}usepackage{fancyhdr}usepackage{colortbl}usepackage{makecell}usepackage[bookmarks=true,breaklinks=true,letterpaper=true,colorlinks,citecolor=blue,linkcolor=blue,urlcolor=blue]{hyperref}

这种package就和你写框架一样的,只是引入相关组件。看看幻方的llm咋回答的

pdf翻译成中文

结果看来就是不行,回复的内容包括了它对这个内容的解读,显然不符合我的要求。

然后我修改了我的prompt,强调了一下不要做任何输出说明。我的prompt是:你是一个翻译专家并且精通LaTex语法,请将以下LaTeX文档从英文翻译为中文,直接给出翻译后的完整LaTeX文档内容,不需要任何额外的说明或确认以及不要"```latex"的包裹标签,如果文档中没有可翻译成中文的内容,请直接输出我给你的文档内容,不要有任何额外的说明

pdf翻译成中文

看下来如果是带latex代码和英文内容混合的情况下输出效果还是可以的。但是又会遇到我刚才说的场景,如果是全代码的package.tex就无了

pdf翻译成中文

它就又给我瞎几把回答了,当一个prompt工程师真难啊,而且我这样的测试效率很低下,最好是找个类似prompt测试框架来实现。

然后回到刚才的gpt4的问题,因为latex之前的字体是英文的所以没啥问题,我们翻译成中文以后,超出字符集了,所以要换字体。

这里给出一个方案 用 ctex的宏库,很好用的。

在我帖子写到一半的时候 又出来一个很强的orc的工具 可以解决pdf2markdown这部分的问题https://github.com/multimodal-art-projection/MAP-NEO/tree/main/Matrix/document-convert#introduction

看着很强大,我的电脑不支持测试,因为没空间了。哎

我继续讲我之前的工作,我之前的工作其实解决的思路也是orc->markdown/latex之类的中间语言->llm->pdf这样的思路。之前找了个llm能解决大部分问题,通过多模态可以解决一部分这样的情况,例如使用gpt4可以做到这样的回复,接下来的测试就降低llm成本修改prompt来让整个流程简单化

pdf翻译成中文

我不认为转换成markdown格式是个很好的选择,markdown默认不支持公式 会丢失一些信息,我觉得最好的就是转换成latex,这个模型可以在content image block tables latex 各个方面有很好的实现,这样就可以解决和代替ocr的这部分了。

其实我也测试过gpt4多模态来识别,勉强可以用,也可以识别table image之类的组件 并返回坐标,然后新建一个doucment类型把这些图片的坐标定位进去 再把翻译好的字丢进去,最后重装成一个latex。

还有一个比较推荐的模型就是vary ,可以看下这个文档https://blog.csdn.net/matt45m/article/details/135374713

效果也是和这个map-neo差不多的。不过好像说是map-neovary好多了

包括阿里的https://github.com/X-PLUG/mPLUG-DocOwl/tree/main/DocOwl1.5

我的脚本:https://github.com/xsser/llm2latex2pdf

这个是用来转换翻译latex->pdf部分的

  • 读取文件夹下的tex文件

  • 然后使用llm异步翻译成latex代码丢回来(建议使用sonnet模型     搭配这个prompt是效果最地道 最便宜的解决方案)

  • 并使用ctex宏加载编译,自动识别主要的编译tex文件,执行命令用xelatex编译

  • 最后得到中文版的pdf


所以如果llm可以识别 然后生成latex其实就很好解决了

还有一个文档我一直没搞定。。好多软件也没搞定 就是arXiv-2204.03089v1奇葩


对于arvix的tex代码转换成pdf的效果图

pdf翻译成中文



pdf翻译成中文



原文始发于微信公众号(xsser的博客):pdf翻译成中文

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月13日02:48:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   pdf翻译成中文https://cn-sec.com/archives/2734089.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息