爱吱声

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

作者: nanimarcus    时间: 2025-2-2 03:35
标题: 利用 Deepseek 抓取PDF的文字并矫正。
本帖最后由 nanimarcus 于 2025-2-6 22:17 编辑
/ x  b8 }* a& q/ f" G$ v5 e  q
3 Q4 l( g  [# t4 n把PDF上传,然后让他抓取文字,并修改可能的错误。
1 X/ J: v- j: n; o7 \然后deepseek完美的完成了任务。. G7 O% S+ Q- z6 ~! [  R- I) c
段落清楚,列清楚,页眉页脚全部去掉。9 j2 J7 z1 T, s5 _1 w  l
我要疯掉了!
- Z  u' y9 R3 O6 m赶紧把自己那些成年老书给搬出来,deepseek,这是党和人民考验你的时候了!. s+ C8 L- P% H0 z9 i
====
1 K+ v; J/ g( m* a( _) @中文也很完美。1 h1 P; P3 ~0 T9 s$ u5 N
经验值,每次十页比较稳定。. f+ r( g9 n" L# W
现在我这里API还不能用,等恢复了,全自动了。3 Y, n1 o1 _* A+ i# a& h
====0 m- O/ B  q3 C6 x$ f5 ~3 }
第二次疯掉了!+ Q0 C& X4 O  O. n
我上传英文文件后,让他抓取文字,矫正,然让他按页划分,前面放英文,后面放中文,结果仍然完美。9 @3 t$ n" a" T7 K+ A% o
====9 K2 G7 r( r/ x, Y+ s
现在我让他从PDF抓取文字,矫正后,按段落翻译,可以一次翻译多个段落,每次翻译不超过一个固定数目,结果仍然完美。
4 d; o% A+ E( h) b7 C但是任务多了后,每次翻译的页面数是减少的。
7 K, y) r+ E$ k0 h好吧,我五体投地,继续探索。
( J; d1 z* c- u7 ?" k: J. J====
, K- w" s9 T+ k: K* j为了防止中间结束,可以告诉他必须所有页面全部处理完就可以了,我现在是应该佩服我自己呢还是应该佩服 deepseek 呢,抑或都佩服。, z9 M# o1 _! w: v6 i7 P. H
====$ i* h+ |" i+ E" m3 G$ Q- q1 p
好吧,有些东西是不给翻译的,哈哈。+ F/ ^+ F5 B: U0 M2 ~; p' ^

; ^; O% A0 @$ LSorry, that's beyond my current scope. Let’s talk about something else.
  J! ?; T2 ~& c; c$ K====
" w  H" }8 c3 ]; \0 C然后我的英文命令也让deepseek 帮我修改,呵呵。
3 Q, p" g' `0 V% ?/ @====
# }, `, u- g* x0 `  O日语的文本他也可以处理,过程一模一样的。问题也是一模一样的,假名太多,汉字很少,我不懂日语,翻出来都不知道对不对。
' X2 _6 D* f' C/ t4 B2 X; E- z& O& g====
7 t/ r3 @) P% ^/ Q5 H: _时间段的话,北京时间的下午和晚上用比较好。
* K2 r- F2 v9 C9 J后半夜和早上,美国人上班了,要么在用,要么在黑客攻击。
8 [1 h- S7 q$ n6 `2 N4 s- O====
: Z9 ]( ?) ?7 j用千问吧,非常稳定,非常强大。
* M& S9 z, ~9 O' M. K* p' \https://chat.qwenlm.ai/  v: J2 G* q- q
====
0 J5 N5 |" s2 o6 m# n1 W( SDeepseek,API 看上去可用了,但是不给充钱。
( B4 z8 C' T$ D& L$ z  m5 F$ p0 Q5 P) z/ g7 E" A$ H

5 G( Y& E+ D. r) T  X6 R, D
: s% G  G) \8 E! f8 a2 N
作者: 马鹿    时间: 2025-2-2 03:53
这功能很赞呀
作者: nanimarcus    时间: 2025-2-2 03:56
马鹿 发表于 2025-2-2 03:53
; N9 }' x2 E& l这功能很赞呀
9 }1 E, E. K% u% c
简直太赞了,我现在正在思考还有什么工作需要 deepseek 干的,现在的上限是我的上限,不是 deepseek 的上限。
作者: indy    时间: 2025-2-2 04:13
有没有上传整本书试试
作者: nanimarcus    时间: 2025-2-2 04:27
indy 发表于 2025-2-2 04:13, }) ~$ G# e! p3 g+ g8 q* C
有没有上传整本书试试

0 l7 r, `! l' D2 n目前看来,差不多十页左右就停止了,看看还有什么诀窍不。
作者: 马鹿    时间: 2025-2-2 04:41
本帖最后由 马鹿 于 2025-2-1 15:43 编辑 ; r5 ~  J0 i- D# p
* K' f- U2 ?: u: S) N- c. J: L& G
以后让deepseek 读出土的竹简2 |& P- s0 ]4 s1 j% a

9 g) ]+ ?  B3 T* O4 M* D, n( [还有把古文翻译成现代白话
. r6 E+ r1 j# ]+ z. s$ P( I1 ~3 y4 R
以后不认识的字不查字典了, 直接问deepseek
作者: 方恨少    时间: 2025-2-3 01:23
请教是如何实现的?
+ L. x) ]  {/ c/ l2 a! l8 Q' j/ k$ ?8 i1 C" \
我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后,发出指令提取文件中文字,始终是文件解析中。直接在DS里问如何上传PDF文件,并提取文件中文字,照做其实是一样的。
作者: nanimarcus    时间: 2025-2-3 03:06
方恨少 发表于 2025-2-3 01:23: W$ U7 g% v7 I
请教是如何实现的?
3 P" ~. `$ I' e/ M* p
& |6 X1 w/ k; K7 `7 p我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后 ...

4 ]7 g+ [6 E: Y& j) `6 j7 S
" [% Q$ k1 X# b) p我现在也上载不了了,"upload failed",几个小时前还好好的,应该是服务又受攻击所以功能收缩了。
$ S% A# `9 V( w& F! j文字之类的没问题。估计deepseek现在暂时只保证主要功能。
) U% ]8 w4 ~2 c* B0 h8 A1 Y, x6 i美国人就这样,打不过就耍流氓,估计要等一段时间才能完全恢复。' M/ ?- ]) F  C

