找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 633|回复: 0

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

  [复制链接]
发表于 2007-7-5 16:31 | 显示全部楼层 |阅读模式
打造自己的巨硬0.98词库[原创][申请加精]% `1 H" E8 y' n2 A! z, f- E

7 m9 _1 Q$ m: N
  C* q) ^  G3 Q之前发帖子问如何制作自己的巨硬词库,将如拼音加加的词库导入tero650的巨硬词库的方法,得到的答案是无法做到。经过不断的实践终于研究出一套方法。- r% Q9 C' l) h5 o' B0 T5 N+ f
* i, c  _! `  m. s  j7 |  u
先介绍一下巨硬对可导入词库的要求,请参照一下转自Uglee大侠的说明内容:
0 j4 O7 S% X# a1 N9 s5 ?7 y. k" e7 a0 {! f3 L
............导入词语需要规定格式的文本文件。文件的格式为:每一行为一个字或者一个词,每个字后面紧接拼音,然后是一个空格,最后一个拼音后面没有空格,回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。示例文件如下:" F5 U% S* Q+ t3 m7 S/ l8 Y1 \
会hui
6 `( L$ @2 Y8 \  y3 l/ v工gong
/ l  T9 c. m# u经jing
7 g- Q4 s/ `, @, t后hou 话hua; @0 w) [5 K- X, C
喊han 话hua
( s9 T4 {0 k3 ~- Q+ j, Y2 @坏huai 分fen 子zi3 X4 F0 h7 F: j0 Y# B8 y
豪hao 富fu
* {0 |  Z  n  U5 \1 e, l- L4 |黑hei 户hu
5 S9 c2 I; L' C: _2 E花hua 好hao 月yue 圆yuan
5 f% a) D- Y* b: O' r4 s1 D1 [+ n' `...........$ P9 n& A- \4 y/ }3 J; S- y9 x

0 m0 H. O; o# q: x1.对原始词库进行处理
& z7 p3 I1 u2 i; s6 y0 m6 W$ [" N首先,我们当然应该先有拼音加加,紫光,搜狗。。。等输入法的txt词库,这些词库的格式是以换行为分隔符的txt文本文件,不论何种词库文件除了汉字以外都会包括部分英文字母(拼音)对词进行注音,我们需要将这些英文字母删除。在这里,我建议大家将词库中的所有词复制到Excel中操作(注意:直接从txt粘贴到excel就可以了,而无须用excel打开txt词库文件)例如:将所有的词粘贴在A列,然后用查找替代功能将26个字母分别替代一遍,替代的时候在“查找内容”一栏填上单个英文字母,“替换为”一栏什么都不用填,这样可以删掉所有的英文字母,当然26个字母需要替换26遍,如果有数字的话也需要用以上方法将数字删除。之所以用Excel进行替换而不用记事本的原因主要是Excel的替换速度会比记事本快10倍都不止,而且在后面的处理过程中还继续需要使用到Excel。9 l& K1 D/ T' d: R( J$ x

# Y$ j- O+ A% M# `6 P$ l巨硬输入法是不支持超过4个汉字的词组的,所有我们必须忍痛割爱将5字以上的词组删除。这里需要用到偶们丰富的Excel知识 。在B列第一行,也就是B1,输入以下内容:=Len(A1),这个公式是用来输出相关单元格的字符长度的,如果是2个汉字的词组就会输出值2,以此类推3个汉字的词组就是3,4个汉字就是4...........将所有词库中的所有词组都以此处理,确保每个词组旁都能输出改词组的长度。相信常用Excel的吹友都能明白我在说什么。然后用Excel中”数据“-》”筛选“-》自动筛选”的功能,将所有的大于4(注意不是大于5)的单元行都筛选出来,并进行删除。
1 W  S: }0 m3 x7 k$ s- U+ K. N# g; H% X3 A; H
处理完后,将刚才自动筛选取消,以显示所有的词组,再选定A列中的词组单元格复制,粘贴到记事本中,这些我们最终需要的是一个只有汉字,每个词组都不超过4个汉字,且不带任何英文字母和数字,以回车为分隔符的txt词库文件。- U& @' u, _' G7 e! L+ C
" c$ V$ j; o. }
2.对词库中的词加拼音
1 X. q/ q, c$ t+ T这里需要用到的一个软件,叫做“实用汉字转拼音4.6”,大家在网上随便一搜就有了,无需安装是个绿色软件。将软件打开后,软件下面有5列单选/复选框以设置拼音转换的格式,设置方法如下:" z4 z& o0 C1 B
% m' I3 {- i  y, t
第1列只选中“加上空格”. U: f* k# d- U6 h
& X/ H' f, y4 A# J0 _, H' b
第2列只选中“左汉字友拼音”/ P/ }2 [- H0 ~$ k* Y7 h
1 A5 y" k3 B; b0 S2 O2 N0 n3 @
第3列只选中“全小写”2 X* P$ x) \8 D9 U( |: Y, d% q5 ?
( {  e4 F8 F; {& P5 g8 F
第4列和第5列什么都不用选. a$ _* p& S; o1 x1 z- l2 v& E

8 G- o) G7 Q4 a' l" m将刚才处理过txt词库中的词直接就粘贴到“实用汉字转拼音”软件位于上部的文本框中,再点击“转换”按钮,再将转换的结果复制,粘贴到Excel的A列中。
$ P4 l) i5 D! A% Y
! Q* S6 I2 m" T6 ?7 I- d% s( B. F7 \( t" h. U" d( B2 q* |
' H1 F% {) |+ z! o, U8 A% r5 [4 Z9 F
PS:我曾将3万行的词从txt文件中粘贴到这个软件中进行转换,出现了转换词不全的问题,这个软件好像只转了5000多行就没下文了,但有时候又没问题,可以一下转换2,3万个词 。有时候转换2,3万个词需要好几分钟,有时候就死机了,需要重新启动软件(不是重启电脑),重试几次就好了,所以大家在转换完拼音后需看看转换的最后一个词为标志,检查一下是否所有的词都转成拼音了。当然,如果各位大家的词库不大,不超过1万个词就不是什么问题了。
) J; R2 `2 D( r/ {3 f0 T" w. P/ n: u1 ^/ L+ I
' G  C& O0 N- T- Y; T$ m  d, ^* M

( G$ h( a) f" H; M. O. z4 I& [3 s* _$ `
3.对汉字+拼音的Excel文件进行处理) L) B; x- y% g$ c; O5 ?* _) ?
/ w: Y. K0 @8 ~
转完的汉字+拼音的词库,每个词内部的每个字是以空格分隔的,我们需要将每个词最后一个空格删除,这里再次需要运用我们丰富的EXCEL知识了。Excel确实是很NB的处理工具啊 。我处理的方法是这样的,在B1单元格中键入“xxx”,在C1中键入公式“=A1&B1“。解释一下这个公式,”&“这个字符的作用在于将两个单元格中显示(注意是显示的内容,不是实际内容)的内容的连接在一起显示出来。然后复制C1单元格,用选择性粘贴将C1的数值到D1单元格中(这个我就不再解释了,不明白的朋友去查Excel教程吧),其他词组照此处理,% }1 L! A' u; K: {) J% O

