|
【转贴】原文见http://www.hi-pda.com/forum/view ... page%3D1#pid36433604 n1 _6 V' A) e/ j/ m5 W$ w3 t7 q5 O
巨硬新的版本号是三。) C- K$ A, m2 J& H6 W: g \
( c& H$ M4 W0 b! M* C- t% l关于算法方面在D版讨论过一次。$ |2 x; s( j/ w- ^/ L) z& H
& X$ f3 q! a" F9 o
目前的进度是有个Buggy的可运行的Code base。但是发现了不少问题:
: ]+ W h2 u) b7 D3 ^/ E" N/ N9 e& z
1) 性能需要大幅度提升,目前的数据结构,worst case查询要5s,这个太离谱了,要更改一下数据结构,cache一些数据,会膨胀数据库大小40%左右。(7万词+2万字的当前版本数据库大小是700~800K左右),膨胀之后会在1.1~1.2M左右,希望能把速递调整到可接受的水准;但是别指望巨硬0.98的速度了,那个数据结构和算法在68K指令下是极限了。$ s' W) j# t* g3 v. R+ l
2) 本来这一版本的巨硬是为单手操作设计的,换句话说,是以减少用户击键次数为首要目标。但是实际build出来之后发现了单手和双手的一个微妙区别。单手操作每秒钟用户击键次数在2次或以下,而双手可以达到4~6键。也就是说,在双手情况下对检索速度要求很高(0.2~0.3s内就要完成一次worst case检索),但是单手这个条件可以放宽一些。而且双手操作对减少击键次数的要求不是很高,尤其是长词。这个微妙的区别对数据结构的设计提出了不小的困难。两种情况下最优的数据结构方案大相径庭。能否找到兼顾的统一方案,我现在心里并没有数。
, p' x1 X g) Q$ _3 f/ G2 \1 y& x$ x3) 巨硬三既不是基于单字联想的手机输入法,也不是基于词组的传统输入法。而是基于记忆序列的预测输入法。实际build的版本发现,从微软拼音导出来的7万词不怎么样。词语之间的关联目前缺乏资料,得自己动手从一些在线的预料库中手工导出一些资料,再做一些统计工作。这个工作量颇大。# n( d! n, f! _: e g2 Z6 i
4) 巨硬数据库的记录数在4000左右,不大会膨胀记录数,实际使用会膨胀体积,但是有限制,用户自定义的词和用户实际输入的词语相关性多了之后,会把预定义的使用频率低的部分自动删除。我尽量控制数据库在1M左右。同步问题将依旧存在。没有好办法解决。$ [( k: n2 ]+ K
" q$ G6 }, [2 T2 p) }+ h$ V7 N0 C
总的来说,功能方面增加不多,数字和英文的输入方面会有惊喜给大家的,但是这不是使用频率很高的东西。使用频率最高的还是输入的预测准确率和词频方面的。这也是巨硬III的最主要目标。这个目标会有很大量的统计工作去做才能好用。) H/ O0 P# ^3 w- E
: z1 `! a7 E* G4 Q( w我无法对进度做任何预测。写程序,尤其是尝试新的算法时,总是意外不断的,很多事情会和当初的想象不一样。这个版本需要很久的Tweak时间,包括调整记忆和自学习的能力,比较大词库情况和小词库情况的分别(我个人倾向于只有常用3500字的大量词、搭配、俗语和短句,但是用户可能有不同看法),优化频率(没资料可循,只能自己统计)。当然还有Bug要除。
! y7 i& D7 x$ e
6 H$ |9 ?0 P0 L+ I% Y( a! h; ~老用户将不能享受免费升级。因为这个版本是全新设计和全部代码从头写过的。软件行业的习惯是变更主要数据结构设计或者70%的代码重写,就要重大版本升级。至于最终定价,以及是否提供老用户的优惠升级价格,到时候再说吧,现在还为时尚早。
6 b5 k" F! S+ [: t: H2 w/ H) ^4 G( o5 T+ B! }: H4 z! s& h/ q
谢谢大家的耐心等待和长久支持,俺愧对很多注册用户的支持,唯有以更好的软件回报大家。 |
|