作者: nanimarcus    时间: 2025-2-5 00:15
方恨少 发表于 2025-2-3 01:23
4 l# t; k# q, l请教是如何实现的?
6 j% g* j. c! V" h$ K" i  V* o. q7 y
1 V' t2 e4 y4 J1 t4 _( X我在网页版和手机版都尝试了,都不行,网页版上传PDF文件始终不成功,手机版上传之后 ...
" e. |& n. q' S- P- r& A
https://chat.qwenlm.ai/
+ c$ g* h$ ?1 @% o2 _试一下千问,估计美国人没有攻击他,所以资源敞开用。
# C' B" Z7 S8 p8 M1 E很稳定,质量不错,好像最多一次处理15页。* D8 N+ N/ |1 o, z, u
我直接拿deepseek的指令用,没有区别。
作者: heinsect    时间: 2025-4-16 17:01
试了这个工具,可以转成markdown,正确率很高,有漏行,图片会放在一个指定的目录下。. ~" Z$ U- R# i! e; Z  v
处理一本100页左右的扫描版本的中文PDF,一份某行业的接口标准,纯CPU,几分钟时间。* n& Y4 N3 H2 m9 o0 ]2 |' r
这个工具不能处理表格,我把文件拖到豆包里,“把这个文件中的表格转换成 markdown。只是表格,不需要其它内容”,表格多的话,要发好多次“请继续”。# Q; y1 s. l, z7 F" p

