找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 631|回复: 0

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

  [复制链接]
发表于 2007-7-5 16:31 | 显示全部楼层 |阅读模式
打造自己的巨硬0.98词库[原创][申请加精]$ n5 R, X$ f! S, {8 U# b/ W
, P  o. n3 r: i8 Q# J# R0 D+ {( X  N  W
7 h; n9 N/ d2 F. B: L; i  D
之前发帖子问如何制作自己的巨硬词库,将如拼音加加的词库导入tero650的巨硬词库的方法,得到的答案是无法做到。经过不断的实践终于研究出一套方法。
& |+ R$ y2 ^: f! o3 P
6 n: J/ ~' h5 R先介绍一下巨硬对可导入词库的要求,请参照一下转自Uglee大侠的说明内容:
  s: L9 ?# D  m/ O& s1 w  K& k, b; g: z8 b  L# ^/ x, t6 r* t
............导入词语需要规定格式的文本文件。文件的格式为:每一行为一个字或者一个词,每个字后面紧接拼音,然后是一个空格,最后一个拼音后面没有空格,回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。示例文件如下:
+ s/ A, s" N2 [$ e8 ?会hui
  _  ?/ ~- y: ~6 A+ H1 U/ O' j工gong
. s  w) S' g. u4 l6 \# ]; K- d0 A经jing
1 p6 \- j: o; A' X后hou 话hua; \9 u0 Y) z9 z. H; B& P2 E, M
喊han 话hua
3 p/ `' a* t9 w- @) W" Y2 @坏huai 分fen 子zi% v6 q+ b+ s4 ?& |$ h* c7 u1 i
豪hao 富fu
. T0 ~' ~1 E) j黑hei 户hu
" O2 }2 _; _: V; _花hua 好hao 月yue 圆yuan; n. [* W: r& o( f- E
...........
  [3 l8 b/ c6 Y5 h- R! C
7 X+ D7 t7 {% L( A  Z, K1.对原始词库进行处理* _( ~/ [8 G* P% k! g/ [3 D
首先,我们当然应该先有拼音加加,紫光,搜狗。。。等输入法的txt词库,这些词库的格式是以换行为分隔符的txt文本文件,不论何种词库文件除了汉字以外都会包括部分英文字母(拼音)对词进行注音,我们需要将这些英文字母删除。在这里,我建议大家将词库中的所有词复制到Excel中操作(注意:直接从txt粘贴到excel就可以了,而无须用excel打开txt词库文件)例如:将所有的词粘贴在A列,然后用查找替代功能将26个字母分别替代一遍,替代的时候在“查找内容”一栏填上单个英文字母,“替换为”一栏什么都不用填,这样可以删掉所有的英文字母,当然26个字母需要替换26遍,如果有数字的话也需要用以上方法将数字删除。之所以用Excel进行替换而不用记事本的原因主要是Excel的替换速度会比记事本快10倍都不止,而且在后面的处理过程中还继续需要使用到Excel。- T- ^) F# F4 A6 _

" q! `9 t$ X, u! |% P* b巨硬输入法是不支持超过4个汉字的词组的,所有我们必须忍痛割爱将5字以上的词组删除。这里需要用到偶们丰富的Excel知识 。在B列第一行,也就是B1,输入以下内容:=Len(A1),这个公式是用来输出相关单元格的字符长度的,如果是2个汉字的词组就会输出值2,以此类推3个汉字的词组就是3,4个汉字就是4...........将所有词库中的所有词组都以此处理,确保每个词组旁都能输出改词组的长度。相信常用Excel的吹友都能明白我在说什么。然后用Excel中”数据“-》”筛选“-》自动筛选”的功能,将所有的大于4(注意不是大于5)的单元行都筛选出来,并进行删除。: k0 Y1 A- |0 n9 q# A, D4 j
. j4 Y/ O" I; o( T( g* |
处理完后,将刚才自动筛选取消,以显示所有的词组,再选定A列中的词组单元格复制,粘贴到记事本中,这些我们最终需要的是一个只有汉字,每个词组都不超过4个汉字,且不带任何英文字母和数字,以回车为分隔符的txt词库文件。/ N: v. i% [- s# O) u$ `

" K3 g! X' S$ y  G* k+ E2.对词库中的词加拼音* X; e* s( T, K
这里需要用到的一个软件,叫做“实用汉字转拼音4.6”,大家在网上随便一搜就有了,无需安装是个绿色软件。将软件打开后,软件下面有5列单选/复选框以设置拼音转换的格式,设置方法如下:$ b: B; V( D* Y5 [" K& y
  N3 D! Y6 o0 C& }
第1列只选中“加上空格”
$ r) q* a8 j/ n, x9 v' N4 B1 ?# g/ n; Q
第2列只选中“左汉字友拼音”
; B, D% Q: K& S3 L* m' _1 \; T" |  {" j0 Y2 r+ }* r" ^/ w
第3列只选中“全小写”0 T2 z9 R1 j9 @8 q7 Z

, y! e5 H4 [. f0 C$ w第4列和第5列什么都不用选
7 H' a% e4 \! F' L8 Z3 T7 ^5 L" G% c9 I, _1 h# |7 j" y& [5 T
将刚才处理过txt词库中的词直接就粘贴到“实用汉字转拼音”软件位于上部的文本框中,再点击“转换”按钮,再将转换的结果复制,粘贴到Excel的A列中。
9 [6 i- }4 k4 g1 ?- E3 Z8 i: @7 l) T& T& l0 e8 l
+ F( O: m" J* t2 j% Q" o; J

6 N7 V. F& W  FPS:我曾将3万行的词从txt文件中粘贴到这个软件中进行转换,出现了转换词不全的问题,这个软件好像只转了5000多行就没下文了,但有时候又没问题,可以一下转换2,3万个词 。有时候转换2,3万个词需要好几分钟,有时候就死机了,需要重新启动软件(不是重启电脑),重试几次就好了,所以大家在转换完拼音后需看看转换的最后一个词为标志,检查一下是否所有的词都转成拼音了。当然,如果各位大家的词库不大,不超过1万个词就不是什么问题了。; v; w! i$ F! R% u/ u8 d1 r

5 @/ D9 v. M# U$ S" [8 Q% s" r- ?" k: ^  }

- z" D: K% L7 s' |3 W. ]7 s9 i: S, r" b
3.对汉字+拼音的Excel文件进行处理
4 N) y& T' u& w5 N9 R- v  h/ @) M, F  n- P. K
转完的汉字+拼音的词库,每个词内部的每个字是以空格分隔的,我们需要将每个词最后一个空格删除,这里再次需要运用我们丰富的EXCEL知识了。Excel确实是很NB的处理工具啊 。我处理的方法是这样的,在B1单元格中键入“xxx”,在C1中键入公式“=A1&B1“。解释一下这个公式,”&“这个字符的作用在于将两个单元格中显示(注意是显示的内容,不是实际内容)的内容的连接在一起显示出来。然后复制C1单元格,用选择性粘贴将C1的数值到D1单元格中(这个我就不再解释了,不明白的朋友去查Excel教程吧),其他词组照此处理,
9 v: t- q1 `2 V' Z# ^; T. _& Q! x: i. x+ A2 B, n' |3 _2 {

, D: d" a- g9 b8 `0 ]4 ?. {+ V
& @  O4 {" r4 r/ N3 X* L接下来,我们要继续对D列的词组进行加工,再次使用替换功能,将D列的" xxx"(注意xxx前面有个空格) 全部删除。我再解释一下这个步骤的思路:如果直接对空格进行删除,会将词组内字与字之间的空格也删除了,所以我们先将每个词组后面加上个xxx这样的不可能出现在拼音中的字符串以对最后一个空格加上标识,然后再将” xxx"删除就可以成功的将每个词组末尾的空格删除了...不知道我说明白了没有
" f2 R8 {1 \- e2 j0 p2 k
& w1 ^5 n9 f- x% u* f. K3 W/ g7 n; _0 F" V2 g
9 d0 p+ l8 F% q5 U3 c8 N% M
再将处理过的D列汉字+拼音的词组复制粘贴到记事本中,注意根据巨硬对可导入词组的要求,txt文件末尾要有个空行,保存关闭。, P1 s. L  Y' y8 n1 S  w. i
* t* D3 z4 {! H  w/ G* C

5 o! R9 _- q( k, l' ^% _  x
1 z+ K! _! `! _5 U% w- C4.对词库的分隔符进行转换2 X! z" a" ]8 k: S0 J
3 T/ ]& q0 d, J* c
根据Uglee的说明文件:
9 i! H, }) X# d/ p% _
+ V, \0 ~9 `  m. a' c1 Y2 z) _回车要使用Unix格式的"\n"而不是Mac的"\r"或者PC的"\r\n",你可以用Editplus一类的文本编辑器来实现这一点;文件的最后一行需要是一个空行。
9 v' K% L* Z; [3 x# `
, w, `. i2 c4 X& R
) a1 N8 C  q" |2 }/ _# S" ], W
) @' q" s1 e0 q0 D$ A; c说实话,我也不明白为什么要怎么折腾..直接跟大家说如何操作吧,先下载Editplus,网上到处都有,随便哪里下都好。用Editplus打开刚才处理过的txt文本文件,选择Document --> File format (CR/LF)选项,在弹出的对话框里选Unix,然后保存关闭txt词库。
! _1 W7 `: Q% f) }2 i. G# E; }3 J  v% }7 Q; }8 e

+ h8 p  X* t# a2 U% y1 k8 {  ^4 q
" A) O+ y% _0 W# M$ a5.最后一布,文件改名放入储存卡/ u- A: j# A: z# M( ~* c( u/ l" m

7 w% @8 a% c, d% R* |! i将处理后的txt文件改名为mhpyphrase.txt, 放入储存卡的palm/launcher 目录下,在650的巨硬设置界面中导入就好了.......! D5 E7 U  ~6 O) ~) s; V

% J/ r, C* `  p% ?& x6 [) [我试过了,5万个词组的词库导入需要将近10分钟的时间。导入个人字库后的巨硬输入法输入有比较明显的延迟,我理所当然的认为这是因为导入的词库过大(超过10万个词,分2次导入的),但经过几次650和巨硬的重启后又不会出现延迟的情况了,用起来和平时没什么差别,不明白为什么..+ k, p  S& l! Z9 X; F
- i8 y* p2 r2 q( R6 ?! r  Z* f  @" L
大家有什么问题就尽管问吧,不知道还有多少朋友用巨硬.......
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 09:41 , Processed in 0.291510 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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