; p# p/ p9 I7 {: j  }* Z9 F' p9 W: v8 m

6 C. x5 h. [/ f1 W) V, x接下来,我们要继续对D列的词组进行加工,再次使用替换功能,将D列的" xxx"(注意xxx前面有个空格) 全部删除。我再解释一下这个步骤的思路:如果直接对空格进行删除,会将词组内字与字之间的空格也删除了,所以我们先将每个词组后面加上个xxx这样的不可能出现在拼音中的字符串以对最后一个空格加上标识,然后再将” xxx"删除就可以成功的将每个词组末尾的空格删除了...不知道我说明白了没有 " E4 A, d( K3 G4 j. m  T

9 ^' P$ [. x4 G- [- o9 _8 x8 h; `
0 I+ q5 H* Y, T. }2 P  K
再将处理过的D列汉字+拼音的词组复制粘贴到记事本中,注意根据巨硬对可导入词组的要求,txt文件末尾要有个空行,保存关闭。. b3 l) R' y- X, X: b& z% R
3 R( O) `' a$ U6 c# y1 e5 I! ~7 l% r# Z( F

( Y" d9 X6 ~3 W2 U4 T; S8 D7 @' i; H' l( D3 c
4.对词库的分隔符进行转换
* G/ I) z2 Y; m- p# b- @, Z
. h$ C+ J' g' C) W# j4 T5 x根据Uglee的说明文件:
$ |3 v+ B; X, M9 h% N9 x3 v; [1 D6 `
回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。
  @& ?2 s- Y9 F( @& ]" p, b/ L# Z& s; K6 b5 B( P; i
0 T  ]2 |" m7 Y( ~' q( \3 ^, ^

/ P4 b) Z& H( m/ M4 e说实话,我也不明白为什么要怎么折腾..直接跟大家说如何操作吧,先下载Editplus,网上到处都有,随便哪里下都好。用Editplus打开刚才处理过的txt文本文件,选择Document --> File format (CR/LF)选项,在弹出的对话框里选Unix,然后保存关闭txt词库。
; z" l; U$ q  d8 j
+ q  C% L# [+ r/ A% W1 {' B/ I; j
8 u, s: H8 m) H! L1 O1 g' M
5.最后一布,文件改名放入储存卡. K; L7 X: ?1 R

$ p9 ?7 G( d3 _' q! S, J' p1 J1 i将处理后的txt文件改名为mhpyphrase.txt, 放入储存卡的palm/launcher 目录下,在650的巨硬设置界面中导入就好了.......
: I( `( v! s, K0 E. A) R% p  {9 h
: l! o: V3 g) l( w8 ~我试过了,5万个词组的词库导入需要将近10分钟的时间。导入个人字库后的巨硬输入法输入有比较明显的延迟,我理所当然的认为这是因为导入的词库过大(超过10万个词,分2次导入的),但经过几次650和巨硬的重启后又不会出现延迟的情况了,用起来和平时没什么差别,不明白为什么..: a* s% ~; M  P& p" q, |
6 d8 ~* a, t: a' P& J
大家有什么问题就尽管问吧,不知道还有多少朋友用巨硬.......
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:36 , Processed in 0.268020 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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