找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: osfans

字体/掌易码表/ZDic词典/SuperMemo/SugarMemo等制作工具pdbEditor09.01.11

[复制链接]
 楼主| 发表于 2008-10-21 11:57 | 显示全部楼层
英文可能比较大,不能全部读入内存。最终可能一个词典也不够用。得另想办法。
回复 支持 反对

使用道具 举报

发表于 2008-10-22 14:41 | 显示全部楼层
原帖由 osfans 于 2008-8-10 20:01 发表
& w) y/ j% _) V程序源代码93072+ }3 c1 _- y- E# q$ ]
运行环境:
: A4 \7 Y1 v) i% n/ {9 B6 V) N) H% ?python2.5:http://python.org/ftp/python/2.5.2/python-2.5.2.msi( e1 _* t, c# i' ]7 E) y. f
wxpython unicode:http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.8.1-py25.exe
: ~7 K, y3 k- x, o
) k% h' y2 R4 t, }目 ...

' ^( v3 G/ E5 I/ ]) [! ^9 j
/ A. u' s& Q; C) E这个用了windows only的库ImageGrab, 还有windows的路径,我以为直接拿来就能在linux上用呢$ m  _3 w0 k; O
回复 支持 反对

使用道具 举报

发表于 2008-10-22 14:43 | 显示全部楼层
原帖由 wanderxjtu 于 2008-10-22 14:41 发表
( l2 e; S! Z6 S
# r4 u& }3 t) h% `0 w& f* @* }+ E; o, }6 Z6 x- T7 Q; z7 Q; {
这个用了windows only的库ImageGrab, 还有windows的路径,我以为直接拿来就能在linux上用呢" w2 N& L+ @, n/ H: d7 g7 {
9 i; Y5 E* y$ s& k; ^; w% z
ImageGrab.py中的说明:2 r- z7 }9 v: O/ ?2 Y1 a$ I1 b+ v: J
20 ##3 W% l8 o' s; R: N: f
21 # (New in 1.1.3)  The <b>ImageGrab</b> module can be used to copy) v0 t: u# f8 |9 F* ^# g# ~
22 # the contents of the screen to a PIL image memory.
+ _: X2 E) m. J5 z3 Z: a7 [& q 23 # <p>
: f$ O& ^) b$ o$ R5 `, ^$ q 24 # The current version works on Windows only.</p>
9 g% J7 {4 T/ o& |6 `0 |: I- F 25 #8 E+ O# E) M. P  k& |5 W
26 # @since 1.1.34 J5 p8 ~! Q) ]4 `+ L
27 ##
8 J5 n  ?9 B5 H4 C) b# ?
/ g0 T9 v9 m* u( @- K& R去掉Import ImageGrab后的错误:! h" b& ?3 N! |! e$ I: W% s
Traceback (most recent call last):
# A: {, Z2 |/ d  File "./pdbEditor.py", line 1555, in <module>" }* a' h7 N2 j+ [
    GUI()
" P& y$ Y% Z8 R, ^  y& X  File "./pdbEditor.py", line 1310, in GUI, Z! q' x! ]* `$ D9 }! K
    Application(None, -1, size=(780, 515))
: v& `5 X/ m$ M) ?, F9 A( q8 R2 E  File "./pdbEditor.py", line 862, in __init__" [% m* V; X- |2 M4 d
    self.createPageFont()
; [4 N0 X+ \  |  File "./pdbEditor.py", line 954, in createPageFont
, O" @/ k! i; b. G    self.initchoices()
# v7 X3 J2 k# c. z  File "./pdbEditor.py", line 1005, in initchoices: H1 i. U# V# J) ^
    os.chdir(os.path.join(os.environ['WINDIR'],'Fonts'))
5 q3 W& h7 [- Z  File "/usr/lib/python2.5/UserDict.py", line 22, in __getitem__
# K5 _% C: o! E9 u8 z) n4 g$ e. n    raise KeyError(key)1 i8 S" p' l3 {0 h2 l) x( P
KeyError: 'WINDIR'
% A8 x6 l2 j: a5 z) y! Z
7 K5 Y# t3 `4 h6 D% ?% J& Y2 m楼主能改下不?这个工作量应该不大吧,期待。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-22 19:39 | 显示全部楼层
原帖由 wanderxjtu 于 2008-10-22 14:41 发表
- {* T+ z, k/ `) G* F4 h8 y. E* G" G

3 G: V+ f' f8 _+ f这个用了windows only的库ImageGrab, 还有windows的路径,我以为直接拿来就能在linux上用呢
6 {, D, c+ V# i2 p, P

+ F5 }1 T0 n2 ~0 w+ U哎呀,不好意思,本来是想跨平台的,后来,发现没人用,就在windows下开发了,你看看,不行的话就把grab的去掉,直接用pil生成字体吧。
回复 支持 反对

使用道具 举报

发表于 2008-10-23 16:25 | 显示全部楼层
原帖由 osfans 于 2008-10-19 18:31 发表 1 N- T0 P* S  |# o/ b5 `
是有个临时存储的,不过我估计存不下.
& y' t" n3 C4 _' ]/ z/ n* [% O" i你别解压,可以直接读压缩文件的.
5 {' U5 N8 C  q: l, G

9 S0 e! o' }) K) c( B2 n/ e2 C' X& E解压了的xml是不是不能用zdictool.exe转换?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-23 17:04 | 显示全部楼层
也可以,都支持,解压后会更快一些。
回复 支持 反对

使用道具 举报

发表于 2008-10-28 23:40 | 显示全部楼层
原先的\n 功能还有么?% {6 ^' r1 z& ^$ x/ g6 F
我想实现6 e( S4 B3 R, ^# v* G% d
7.6    监视和测量装置的控制1 _/ S4 l* r# T( E
组织应确定需实施的监视和测量以及所需的监视和测量装置,为产品符合确定的要求(见7.2.1)提供证据。5 m% G' Z' {4 i! L9 I! x
组织应建立过程,以确保监视和测量活动可行并以与监视和测量的要求相一致的方式实施。. T' a) J9 P, m. W5 E
为确保有效,必要时,测量设备应:
$ Z1 W+ Y$ N5 B2 T) i- ha)        对照能溯源到国际或国家标准的测量标准,按照规定的时间间隔或在使用前进行校准或检定。当不存在上述标准时,应记录校准或检定的依据;
8 b( K+ J; X- db)        进行调整或必要时再调整;
  O  \& S) F& {, _( |9 D4 x这样写:$ o, C7 G( E% ?0 ~# J
7.6监视和测量装置的控制\t[ISO9000条文]//STEHORIZONTALLINE//        组织应确定需实施的监视和测量以及所需的监视和测量装置,为产品符合确定的要求(见7.2.1)提供证据。组织应建立过程,以确保监视和测量活动可行并以与监视和测量的要求相一致的方式实施。为确保有效,必要时,测量设备应:\na)对照能溯源到国际或国家标准的测量标准,按照规定的时间间隔或在使用前进行校准或检定。当不存在上述标准时,应记录校准或检定的依据;\nb)进行调整或必要时再调整;\nc)得到识别,以确定其校准状态;\nd)防止可能使测量结果失效的调整;\ne)在搬运、维护和贮存期间防止损坏或失效。\n此外,//STEHORIZONTALLINE//\n注:作为指南,参见GB/T19022-1和GB/T19022-2。\n注:可追溯到设备校准记录的编号或其它标识满足了本要求\nc)的意图。6 y6 E' I6 H2 i+ k; ~
有什么问题么?为什么A)的都显示不出来??
% N: \1 i- G! M+ h8 gc)        得到识别,以确定其校准状态;
) O$ f9 m- D5 _d)        防止可能使测量结果失效的调整;/ C# @6 t% O3 A/ ~! t
e)        在搬运、维护和贮存期间防止损坏或失效。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-28 23:54 | 显示全部楼层
“此外”后面的那条线有问题,只显示很短的一条,很怪。
/ ?* o. Q! A. \. j6 I1 n* @5 a1 k7 P* |' J) i# D. n2 ?) q
A我显示出来啦7 S; i4 A; l/ w$ D: `
Screenshot.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-29 00:01 | 显示全部楼层
7.6监视和测量装置的控制\t[ISO9000( u! A  m+ s  i8 o. O$ ^0 y( L

7 M) r- n. R7 Z# z这里不直接用\t,而是按一下Tab键
回复 支持 反对

使用道具 举报

发表于 2008-10-29 00:11 | 显示全部楼层
谢谢,太快了实况转播啊
回复 支持 反对

使用道具 举报

发表于 2008-10-29 16:10 | 显示全部楼层
英文4.1G的版本,convert.bat运行了不到半小时,出错:
) f4 _# }8 E/ c! H1 S, d convert_error.PNG
/ ^  f1 g+ S8 Z$ G从提示看,我猜是内存溢出之类的错误,因为文件大小超过4G了,是不是某个变量只使用32位的,换成64位是不是就可以了?" B# L6 U4 F. t3 u$ `9 m# b9 o
osfans回答一下!谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-29 18:14 | 显示全部楼层
对的,那个错误确实是那个意思,得改程序。
9 n' ~; I/ G5 `$ J2 f不过,现在的字典格式最多是16K*256*256,也就是1G。  O3 k7 D. p1 V9 ~2 F1 @: @
估计得分成四本才行。
回复 支持 反对

使用道具 举报

发表于 2008-10-30 08:55 | 显示全部楼层
很高兴看到osfans现身了。3 B/ y" ~* P" B$ Q1 M; @
你的意思是改程序也没法做到一本?
. F8 Z% `' P( j: [. t' q字典格式最多是1G,主要的瓶颈在哪?
回复 支持 反对

使用道具 举报

发表于 2008-10-30 09:04 | 显示全部楼层
大概看了一下源码,确实是全部读进内存再处理的。
. W0 Q. B) E0 a那我有个想法,能不能读一个单位处理一个单位然后直接写入pdb,这个单位可以是一行,一段,甚至是一个word。
) p( k1 ^) p3 q* h" ^对Python和XML不熟,但是我觉得处理好这个单位的划分,格式就不会乱,程序也完全可以跑起来的。
: |  I$ i$ i2 s0 J! m0 P  ^只是程序运行时间肯定增加不少,因为多了频繁访问I/O.
回复 支持 反对

使用道具 举报

发表于 2008-10-30 11:43 | 显示全部楼层
还有一个问题,我打算重新制作字典,请问怎样在txt文档中加入音标的指示符?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-30 12:14 | 显示全部楼层
原帖由 naill 于 2008-10-30 11:43 发表
8 t, }& o1 ?- k5 L0 \/ E; \还有一个问题,我打算重新制作字典,请问怎样在txt文档中加入音标的指示符?

: _. }9 @. P( \: V. @现在音标仅在正文开头的
! h5 W8 E. J8 D) F3 @/音标/
: P$ u: w% D, x* n7 D# j5 |  d( D" d, n- L0 o  Z  a
[音标]
# ~! `2 o% ?1 F( q! S能识别,其他情况下就得自己写了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-30 12:15 | 显示全部楼层
原帖由 nickhuang 于 2008-10-30 08:55 发表
  w2 v7 q3 k/ v( e, I) _很高兴看到osfans现身了。
9 H5 K) Z' |  X3 Q9 \你的意思是改程序也没法做到一本?# K/ F+ M$ C( m9 a7 [
字典格式最多是1G,主要的瓶颈在哪?

  U7 H" `) C6 K0 K( z瓶颈就是数据库记录数的限制吧,以及解压缩的单位的限制吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-30 12:16 | 显示全部楼层
原帖由 nickhuang 于 2008-10-30 09:04 发表 ' V  k( S* F9 i8 U
大概看了一下源码,确实是全部读进内存再处理的。
6 W, @* X7 I  s, J$ _7 x2 G5 g/ B那我有个想法,能不能读一个单位处理一个单位然后直接写入pdb,这个单位可以是一行,一段,甚至是一个word。% L6 `  Z' r# G4 N
对Python和XML不熟,但是我觉得处理好这个单位的划分 ...

' R  h. [- ]) M5 U& t7 e( x是的,是可以这样的,但是好像没必要,因为词典最大就1G,1G的话,内存加虚拟内存已经能够处理了,
回复 支持 反对

使用道具 举报

发表于 2008-10-31 09:31 | 显示全部楼层
原帖由 osfans 于 2008-10-30 12:14 发表
# _% @+ B8 p5 W
+ r& [, J& v5 Y- j现在音标仅在正文开头的
5 v, I9 X+ [, m/ I( K7 i2 V/ W/音标/
1 W  j/ J' Z' U, C
0 D+ O1 N7 P+ P[音标]3 I( j4 l( L: Q; r( E
能识别,其他情况下就得自己写了。

8 |, t/ D1 j/ ~1 K- D
9 ?$ q- P' ~0 f0 ?2 |老大,就是问你在正文中,用怎样的格式标注...
7 P# F! i0 z8 |: K比如 //STExxxxFONT//音标//STESTDFONT//的格式。
回复 支持 反对

使用道具 举报

发表于 2008-10-31 09:31 | 显示全部楼层
原帖由 osfans 于 2008-10-30 12:15 发表
2 t0 _) l- u+ o$ Y1 N# [; |* r5 O: Z" b
瓶颈就是数据库记录数的限制吧,以及解压缩的单位的限制吧。
" v6 ~% A6 G7 l
期待能突破这个限制啊,是不是要重写Zdiclib?7 M$ U; o) V; `: x
FAT32的4G空间限制肯定是无可奈何,但是可以下载小于4G的版本,也算是最终版了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 12:28 | 显示全部楼层
原帖由 naill 于 2008-10-31 09:31 发表
" E0 [* N2 G2 k( Z' L# s% N
# i1 W4 a1 |8 c; Y
' V3 A" c. c& e$ J: X& g8 u1 C老大,就是问你在正文中,用怎样的格式标注...8 [. x' Q) a0 b! o6 p4 _4 t) a5 g
比如 //STExxxxFONT//音标//STESTDFONT//的格式。

  ]1 {& }. X; o2 o$ u. A# r- U# u音标不能用这种格式,而是用调用图片的格式,比如://STEBITMAP=9001//这表示第一个音标,: K7 ~# n7 K5 j( E1 M) F
