用输入法,不论使用极点、酷极、万能、智能等哪一款五笔,都有一个打造最适合自己词库的过程。本文目的,在于教你掌握基本的文本处理方法。 有朋友问了,有极点工具箱,还需要自己手工处理么? 我的回答是: 极点工具箱是不透明处理,你并不清楚它是怎么工作的,你原来的字、词频是否得到保留。 而我教你的方法,让你清清楚楚的明白自己所做的,字、词频也不会变化,保证百分百原版移植。 一、工欲善其事,必先利其器。 先下载自己要用到的文本处理工具。 以下两种都是很优秀的文本处理工具。 Emeditor胜在功能强,对中文支持好。 EmEditor Pro 6.00 tracky 汉化版 http://www./index.php?Go=Show::List&ID=9751 UltraEdit 11.20a 莫名汉化版 UltraEdit胜在处理速度快,大文本几乎就是瞬时完成。 http://www./index.php?Go=Show::List&ID=9183 二、试炼。将系统自带的输入法词库转换成极点或酷极格式的词库。 1、反编译系统输入法的码表文件为文本格式。 点击 开始——搜索——文件或文件夹,在C盘查找imegen.exe文件。 查找到后,双击运行它。 选择它的第二个标签:逆转换, 然后点“打开文件”,在弹出的窗口,选择你要转换的输入法码表文件,这里我以系统自带的郑码为例说明。界面如下:
 假如你看不到*.mb文件,请在弹开的窗口中选择c:\windows\system32目录就能看到了。这样转换结束后,将会在c:\windows\system32目录下生成一个winzm.txt的文本文件。 2、打开winzm.txt文件,你看到的,将是如下图所示的格式:
 可以看到,它的编码有词也有字,格式为: 字(或词组)+英文字母。另外,还有一些单字+英文字母后还有空格+字母, 这是输入法为造词而用的造词码,对我们没有什么用处,大家先不要管它。 后面我们将会教大家如何快速的去掉它。 请大家将文件开始直至[Text]的部分全部删除,这些是输入法的规则定义部分,我们用不上。 3、开始处理和转换文本的格式。 前面说了, 我们现在得到的文本是: 字(或)词+ 英文编码 这样的格式,而我们打开极点的码表 freewb.mb ,会发现它的格式为: 英文编码+空格+字(或词) 如果有重码的话, 还会在字(或词)的后面再加“空格+字(或词)”。 ①、我们先将部分单字后面的造词码去掉。 用Ultraedit打开winzm.txt文件,按Ctrl+R,调出UE的替换窗口,在“查找什么处”输入“ [a-z]*$”,注意,[a-z]前面是一个空格,不能少了,在替换为处留空不填。 选中“正则表达式”,点“全部替换”。 看看,是不是一下子将这些多余的造词码去掉了?
 现在,我们要涉及重点了,就是怎样把现有的这种字或词+编码的格式给换成编码+字词的格式? 在我看来,无非是将这两者调个个儿。现在,需要请到我们的主要工具:Emeditor。EM对中文的处理很好,这也是我们用它的主要原因。 ②、将汉字和编码调个个儿。 用Emeditor打开winzm.txt。 按Ctrl+H调出查找替换窗口。 在查找处输入:^([^\x00-\xff]+)([a-z]{1,4}) 然后在替换为处输入:\2 \1注意,中间有一个空格,一定别忘了选中“正则表达式”选项。选中“正则表达式”,按全部替换,就可大功告成了。Em处理上万条文本稍有点慢,请大家稍等会就行了。
4、如 何分离字和词的码表? 我们同样可以用EM来完成。 同样以未替换前的码表格式来说明。 ①、 去掉全部的单字编码行,只保留词组及编码。 EM打开码表,按Ctrl+H调出替换窗口,在查找处输入:^[^\x00-\xff][a-z]{1,4}$\n 然后在替换为处留空。 好了,看看是不是将单字和编码全部删了?记着,一定别忘了选中“正则表达式”选项。 ②、 去掉全部的词组编码行,只保留单字及编码。 同样的按Ctrl+H调出替换窗口,在查找处输入:^[^\x00-\xff]{2,20}[a-z]{1,4}$\n 然后在替换为处留空。 看,词组和编码全部已经删除了。同样,别忘了选中“正则表达式”选项。 其实真正来说,处理这些文本,我们都只是利用了它们的正则表达式功能,正则表达式在处理文本时功能非常强大,能完成一些我们几乎只有编程才能完成的任务。 如果感兴趣的话,可以自己找找正则表达式方面的相关内容研究研究。 |