; ]% H, G7 x; o; G7 V2 Yhttps://github.com/oomol-lab/pdf-craft
+ a, I5 }, f7 v4 p6 g4 {& y- l" ]7 H- e2 U4 b
1. 这个工具要求装 python3.10
1 E2 @7 L( n5 m" C/ u2. pip install onnxruntime==1.21.0, 有英伟达的卡:pip install onnxruntime-gpu==1.21.0: T- e; o2 y% M* z
3. pip install pdf-craft
- x8 a" p9 N2 U- i7 j( a4 f4. 把下面的内容写到一个文件里,例如 a.py
1 z& F9 t* ]( h. i0 i/ y  {4 K% l/ V' D  ]4 h: A2 N* R) X" x
  1. from pdf_craft import PDFPageExtractor, MarkDownWriter8 M$ ]7 Y0 W/ F

  2.   n* i2 I1 }1 ?7 o+ x
  3. extractor = PDFPageExtractor(
    ! w8 P2 @! k; H3 ?2 B: `# L- g5 G
  4.   device="cpu", # If you want to use CUDA, please change to device="cuda" format.
    + C8 G& I+ O% O) w5 o
  5.   model_dir_path="/path/to/model/dir/path", # The folder address where the AI ​​model is downloaded and installed" Q$ H1 v) K( A* X# X2 V# c2 Q
  6. )
    ) k1 C! l; H1 Y( P( L
  7. with MarkDownWriter(markdown_path, "images", "utf-8") as md:- e/ \$ s% K; y4 _9 ?
  8.   for block in extractor.extract(pdf="/path/to/pdf/file"):$ b, ^4 {% q7 [
  9.     md.write(block)
复制代码
6 }% g2 w% @: s7 r4 K/ |0 P) u$ }; P& o
) ~1 w) |" J5 n7 _4 n
要修改的内容:
* \$ ]: B5 o4 U$ U4.1 /path/to/model/dir/path:存放模型的路径。第一次运行这个脚本会从 huggingface.co 下一个模型,国内的要科学上网,国内的镜像上没这个模型, i# T( g- [0 V! Y
4.2 markdown_path:输出的 markdown 路径文件名# c" I# A2 y4 l
4.3 /path/to/pdf/file: 输入的源PDF路径文件名
1 p" b2 z* @9 L; n3 ^6 r6 N( z  H& P6 h1 d7 }$ x
5. 运行 python3 a.py
作者: nanimarcus    时间: 2025-4-16 19:47
本帖最后由 nanimarcus 于 2025-4-16 19:50 编辑 : V* D  c, K' G; {: z
/ r7 N( L" H7 E0 W
目前为止PDF转纯文字的最佳办法。
8 r. Q2 Z# M: J3 e; a1 ^先写个小程序,把PDF按章节切成小的PDF。
7 \1 e; ]! y/ ^! ]5 e6 a然后,把PDF一个个传到deepseek,让她抓取,除错,输出。+ q. W( v. ?3 k- |  k; X
效果非常好。
5 V% O/ D, C* h, _; `( w, h8 E
deepseek,qwen,chatgpt 三个,deepseek是最好的。) O. P* {. m, M/ Q
. A- A' D/ m+ v$ N4 Z6 A
deepseek 把页脚页眉页号全给去除干净了,跨页的段落也给你修好了。  M( e/ s  F4 M9 ^; ~
而且deepseek不会加戏,chatgpt有时候会想当然的加上没有的文字,让句子看上去想那么回事。% k! H( y0 K( {. L1 h9 E
我曾经修一个历史文章,chatgpt给我活活加了三段,真是文豪。
0 N% |8 j6 }6 W" D/ p" g  e) e9 K- e. q; c* \
API到目前为止,差强人意,不如网页版本修得干净。, b0 J- k, Q  [% e& R" z

6 D1 X. I8 q! E  _% l& z0 j( Adeepseek可以同时开四个。9 _+ i/ g0 C, j4 N1 i5 O1 X2 S* l6 z

作者: 三力思    时间: 2025-4-17 12:26
本帖最后由 三力思 于 2025-4-17 12:27 编辑 & A, o4 U5 \! N, n3 g

9 H5 Q/ c- u0 {% J让Deepseek给你开发本地架构的抓取PDF软件,并负责上传,下载。 AI监工AI。 LOL
作者: nanimarcus    时间: 2025-4-17 16:33
三力思 发表于 2025-4-17 12:26
1 ?! s/ W3 X1 l8 q( a/ O' w1 p* n# w让Deepseek给你开发本地架构的抓取PDF软件,并负责上传,下载。 AI监工AI。 LOL ...

2 U. w3 ?7 m) g) [: Z1 F细说一下,听上去很不错,多谢。
作者: 三力思    时间: 2025-4-17 21:22
nanimarcus 发表于 2025-4-17 16:33, @5 I* n. i3 I) I- c3 M( v& G3 {
细说一下,听上去很不错,多谢。
& g8 B9 }- g4 b1 H$ ]7 |2 Z
直接问DS,“用C#,JAVA语言开发把PDF分成单页PDF并上传DS程序的源代码”
作者: nanimarcus    时间: 2025-4-17 21:55
本帖最后由 nanimarcus 于 2025-4-18 15:39 编辑 6 ~" m- x8 Z8 j. q7 M6 f3 G3 \

. ^* c; v! g. F- l已经搞定.( H" C' Z; L/ T1 Z, m

1 R% u  w- _5 x/ R. q首先 PDF 本身已经OCR了,Adobe Acrobat Pro中自带这个功能。: V* q0 j! ?. l% t7 z- n3 @2 u
# l9 I, O1 Z" X0 G
1, python + pypdf 按章节拆分小的PDF
! g+ c6 u) w- y1 I5 O, O2 M( a- }
: d. T0 y. ]% v' G2, pdftotext -enc UTF-8 -nopgbrk -eol dos input outputfile
# P5 A/ a! p$ \- b  o' r) m0 l! {) p' }4 x' N4 N
得到text file1 j* j0 r' `' {" `- k
$ u6 g- y4 c1 R' j
3, python 读取整个outputfile,丢给deepseek 矫正。
/ M7 ?: E: }0 O7 [  ]/ w- i, n2 f% v: Z7 p
模型是 deepseek-chat# U$ M, N3 ]: _' p- t9 W
/ C  A* f% e. e* z4 _, Q3 w) d6 o
max_tokens 最大是 8192,别的不用改。& Y! J# a$ L3 O, B2 ~# f( Z) b1 t

9 x% j& E& s! u0 l- u  `参考:
  d6 x' M+ O/ o0 Mhttps://api-docs.deepseek.com/api/create-chat-completion( Z1 b3 {* [( u' p* V. T5 D

/ M  B: p# R: k- J4,费用:/ a) L+ r9 }3 P3 _8 O. `

$ V; J+ Z8 ~, v2 y( j! J实测:
  Q( F0 ]+ A* \& X' d8 ^# I3 y3 F1 @8 [; F, X; p
296K 字母,用了 9 美分。
. {) R) U6 T1 q. m
/ u8 W* d% k' X0 v0 Q9 k2 U: q英文字母 到 token 用量大约 1/3
9 o: @  U! S  A% Z
; W" b) ^. y% F: l+ A; H& utokens: total, 11782 completion,  3729 prompt,  8053 | s:  328992 j% W1 J6 X) b* K9 l; P/ f  a

4 ], v/ }8 h" D9 ]' `5 o32899 个字母花费 11782 tokens,包含输入输出的 tokens( K. i2 ?2 Z  R, n) `) S0 q) B

# v- i6 C  l8 l5 u5 I% [' e价钱,非常非常便宜了。8 e) q. t6 n2 w8 w6 T* c

5 E" J" C2 \* ^6 e$ }- ^4 E: ?* E  H参考如下可以计算,懒得算了。; E9 o( ~1 c6 s) k8 {0 D: {

) ~7 Y5 J% l* i* D; x3 L  ihttps://api-docs.deepseek.com/quick_start/pricing3 z, q) ]" M" r1 ?

, ?* E3 I, A6 L1 n) z$ i% f1M TOKENS INPUT (CACHE HIT)(4)                $0.07                $0.14! n/ [  W* t% J& Q
1M TOKENS INPUT (CACHE MISS)                  $0.27                $0.55
7 N" y2 n& R1 N$ ^8 y& Z1M TOKENS OUTPUT(5)                                              $1.10                $2.195 Q0 R$ h: r# m( J1 s' c

) a2 m4 T2 d4 Q, ?" l* N) p5, Balance/ G" H$ K1 b2 Y5 \& y
0 F& @6 F" ~4 K3 q% Y+ a+ o
可以在程序里调用,知道每次运行结束后,balance还剩多少。+ G: `( J6 M$ X" s: }' e: M' ~7 S& G
参考:
- n% h5 O1 }: j/ e; M% R0 u$ chttps://api-docs.deepseek.com/api/get-user-balance, P; G0 Z+ |( j1 j( U- H
9 Q; n; C) }; W+ Z
6, Models: @- H( P/ I4 w

$ s8 x) Y* V( m6 {5 O8 q% c3 B目前就两个
: ~: n: a) `* C5 `5 V# deepseek-chat
! O1 ^. E9 y0 ~# K/ U! L/ \, v6 j# deepseek-reasoner2 A8 T: z& u. A$ S
4 g+ D6 j; l* Q3 N0 c2 H* S! Q/ L
参考:
) H( {: s7 }, E; x, ohttps://api-docs.deepseek.com/api/list-models
4 [# T& h" {- J" h- K+ o5 k/ h
3 l' l7 `! w! \' j4 \) u
1 S' n: b( u; A5 e# z7, 问题2 t' m. F9 C% M2 e  d
1 |) r# a) R4 w% t# K2 V7 P% h
deepseek 会将前后两段合成一段。
6 O8 t7 H  W. K6 z+ e8 A& y特别是那种大量的对话的段落,deepseek会给你合成一大段。0 Q- |" g( N& _2 f) V
7 [. Y" o& M4 |+ m7 l/ e
8, 钱说了算。) t" Y+ x/ C# `2 F
2 p- v  [0 R" w1 t
deepseek 如果是免费的网页版,有时候会出现超出范围的提示,不干了。8 [8 v/ h3 j9 ^4 @$ K% R, @3 B
但是API就不会出现这种情况,毕竟我们给钱了。6 s$ \, o- H  i# |' c
chatgpt也是这样的。1 J$ @9 X: ^) n9 t% L* V6 `' ]: A

; I/ w" F/ u% \5 D/ _( \: b" i! N





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