爱吱声

标题: 利用 Deepseek 抓取PDF的文字并矫正。 [打印本页]

作者: nanimarcus    时间: 2025-2-2 03:35
标题: 利用 Deepseek 抓取PDF的文字并矫正。
本帖最后由 nanimarcus 于 2025-2-6 22:17 编辑
6 D  ^% a* R+ \1 ?7 y% b# r6 E, E) A; l" q$ T' p2 c/ H' @
把PDF上传,然后让他抓取文字,并修改可能的错误。
/ ?' u* ^0 d+ R5 H然后deepseek完美的完成了任务。
8 G$ K/ ?( @9 a段落清楚,列清楚,页眉页脚全部去掉。: v; U* f; Q# u+ ^! d9 X6 u9 n
我要疯掉了!' s7 g$ y8 U" B8 L0 t
赶紧把自己那些成年老书给搬出来,deepseek,这是党和人民考验你的时候了!
, S: \) V" q" b9 j3 l====0 ^, ?& a, _# ~
中文也很完美。
$ _- G. ]2 @: O4 {+ a6 S经验值,每次十页比较稳定。
8 r; a) ]2 s8 A2 l- o现在我这里API还不能用,等恢复了,全自动了。
- C1 E! u+ g  m4 Q# A. Z( I( R0 J====
4 G( B; L" S- b4 F- [/ p第二次疯掉了!* @8 N( M: P  m( x( _
我上传英文文件后,让他抓取文字,矫正,然让他按页划分,前面放英文,后面放中文,结果仍然完美。
6 J3 n4 i/ a( @) R: A====. `- f6 X9 y, u9 J) e7 f
现在我让他从PDF抓取文字,矫正后,按段落翻译,可以一次翻译多个段落,每次翻译不超过一个固定数目,结果仍然完美。5 X/ K7 g! a( B5 |5 }; O5 p0 ]
但是任务多了后,每次翻译的页面数是减少的。. X" b8 a- D7 Q0 }- [  k+ J
好吧,我五体投地,继续探索。
* l; z# L/ K" g* A====( o7 [( y3 O1 P( w7 ]" X
为了防止中间结束,可以告诉他必须所有页面全部处理完就可以了,我现在是应该佩服我自己呢还是应该佩服 deepseek 呢,抑或都佩服。$ T* W; c) @7 ?5 `& h# ?4 P, z
====' ^* u, i" ?4 X: G* G
好吧,有些东西是不给翻译的,哈哈。
- ?  }7 z% K6 g$ i1 S; a9 B* z/ n( |, \
Sorry, that's beyond my current scope. Let’s talk about something else.& ]- {8 G  a2 g/ e& |+ N
====7 @6 X5 g7 ~6 ?3 e
然后我的英文命令也让deepseek 帮我修改,呵呵。
: i  p( C7 i1 D====
) n$ v& b, d" a9 ^日语的文本他也可以处理,过程一模一样的。问题也是一模一样的,假名太多,汉字很少,我不懂日语,翻出来都不知道对不对。
% K) t; p" h2 K9 x9 b! _8 k, d====
1 [( N6 T! \, p时间段的话,北京时间的下午和晚上用比较好。) e. }- s* `0 C% I0 e! R! [
后半夜和早上,美国人上班了,要么在用,要么在黑客攻击。
9 w- M) f5 z" Q! V, c8 x====) F  ~+ S: o- S) l0 b+ V
用千问吧,非常稳定,非常强大。: \2 v% I* y: m
https://chat.qwenlm.ai/2 C; ~! |+ i% s4 |+ w
====
* W6 t3 e! @4 p# [$ {* [8 o, [, }4 ZDeepseek,API 看上去可用了,但是不给充钱。' @6 m$ B4 `; Z2 f3 k- S4 {

8 S( r3 V& E6 Z+ l' m( {
6 a3 c; b8 q5 q9 |, X/ e1 |7 P
1 k9 N! U+ B& \  {. {
作者: 马鹿    时间: 2025-2-2 03:53
这功能很赞呀
作者: nanimarcus    时间: 2025-2-2 03:56
马鹿 发表于 2025-2-2 03:53
; k/ e8 m* [; X6 U- ~9 X这功能很赞呀

4 r! I# H5 t8 X* }4 u* X* N+ b" [简直太赞了,我现在正在思考还有什么工作需要 deepseek 干的,现在的上限是我的上限,不是 deepseek 的上限。
作者: indy    时间: 2025-2-2 04:13
有没有上传整本书试试
作者: nanimarcus    时间: 2025-2-2 04:27
indy 发表于 2025-2-2 04:13
1 N) e8 Q* m( M/ f有没有上传整本书试试

$ s- u1 e/ d  l" w目前看来,差不多十页左右就停止了,看看还有什么诀窍不。
作者: 马鹿    时间: 2025-2-2 04:41
本帖最后由 马鹿 于 2025-2-1 15:43 编辑 7 L% ^4 F6 E- n8 l6 U6 i! ^# e
! g3 @# r- D* v, ?. \
以后让deepseek 读出土的竹简
5 S- j, {9 L0 b7 s# Q! H) I. l& Q) X$ |6 C6 o
还有把古文翻译成现代白话7 I. t$ u4 B) S' q5 g/ b

' b: E- o. H) K/ E; E. `以后不认识的字不查字典了, 直接问deepseek
作者: 方恨少    时间: 2025-2-3 01:23
请教是如何实现的?
1 O% \. p5 ^, G; Q1 Z4 _; h6 Q# d9 v9 _4 C- Y% G
我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后,发出指令提取文件中文字,始终是文件解析中。直接在DS里问如何上传PDF文件,并提取文件中文字,照做其实是一样的。
作者: nanimarcus    时间: 2025-2-3 03:06
方恨少 发表于 2025-2-3 01:23% ?& u" _6 y5 Q  z" u5 A: H8 Y3 m
请教是如何实现的?
. \. N% h, c( o. L# f- y0 W; J# F" ]% A) _+ W) s
我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后 ...

  G5 N, p/ _; ^6 d+ a) F1 `- D8 k" L/ s' S7 E
我现在也上载不了了,"upload failed",几个小时前还好好的,应该是服务又受攻击所以功能收缩了。  f& r+ s: H- Y: Z: ?3 |
文字之类的没问题。估计deepseek现在暂时只保证主要功能。
2 |! ]* D+ W% }  Z; i' v" I3 V美国人就这样,打不过就耍流氓,估计要等一段时间才能完全恢复。) @! X6 s4 M6 C

作者: nanimarcus    时间: 2025-2-5 00:15
方恨少 发表于 2025-2-3 01:23; j) a0 \. f5 \1 ?' f4 V7 s
请教是如何实现的?
( F) ?4 ~. g4 h+ P8 H
  V2 t3 m! \9 o0 ?8 t+ e我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后 ...
* j" a+ p* J& p  w& ^6 q6 d
https://chat.qwenlm.ai/
" X9 z" [/ B) a8 G试一下千问,估计美国人没有攻击他,所以资源敞开用。4 V1 v, f, }/ x  B
很稳定,质量不错,好像最多一次处理15页。6 r% P# D7 W" ]: m6 ^" ^
我直接拿deepseek的指令用,没有区别。
作者: heinsect    时间: 2025-4-16 17:01
试了这个工具,可以转成markdown,正确率很高,有漏行,图片会放在一个指定的目录下。
" }4 J& Y1 O- B. q3 z! n处理一本100页左右的扫描版本的中文PDF,一份某行业的接口标准,纯CPU,几分钟时间。0 Y, U- g/ b  W- Y
这个工具不能处理表格,我把文件拖到豆包里,“把这个文件中的表格转换成 markdown。只是表格,不需要其它内容”,表格多的话,要发好多次“请继续”。0 \2 ^/ ^+ L; @3 G4 h3 A1 l1 M! k3 T
' b5 Y2 X0 H! K$ y8 D
https://github.com/oomol-lab/pdf-craft* q- V) E  ]2 \' O" R+ |
; \3 g5 K( G$ n1 B4 j$ s! D* b$ ?
1. 这个工具要求装 python3.10
" y' e% O1 ~6 P) `* o2. pip install onnxruntime==1.21.0, 有英伟达的卡:pip install onnxruntime-gpu==1.21.0. V4 h7 C7 b) s* T0 y- ^- d& d
3. pip install pdf-craft  F8 W/ f$ K# S& z, B1 b* i3 n# c
4. 把下面的内容写到一个文件里,例如 a.py# ^+ R' ?1 G7 ?
6 t; C: c# _- b5 D6 j% L3 g
  1. from pdf_craft import PDFPageExtractor, MarkDownWriter
    % V# a! D8 ]$ G. v
  2. 3 {( x( o) d; P# W. `& M
  3. extractor = PDFPageExtractor(
    ! v2 z% a0 }% z' ]8 `$ n7 w9 ?
  4.   device="cpu", # If you want to use CUDA, please change to device="cuda" format.# S4 m$ O5 ?/ R6 }
  5.   model_dir_path="/path/to/model/dir/path", # The folder address where the AI ​​model is downloaded and installed0 h3 K5 M# w# P6 \+ d! @/ i
  6. )
    : c% o# [+ e# s  _% Y& R+ o9 C
  7. with MarkDownWriter(markdown_path, "images", "utf-8") as md:
    9 J$ q% }. Y, b) J: ^; D; a. }
  8.   for block in extractor.extract(pdf="/path/to/pdf/file"):6 p7 }4 l8 s( Y' x3 X9 z
  9.     md.write(block)
复制代码

8 ?* h$ b( f1 i( z6 a7 G
, H( A9 b1 O* W$ z要修改的内容:
6 k) [8 ~# n: E. l! B$ r' k4.1 /path/to/model/dir/path:存放模型的路径。第一次运行这个脚本会从 huggingface.co 下一个模型,国内的要科学上网,国内的镜像上没这个模型  `  h8 S$ M! ?, c+ E( t" ?
4.2 markdown_path:输出的 markdown 路径文件名
* [9 ^' }* W3 k4.3 /path/to/pdf/file: 输入的源PDF路径文件名
0 e2 _7 v. `0 ^3 V; T& s' P3 a6 A& {" q& k; h0 {* C1 z" M
5. 运行 python3 a.py
作者: nanimarcus    时间: 2025-4-16 19:47
本帖最后由 nanimarcus 于 2025-4-16 19:50 编辑 4 m2 M2 Z" h7 v
; F: V: b4 ^2 m" ]4 k
目前为止PDF转纯文字的最佳办法。
; B1 G+ |! v; n1 @, \: K先写个小程序,把PDF按章节切成小的PDF。
1 V( F; |2 Q0 w' S' x3 I# a. D然后,把PDF一个个传到deepseek,让她抓取,除错,输出。
. S$ d* l2 C' n* B4 E效果非常好。9 n/ ]2 p; x3 }9 l* c

: w* L# r4 a2 udeepseek,qwen,chatgpt 三个,deepseek是最好的。7 a2 q! L  \+ `% y- P8 i) y

' D+ ^  r" R  F: Sdeepseek 把页脚页眉页号全给去除干净了,跨页的段落也给你修好了。
- L* b  X, O9 ^' X2 F* X$ z/ l而且deepseek不会加戏,chatgpt有时候会想当然的加上没有的文字,让句子看上去想那么回事。( ]7 H; X" m+ F6 e( Q: A
我曾经修一个历史文章,chatgpt给我活活加了三段,真是文豪。6 X" z* g8 ?4 f
' W/ X4 j- }7 O# Y- l
API到目前为止,差强人意,不如网页版本修得干净。
2 w" i  `+ e: U1 R
5 s& @, _! o. @  H) g/ _deepseek可以同时开四个。1 _5 N* V$ @9 W6 @: i

作者: 三力思    时间: 2025-4-17 12:26
本帖最后由 三力思 于 2025-4-17 12:27 编辑 ) x: A2 h. L4 v& f/ F  A2 W' P

; z2 Z0 o, c- D) _( w% ^让Deepseek给你开发本地架构的抓取PDF软件,并负责上传,下载。 AI监工AI。 LOL
作者: nanimarcus    时间: 2025-4-17 16:33
三力思 发表于 2025-4-17 12:26
  u' B, |* i. Z% L) a% E7 y5 f让Deepseek给你开发本地架构的抓取PDF软件,并负责上传,下载。 AI监工AI。 LOL ...
- {9 {! m1 C, l! p' |
细说一下,听上去很不错,多谢。
作者: 三力思    时间: 2025-4-17 21:22
nanimarcus 发表于 2025-4-17 16:33) P' \5 f9 ^. C2 d% S7 v5 i- u
细说一下,听上去很不错,多谢。
2 @4 f0 X- d6 r- g6 B
直接问DS,“用C#,JAVA语言开发把PDF分成单页PDF并上传DS程序的源代码”
作者: nanimarcus    时间: 2025-4-17 21:55
本帖最后由 nanimarcus 于 2025-4-18 15:39 编辑 : N7 w2 w' R6 k$ p# Z2 |7 d

1 r' K0 {  {/ K6 s% j5 c! L3 C' n已经搞定.$ L8 I) E( \$ t" Y0 N
/ Y/ d) z# N; H1 Y
首先 PDF 本身已经OCR了,Adobe Acrobat Pro中自带这个功能。5 n0 M; M- L4 W1 `; v7 F( A
  K$ p3 _$ p6 n- u
1, python + pypdf 按章节拆分小的PDF
' g1 P: v# ?2 d& ]! ]2 M6 j% m# x
* ^6 J1 ]  @* e  r$ h2 W  S! [  K2, pdftotext -enc UTF-8 -nopgbrk -eol dos input outputfile# A2 b8 M; |8 v& B- h
) C- R* H% U3 u" y5 c6 u* m% g
得到text file
/ o# ~1 i6 w% S1 M" c. v  `6 d# r) ~% `* B! l7 w+ F
3, python 读取整个outputfile,丢给deepseek 矫正。+ a8 T1 @) Z! \

$ s& C1 y% e2 C9 N* T% L模型是 deepseek-chat
8 Q- R1 y- F9 d" l* g
( ]3 G+ h1 B0 P! v* h: lmax_tokens 最大是 8192,别的不用改。8 o; q0 _8 S/ U
; l' Y$ [+ T+ H, y$ E- w
参考:( T, V. L& I$ z+ h& _; _
https://api-docs.deepseek.com/api/create-chat-completion
& c; z% W5 ?1 ]" ~/ V1 z
8 p, g6 C6 D  I1 `0 j; D: ]4,费用:
$ {! m- _, P, t: o; m, T" c4 ~1 _; v; ?- z. _
实测:
  I& e3 a' _- B2 e
5 K0 B1 o* N/ N" l1 x296K 字母,用了 9 美分。
# X  f2 f( W) Y( b! i9 j. Q
9 H* e/ G  m2 W3 |- E+ t英文字母 到 token 用量大约 1/3' Q" O- i( E- x% G( \

$ S8 r1 \! t) ^9 ?/ c0 ptokens: total, 11782 completion,  3729 prompt,  8053 | s:  32899! G, O  u/ H' ]% L4 H# Y, O
0 ?' w/ m/ |! y9 k. E0 C. z
32899 个字母花费 11782 tokens,包含输入输出的 tokens- z! n6 b# t& n

7 F- r8 Y) X" l价钱,非常非常便宜了。* s8 c0 P# x" N# F! J  r/ x
$ L- E4 V& f( A( ^% x) X
参考如下可以计算,懒得算了。+ X' I) M& X8 c) P9 N# h
4 T% C) f  U0 }) S! Q
https://api-docs.deepseek.com/quick_start/pricing
( G1 i7 h5 P; f
  N. n9 U' ?) J. b7 g  y3 ?4 C1M TOKENS INPUT (CACHE HIT)(4)                $0.07                $0.14
, p8 S9 Z; T8 r2 Q1M TOKENS INPUT (CACHE MISS)                  $0.27                $0.55( ~- C8 g. A: W+ b  Y5 V# c
1M TOKENS OUTPUT(5)                                              $1.10                $2.19, e" y! Q  p, M0 C6 f
# X. a$ W: @. v, T% Y( e7 i: J
5, Balance
6 j( R9 y: d- i
2 i/ O6 w7 _: c; g: z可以在程序里调用,知道每次运行结束后,balance还剩多少。/ Q( U* Q& y3 q" E5 ~' Y" D# Q
参考:- q8 c9 g2 s' F/ j' c7 y
https://api-docs.deepseek.com/api/get-user-balance4 W" t/ |) O" ~2 X7 d2 s

; A! T, A9 y8 c7 Q) v/ a/ {0 Q6, Models
, T3 g* z. w1 h7 `3 \: x( s& Z% g( V
目前就两个
) A1 b" z1 _9 h2 v' T* L: b# deepseek-chat0 h( N- S5 _6 \4 m9 K! O/ o4 V
# deepseek-reasoner+ S3 D' B" |/ ]( k( ^: U
7 v: b+ |- F; v& x( ]
参考:
5 G+ `7 e& {' l, y) ghttps://api-docs.deepseek.com/api/list-models
' W% p6 X9 d+ }" U9 Q* @" k; a' k5 h% P+ q( U

( B0 o2 H' c% a  D" ~' X2 ~7, 问题$ u: V* w! |# d/ A# X
. _8 Y  V8 W% l
deepseek 会将前后两段合成一段。
7 y. a1 F. J# s" Q7 X# V特别是那种大量的对话的段落,deepseek会给你合成一大段。$ B, a2 T! W% q, w( e! B% w: o

. W; T- m& E/ X! C8, 钱说了算。
: E" `9 \) [/ o# E; |0 D# t8 Y; Y
deepseek 如果是免费的网页版,有时候会出现超出范围的提示,不干了。
* g6 D7 H1 x1 x2 r7 S但是API就不会出现这种情况,毕竟我们给钱了。9 @" T% ~0 @  ?  U
chatgpt也是这样的。2 i& `( a/ h' P
  W1 H6 E; c' v

/ y7 K2 W+ z* u/ O




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2