找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 655|回复: 0

[软硬件讨论] [05-07-07] 打造自己的巨硬0.98词库[转帖]

  [复制链接]
发表于 2007-7-5 16:31 | 显示全部楼层 |阅读模式
打造自己的巨硬0.98词库[原创][申请加精]
/ h/ t  ?$ }! l$ V! l% }
3 O" Z1 d8 t$ y' `
! [+ R* ~/ O+ R0 L4 b  w之前发帖子问如何制作自己的巨硬词库,将如拼音加加的词库导入tero650的巨硬词库的方法,得到的答案是无法做到。经过不断的实践终于研究出一套方法。
+ B& n4 A# E- k" B
, C; ?. r, ~. [  }先介绍一下巨硬对可导入词库的要求,请参照一下转自Uglee大侠的说明内容:  i% S' @+ u! p- g9 `
. j; p( p: F1 g$ J6 I( z3 o4 v
............导入词语需要规定格式的文本文件。文件的格式为:每一行为一个字或者一个词,每个字后面紧接拼音,然后是一个空格,最后一个拼音后面没有空格,回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。示例文件如下:
2 k, v+ }) J: }( q/ I4 E会hui% h6 o# A- o4 y% d# y
工gong
0 Y2 T2 y" X" ?- Q经jing# ?' A" k' q% y' `4 s
后hou 话hua
0 f% ?* O4 M5 Y5 v' P5 g/ V喊han 话hua2 q' `& `! j5 d3 x! |
坏huai 分fen 子zi
% |1 _" ?0 n# h7 u/ G' A. H豪hao 富fu4 S0 G7 v. f/ w- f' C0 n
黑hei 户hu
- K, E! c( b: P花hua 好hao 月yue 圆yuan
+ @' u% U! o/ {5 }5 }2 o...........1 h. H& E8 k/ _7 W' D  _

7 d% z  \' c6 G4 r6 @+ s1.对原始词库进行处理
6 T  U; H+ X& U首先,我们当然应该先有拼音加加,紫光,搜狗。。。等输入法的txt词库,这些词库的格式是以换行为分隔符的txt文本文件,不论何种词库文件除了汉字以外都会包括部分英文字母(拼音)对词进行注音,我们需要将这些英文字母删除。在这里,我建议大家将词库中的所有词复制到Excel中操作(注意:直接从txt粘贴到excel就可以了,而无须用excel打开txt词库文件)例如:将所有的词粘贴在A列,然后用查找替代功能将26个字母分别替代一遍,替代的时候在“查找内容”一栏填上单个英文字母,“替换为”一栏什么都不用填,这样可以删掉所有的英文字母,当然26个字母需要替换26遍,如果有数字的话也需要用以上方法将数字删除。之所以用Excel进行替换而不用记事本的原因主要是Excel的替换速度会比记事本快10倍都不止,而且在后面的处理过程中还继续需要使用到Excel。. l9 s. O0 ~7 t7 t. h$ z9 d1 i
5 ]- w9 g$ p9 V* S
巨硬输入法是不支持超过4个汉字的词组的,所有我们必须忍痛割爱将5字以上的词组删除。这里需要用到偶们丰富的Excel知识 。在B列第一行,也就是B1,输入以下内容:=Len(A1),这个公式是用来输出相关单元格的字符长度的,如果是2个汉字的词组就会输出值2,以此类推3个汉字的词组就是3,4个汉字就是4...........将所有词库中的所有词组都以此处理,确保每个词组旁都能输出改词组的长度。相信常用Excel的吹友都能明白我在说什么。然后用Excel中”数据“-》”筛选“-》自动筛选”的功能,将所有的大于4(注意不是大于5)的单元行都筛选出来,并进行删除。' i4 B% c# s* r- |

+ t: m" u  ]: \处理完后,将刚才自动筛选取消,以显示所有的词组,再选定A列中的词组单元格复制,粘贴到记事本中,这些我们最终需要的是一个只有汉字,每个词组都不超过4个汉字,且不带任何英文字母和数字,以回车为分隔符的txt词库文件。' J" }* L+ ]! ]' [' e