总共有255个,序号分别从9001到9255。具体是什么可以参看前人的GMX音标排序。
回复 支持 反对

使用道具 举报

发表于 2008-10-31 12:38 | 显示全部楼层
终于有点空了,我把 ZDicTool 的代码小改了一下,用 bsddb 写文件数据库,这样基本上只占用很小的内存就可以用了。所付出的代价是时间稍微增加了些,以 zhyue 做试验,执行时间从25秒增加到了35 秒,不过我认为这是值得的。
7 r: m4 }& K' Q3 g+ q7 d5 q+ l5 K& Q
! z0 x& R* _3 o0 P# e但是这只能解决生成的问题,生成以后的文件太大,ZDic 没法支持,我就真的没时间去搞了……

ZDicTool_emfox.py

10.24 KB, 下载次数: 586

不读入所有数据到内存的版本

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 14:59 | 显示全部楼层
厉害啊,支持~
回复 支持 反对

使用道具 举报

发表于 2008-11-1 22:22 | 显示全部楼层
原帖由 osfans 于 2008-10-31 12:28 发表
( k% ?/ z' e. Z9 C+ B
, k2 [5 \5 [+ S音标不能用这种格式,而是用调用图片的格式,比如://STEBITMAP=9001//这表示第一个音标,# o8 A- u1 L, M' M0 Q7 Q
总共有255个,序号分别从9001到9255。具体是什么可以参看前人的GMX音标排序。
; J9 V8 u* X* e

: H6 M5 {7 q* g& p2 q$ Q: v- _! i& ~我知道GMX音标的格式,大家用的朗道金山117万词典就是我做的~~~。
" n" b2 D9 B2 c& S6 X3 E9 D
' ]% c! L1 B- P其实你在第二行显示音标,肯定调用了什么语句。我的意思是,你可以自己定义一个格式什么的,当程序读到这个格式,就自动调用你写的函数,不就完了么?然后大家都按照这个格式把字典修改一下,也应该容易实现的啊。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 01:55 | 显示全部楼层
老大,我试着反编译了一下词库,结果出现这样的问题,请问何故?
: }2 {: p' Z; @+ R0 A9 N( Y1 t  o8 i9 ?! ]
F:\Palm\000000\Key>zdictool -t a.pdb a.txt
; Q' T5 K  }0 d6 o' t[01:47:24]Loading...3 f: d7 c$ m. E7 Y: }8 @0 k& v
[01:47:24]Processing..., L  N  Y' X+ y. D8 T* b8 O
[01:47:24]Error!' D5 A( S3 w( M* y& F+ _8 j
Traceback (most recent call last):; j# M! x: |( Q' z3 f  s
  File "ZDicTool.py", line 253, in <module>
  a8 r) ^) }7 S' z' V# y    app.p2t(pathi, patho)1 i3 ?. u7 k( o4 L. S, X
  File "ZDicTool.py", line 232, in p2t
