龙文郑码码表 for scim

如果你不幸像我一样,是windows自带的郑码的死忠老用户;有一天你突然进入了linux世界,发现没有一款顺手的郑码输入法而寸步难行,举步维艰;那么我前两天所做的工作,或许就对你有一点用。感觉linux郑码是小众软件,不是大众选择。

我把龙文郑码的码表,结合其词频,编译成了scim格式,顿时感觉顺手了。先把用来转换的perl程序贴出来。如果你懒得自己动手编译,给我发个email或跟个贴子就得。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w
# 此程序的作用是,把windows下的龙文平台郑码码表,转换成linux下的scim格式备用.
# rex.zhasm
# 18 Jun 2007
#
#
$filename="winzm_utf8.txt";
                #为解码操作方便,转换为utf8格式.
open(ZM,"$filename") or die "can not open $filename!";
while()
{
  if(/([x80-xff]+)(w+).*?(d+)/)
  {
    my $cipin=int($3/241*65536);
                #龙文的词频最高值是241,而scim的最高是65536,
                #因此这里转换成65536的,以适应scim。
        my $code=$2;
        my $len=length($code)-1;
                #此处-1,是因为perl的数组下标从0开始.
        my $hz=$1;
                #统一起见,使用变量$hz来表示汉字部分.
        my $line=$code."\t".$hz."\t".$cipin."\n";
                #联接成scim的格式.
        push @{$code[$len]},$line;
                #按不同的码长,存放到不同的数组中.例如,码长为1,就放到[0]数组中.2就放到[1]中.
                #此处得到了cnhacktnt的帮助.
  }
}
for $row (@code) {
        @$row=sort(@$row);
#               对每组数组按编码的ascii码排序
    print "@$row\n";
                #打印出每组数组.
                #可能打印出来后,还需要%s/^s//操作一下.
}

———————————-modification———————————-
22-Sep-2008: 最新版郑码词库for scim:点击这里下载。

16-Dec-2008: 最新版郑码词库for scim:

  zmpy4scim.7z (unknown, 66 hits)

2007年6月20日08:28
  • 2007年6月30日15:29 | #1

    谢谢,我才刚开始学郑码,打得实在不快。
    准备用baidu+google+sogou的词频来调整词频。谢谢你注释的说明,解决我正则匹配、词频上限等不少疑问:-)

  • 2007年6月30日15:32 | #2

    对了你的龙文词频是怎么提取出来的?

  • 2007年7月6日10:38 | #3

    @ 鱼一尾
    安装龙文平台后,挂载郑码输入法,然后备份出词库,注意选择自己的形码码表,及其词频信息。
    将该文件转为utf8格式,便于解析。
    词频信息就是每个词条后面的数字。对于每一行循环处理,正则表达式(\d+)对应的部分就是词频。

  • 2007年7月26日15:21 | #4

    看到你给出的perl版Imgen里有构词用的goucima.txt,想问问这个里面的构词码是怎么得到的:-)

  • 2007年7月26日16:45 | #5

    不难实现。已经重新写过了代码,附上较为详细的comments。请移步到:
    http://zm4linux.googlepages.com/gcm.pl.html

    谢谢关注。

  • Qzier
    2008年2月21日00:54 | #6

    我想要一个码表

  • 2008年2月21日10:51 | #7

    已经发到你的邮箱,请查收。把zm.png放到/usr/share/scim/icon,把zmpy.bin 放到/usr/share/scim/table里面,(如果cp 不行就mv)需要使用sudo。

  • 天嘘
    2008年4月17日20:18 | #8

    能给我一份吗?我也是郑码用户。

  • 2008年4月17日22:31 | #9

    没问题,已经发到您的邮箱。

  • 天嘘
    2008年4月17日23:09 | #10

    谢谢您,愿上帝保佑您。

  • 天嘘
    2008年4月20日18:36 | #11

    深柳堂老师,您好,谢谢您发给我的郑码码表,但是自从我升级到了Ubuntu 8.04后,您的码表无法应用。“18-Apr-2008: 最新版郑码词库for scim:点击这里下载。“你的链接失效,请您修复一下好吗?

  • 天嘘
    2008年4月20日18:44 | #12

    不好意思,是我搞错了,您给我的郑码拼音码表是可以用的。只是您的最新链接还是无法使用。

  • 2008年4月20日21:23 | #13

    谢谢提醒,已经更新。另:传给您的已经是最新版。

  • 天嘘
    2008年4月21日00:16 | #14

    嗯,谢谢堂主。

  • 2008年7月25日23:58 | #15

    你好,我做了一个关于郑码的一个站。
    你做的linux下的郑码可以放到我的站里面去吗?这样更方便别人下载。。。我没有用过linux,不太了解应该怎么办。 地址:www.zmfans.cn

  • 2008年7月26日06:39 | #16

    @亢龍有悔: 没问题。

  • 俗人
    2008年11月12日08:01 | #17

    我是一个linux的新用户,很多的东西都不明白,想在linux用郑码,但装了红旗linux6sp1后,发现已经没有郑码输入法了.我好像也试着装了你的郑码(试了好几个),但没有成功,你能不能做一个能直接安装使用的版本.比如只要./install就可以的版本.

  • 俗人
    2008年11月12日08:01 | #18

    请给我发一个好吗?谢谢!(或者有详细的安装说明文件也行)wangzhulin28@126.com

  • 俗人
    2008年11月12日08:02 | #19

    我试装你的版本时,安装过程好象有错误,但我在linux平台下不能怎么办,我现在就有一个./intall命令,您可别笑话.出点错误我就一点招没有了.现在又重装了linux6sp1,想重新下载你的版本试一下,却又下不来了.要是你有能用./install就可以安装的版本,

  • 2008年11月12日10:21 | #20

    我这里提供的,是scim码表,而不是完整的输入法。因此,如果想使用这里的码表,应该先安装scim输入法平台,再按照本文的方法来安装码表。至于写单独的输入法,我的功能不够,呵呵。现在出了一款新的输入法平台,ibus,在http://code.google.com/p/ibus/ ,也包含郑码输入法。你不妨试试。

  • 俗人
    2008年11月13日03:13 | #21

    你提供的网址http://www.mediafire.com/file/ntrq6bvqg91/zmpy_20...
    wangzhulin28@126.com
    压缩包里是不是前文说的“把zm.png放到/usr/share/scim/icon,把zmpy.bin 放到/usr/share/scim/table里面,”中的zm.png/zmpy.bin两个文件。我用的红旗linux6sp1用的是scim输入法,是不是按你说的“把zm.png放到/usr/share/scim/icon,把zmpy.bin 放到/usr/share/scim/table里面,”就可以了?还要不要进行配置文件什么的?谢谢!用拼音打字好累呀。我安装ibus总是不成功。

  • 2008年11月14日12:11 | #22

    用红旗是很久之前的事了,从4.X到了5.X,以后没尝试过,后来一直使用ubuntu。
    既然在红旗上安装了scim,安装方式应该一样,都是把zmpy.bin放到码表文件夹table,把图标文件放到icon文件夹。然后再在scim设置,选中相应码表即可。设置好后重启X或scim。试试看?

  • zxi
    2009年5月24日14:53 | #23

    郑码初学者

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">