2 E% Q+ F- j6 M+ y7 w1 |2.对词库中的词加拼音
- l; v6 e7 s1 r% [3 @+ H这里需要用到的一个软件,叫做“实用汉字转拼音4.6”,大家在网上随便一搜就有了,无需安装是个绿色软件。将软件打开后,软件下面有5列单选/复选框以设置拼音转换的格式,设置方法如下:
2 J  b, N! o" R4 U% g$ o3 W
7 b- s9 w9 A; h: h' Y- n第1列只选中“加上空格”
7 S  D$ a9 i4 ~3 U! E3 Q# a  J9 I8 j: K6 y+ |' N
第2列只选中“左汉字友拼音”" g8 \( y2 i. d& |/ \% O
& n0 {  G, `4 _" U! q8 Y. x1 j
第3列只选中“全小写”# m* c: v# }& q; l, Q& L
0 j. c6 f8 |+ V6 G) ~% U
第4列和第5列什么都不用选
# |. H1 a$ n: c4 x" d( o7 @! {# @! H: |6 |( R
将刚才处理过txt词库中的词直接就粘贴到“实用汉字转拼音”软件位于上部的文本框中,再点击“转换”按钮,再将转换的结果复制,粘贴到Excel的A列中。
. |- v' h% |- S, M8 i  u, a. J- e  ?4 o. k9 Q7 W

" U/ N3 i, K, f+ b; m8 r
2 K3 S7 W  N5 x9 UPS:我曾将3万行的词从txt文件中粘贴到这个软件中进行转换,出现了转换词不全的问题,这个软件好像只转了5000多行就没下文了,但有时候又没问题,可以一下转换2,3万个词 。有时候转换2,3万个词需要好几分钟,有时候就死机了,需要重新启动软件(不是重启电脑),重试几次就好了,所以大家在转换完拼音后需看看转换的最后一个词为标志,检查一下是否所有的词都转成拼音了。当然,如果各位大家的词库不大,不超过1万个词就不是什么问题了。) j& ]5 d2 @: j/ O3 ]

  [$ `8 u1 N# T/ f: L
7 _9 \* c1 e( _7 r: m, i& x5 V* [& J) h' C
6 n( k& _. o' I) {2 l3 Y
3.对汉字+拼音的Excel文件进行处理& s" t8 o8 \* K8 ]
" ^2 q0 Y. a$ N4 @0 |1 H
转完的汉字+拼音的词库,每个词内部的每个字是以空格分隔的,我们需要将每个词最后一个空格删除,这里再次需要运用我们丰富的EXCEL知识了。Excel确实是很NB的处理工具啊 。我处理的方法是这样的,在B1单元格中键入“xxx”,在C1中键入公式“=A1&B1“。解释一下这个公式,”&“这个字符的作用在于将两个单元格中显示(注意是显示的内容,不是实际内容)的内容的连接在一起显示出来。然后复制C1单元格,用选择性粘贴将C1的数值到D1单元格中(这个我就不再解释了,不明白的朋友去查Excel教程吧),其他词组照此处理,
3 v. W6 `' ]" w* w) G6 N3 t' j4 L/ ^. C" ^" x" w4 `8 D
5 D/ L! r2 D9 i8 K, \1 J5 o

4 F6 k' Q3 ^7 Y: I% j7 W* p接下来,我们要继续对D列的词组进行加工,再次使用替换功能,将D列的" xxx"(注意xxx前面有个空格) 全部删除。我再解释一下这个步骤的思路:如果直接对空格进行删除,会将词组内字与字之间的空格也删除了,所以我们先将每个词组后面加上个xxx这样的不可能出现在拼音中的字符串以对最后一个空格加上标识,然后再将” xxx"删除就可以成功的将每个词组末尾的空格删除了...不知道我说明白了没有
$ v+ D6 V9 K, K  h- E6 \3 c
0 F5 t% U6 U, t. l3 D- Q3 o5 S2 @- Z9 X* p) N
% R7 e6 C1 k* X( k4 z1 g
再将处理过的D列汉字+拼音的词组复制粘贴到记事本中,注意根据巨硬对可导入词组的要求,txt文件末尾要有个空行,保存关闭。
% f& S' |% X! Z% w; Y
* K4 W+ U7 y9 P
8 |( I" d6 O2 `# v9 e. d" t) S
& Q$ _" {& v/ _4.对词库的分隔符进行转换* W+ N$ d$ n# O  P

& ~4 \! c; }2 z# I1 n, t4 O1 L# W根据Uglee的说明文件:
" u; p7 j3 n) }1 k% x3 I+ g0 ?( K: r# y7 k: G; S6 d
回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。
) `3 h: J# I. n* D! I2 N& U9 ~* c. [+ V3 c4 R3 i8 X7 o% q8 K

" }3 [. D/ P0 g2 o) z- p, h4 [' ~- w5 ^( t
说实话,我也不明白为什么要怎么折腾..直接跟大家说如何操作吧,先下载Editplus,网上到处都有,随便哪里下都好。用Editplus打开刚才处理过的txt文本文件,选择Document --> File format (CR/LF)选项,在弹出的对话框里选Unix,然后保存关闭txt词库。
& h  U$ ]  |6 U0 Q) p  L. T" G* y: w. C; z7 E$ Z# _- R+ g

0 J% {9 U% ?0 W5 q4 D8 I9 `# i2 u# H8 r! j, P  B& F% ~. c9 W
5.最后一布,文件改名放入储存卡0 m  D/ Q0 w+ h9 `1 d* {
  m+ |* V: P. m3 N/ B5 }2 n
将处理后的txt文件改名为mhpyphrase.txt, 放入储存卡的palm/launcher 目录下,在650的巨硬设置界面中导入就好了.......
7 H, I% o  [% @. }  z5 s. L2 _' }( v- M
我试过了,5万个词组的词库导入需要将近10分钟的时间。导入个人字库后的巨硬输入法输入有比较明显的延迟,我理所当然的认为这是因为导入的词库过大(超过10万个词,分2次导入的),但经过几次650和巨硬的重启后又不会出现延迟的情况了,用起来和平时没什么差别,不明白为什么..
6 h: G8 a5 u  o8 S, \" I
% S. ]1 c' y' e& H% j大家有什么问题就尽管问吧,不知道还有多少朋友用巨硬.......
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 05:36 , Processed in 0.432201 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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