! n9 N- B) v- [: [8 ^    t.write(self.unste(f.read(endOffset - startOffset).decode('zlib')))
* W% Q: ~) z/ k0 m5 O1 o+ q  A  File "encodings\zlib_codec.pyo", line 43, in zlib_decode5 ]- l) e$ n5 A$ J: Q# y  `
zlib.error: Error -3 while decompressing data: incorrect header check( p$ G/ {) t" J% H, n  `4 M$ w
9 R1 U6 K4 G8 Y
是不是机器要装python-2.5.2.msi?我已经装了( ^/ G- M, K2 O' I' }

5 ^. A5 ~! i6 H机器性能不错,2.4G 45nm双核,2G内存,硬盘NTFS分区1 p0 {# m2 d* Q: I0 |

2 V- p) n) {8 s$ N: o4 u[ 本帖最后由 采花郎 于 2008-11-2 01:56 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 12:59 | 显示全部楼层
原帖由 naill 于 2008-11-1 22:22 发表
. z. F& c  v0 p, b( T* [3 r, Z) r# I. K; H- S( k

! U7 a6 ]8 A6 ^4 G我知道GMX音标的格式,大家用的朗道金山117万词典就是我做的~~~。
8 H* @7 E3 h3 H
$ l4 {* ?3 i0 c& \8 l其实你在第二行显示音标,肯定调用了什么语句。我的意思是,你可以自己定义一个格式什么的,当程序读到这个格式,就自动调用你写的函数,不就 ...

1 }# ^" \: h" U9 Y; \是啊,是进行了替换啊,而且是把短的变成了长的,但是,以前写过把[[ ]]之间的内容自动换成超链接,据说速度比较慢,而且还容易重启,所以就不写了,主要的原因就是,把长字符串变成短字符串好变,但是,把短的变成长的,就容易出错了。因为源字符串,比如是16K,分配的新字符串得长于16K,这就比较麻烦。最极端的情况,每个字符都是音标,那估计得超过64K了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 13:00 | 显示全部楼层
原帖由 采花郎 于 2008-11-2 01:55 发表 - ]) Z6 k6 w  r( g5 e
老大,我试着反编译了一下词库,结果出现这样的问题,请问何故?
3 T, c. ]* P+ O  l6 d& N- s6 t; L- V' c$ z6 F! I
F:\Palm\000000\Key>zdictool -t a.pdb a.txt
! e! A- h& c2 v4 O5 l7 o! ^8 N[01:47:24]Loading...
+ K& s7 y- j7 {' L1 V[01:47:24]Processing...
: P5 H  e" W9 c! `[01:47:24]Error!
% ~4 |1 P; l, u# w; v* p- iTraceback (most recent call ...
& J1 Z# D& y. T- `* D+ l; ]! K8 H; Z  ?
这个a.pdb有多大啊?不大的话,传给我试试,我来调试一下,到底是怎么错了。6 s" K5 f6 I6 [: V2 A: e
你装的东西没问题,齐全了。还是我程序的问题。+ Z. n# q( q9 D# n. o
对了,难道是旧版本的词典?那就没法解了,用dekdic的速度快一些。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 14:17 | 显示全部楼层
可能是旧版的词典,不太大,10来M的样子
* {: m9 g3 m& Z* C6 }% y# X5 v1 W5 |) n$ C) n' \4 q
dekdic?也是反编译的?反编译旧版词典?4 l' E8 W# W2 W
7 S9 b/ ^* k) _5 E& R' E
另外,做中文wiki,我直接下载bz2压缩包转pdb很快,不到20分钟。2 P) y0 o2 V+ X8 L" p) w8 _  Y. C: u

% v4 H& P9 C9 E6 ]' J, M/ V+ {但是我按照你的提示,解压出xml文件以后,convertZ转简体,然后用zdictool转,已经过了一个多小时了,还没完。怪了,你不是说要快些吗?. y# f2 e) k0 h4 s  S: o" G0 W& \

' M9 X1 E/ P1 h  ^* b[ 本帖最后由 采花郎 于 2008-11-2 14:18 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 19:34 | 显示全部楼层
对的dekdic是反编译旧字典的,我也传到主楼吧。
8 \' Z  t  w; {; n9 {" N
6 r; }# M# L4 j- I- D$ S1 O转成简体后,注意存储的编码格式,还需要是utf-8格式。
; f) }& [/ Z. Z6 g; l. J不过有人反馈这个工具在转换wiki时,部分词典末尾会丢失部分内容,目前还没有查出错误所在。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 19:46 | 显示全部楼层
回osfans兄7 g9 j7 [# y5 \' ?: x9 X+ }6 E
0 i& G0 w  H, G. b
中途出错了,退出。1 y5 A( _% n. O: C# M
/ H0 j  q$ X# X6 v4 E/ w4 G
解压后的xml文件有九百多M,转成gbk编码以后就只有七百多M了,应该是没问题的,utf-8编码确实体积要大一些。, w, L- t, c+ Z9 n8 ~" g7 R

' l  ^- c& g3 R5 W2 a" q( R不过转换过来的xml始终都不能正确转成pdb,不知何故。我直接把解压后的九百多M的xml文件转pdb成功,所以估计应该是那个convertZ在转换过程中出了问题
( ?# K/ J1 x2 X* {) r4 \
3 h4 }# O" O1 N9 d$ ?! P下午把英文版的4.1G的bz2下载了,试着转换了一下,内存占用达到了2G(机器是2G的内存),后来上升到2.6G以后出错退出。
) L0 s6 t+ W/ f7 x4 o
! _( ~! u: \( m& ?5 P. h4 l不过似乎听老兄你说zdic支持的词库不能大于1G?看来就算是转换成功了也没戏,呵呵,Zdic打不开
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 20:07 | 显示全部楼层
原帖由 采花郎 于 2008-11-2 19:46 发表 " B3 X& J1 Z* E- l
回osfans兄5 U3 a$ ~" i* \! N4 s2 K' |! Y
% t) `4 F6 W; u( y
中途出错了,退出。
' Z, E/ G3 o' j) a0 R* d' a' n
" k; O& N# B1 `$ R7 V  e2 J5 f解压后的xml文件有九百多M,转成gbk编码以后就只有七百多M了,
* Q2 E& ^' w$ c$ ~3 q. n% b
要把转换之后的文件保存成utf8编码,不能使用gbk编码。然后再转换。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 20:27 | 显示全部楼层
测试成功,直接用xml转的,晕倒,这个中文wiki才花了5分钟就完成了,确实比bz2的包快多了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 21:00 | 显示全部楼层
先别删那个XML,待会我更新一下源程序,应该能解决内容丢失的问题。
回复 支持 反对

使用道具 举报

发表于 2008-11-2 21:20 | 显示全部楼层
osfans兄,你后面贴的那个py文件说不全部读入内存,解决了内存溢出的问题。但是我在处理4.1G英文版wiki的时候仍然出现内存溢出,内存占用无比大。请问这是何故?4 X8 A' N; T( Y8 d7 F# R  U. x

5 _/ D0 P0 X9 E8 O我解压bz2以后再试试看会不会继续出现占用打量内存的情况,不过估计还是老样子。, h" s: t5 p& e
5 c4 q& W, |1 U; q- m
[ 本帖最后由 采花郎 于 2008-11-2 21:35 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-2 22:05 | 显示全部楼层
那个是一位网友改的,我机器无法测试,你试试看。zdic格式现在最大确实只能1G,
回复 支持 反对

使用道具 举报

发表于 2008-11-2 22:48 | 显示全部楼层
非常不错
回复 支持 反对

使用道具 举报

发表于 2008-11-2 23:18 | 显示全部楼层
报告一下osfans,前面我遇到的问题果然是旧词库的问题,用了你的新工具以后,成功转换5 h3 s7 F  A* `4 B$ u# G

2 T6 o7 L* e- j8 V, Z; ?谢谢osfans。
回复 支持 反对

使用道具 举报

发表于 2008-11-3 16:09 | 显示全部楼层
原帖由 采花郎 于 2008-11-2 21:20 发表
. y% s& W7 Z" W4 s& {3 \1 Dosfans兄,你后面贴的那个py文件说不全部读入内存,解决了内存溢出的问题。但是我在处理4.1G英文版wiki的时候仍然出现内存溢出,内存占用无比大。请问这是何故?/ `: X7 t1 o; l/ n

% a4 `. t4 n. M/ K% ^我解压bz2以后再试试看会不会继续出现占用打量内存 ...

6 w  B& j% x5 \, ~/ [' [# p
* w# c6 {  o+ ^4 I那个 py 文件是我做的,我又仔细看了一下,是这么个问题:虽然已经不全部读入内存了,但是因为直接调用了 sorted(),所以词条(单词本身,不包括解释)还是要全部读入的,加上排序所用的开销,对于解压开来有19G之多的 enwiki 来说,应该也有七八百M吧……不过反正在我的4G的服务器上是制作成功了,嗯2 Y  W1 l) O+ m# p9 L% v* ^/ _8 @

; D4 C0 f: j' X. v) z9 ?但是总的来说,这个成功的意义虽然比较大,但实用价值等于零,因为 ZDic 根本认不得这么大的文件……
9 R: i# S* {, t# w! b; y4 L) a7 ]5 e& ]+ S3 }. o* V
我下一步准备把那个大文件分成四五个小文件,不知道在 16K ZDic版本之前,zhwiki 都是分成两个文件的那种版本是怎么做到的?有大侠能告知一下的话,万分感谢~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-3 17:45 | 显示全部楼层
原帖由 emfox 于 2008-11-3 16:09 发表
" v2 W6 c3 A6 b/ p  \( Y% i) ]+ w, A/ s$ Q: |
* c* [1 S# H  p9 I9 H
那个 py 文件是我做的,我又仔细看了一下,是这么个问题:虽然已经不全部读入内存了,但是因为直接调用了 sorted(),所以词条(单词本身,不包括解释)还是要全部读入的,加上排序所用的开销,对于解压开来有19G ...
3 w; j+ }0 n3 e! M. g; |
正则替换那里我写错了,现在已经更正不会丢失内容了,另外,乱码的判断还是有点问题。
& V" C1 ?+ J- C4 X8 S6 w4 ~1 V& p分割我觉得设定一个记录数就行了吧?比如每个词典六万条。
  1. s = re.compile('(</?(p|font|br|tr|td|table|div|span|ref|small).*?>)|(\[\[[a-z]{2,3}(-[a-z]*?)?:[^\]]*?\]\])|(<!--.*?-->)',\. W! G0 e; @/ @
  2.                          re.I|re.DOTALL).sub('',s)
复制代码

( X; S! v7 Y" O( i[ 本帖最后由 osfans 于 2008-11-3 17:49 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2008-11-3 21:43 | 显示全部楼层
请问最新版本还支持导入巨硬词库吗?我下了exe版,发现可以导入掌易词库,但导入巨硬词库时提示format error。下了python的却不会用…
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-4-3 06:01 , Processed in 0.589249 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表