Loading...

Tag Archive for '%e4%b8%ad%e6%96%87'

    AD: 猛买 | 快递查询 | Jobsdigg | 很棒的男装店

ZendStudio不能输入中文怎么办?

仅限Linux。估计Windows用户不会有这个痛苦,自然也不会有这样探索的过程 前些日子升级Ubuntu到7.10。之前在输入法上脚踩两只船,没想到升级之后fcitx不能用了,换来SCIM也不能完全接管以前fcitx手下的程序。比如FF、ZendStudio(以下称作ZS)都还不能输中文。 后来在网上找到一篇文章,照着做,真的就解决了FF输中文的问题。而在用ZS做Camel的时候,就没用中文,注释和程序是全部的英文。直到今天非敲中文不行了,只好从文本编辑器里打好粘贴过去。于是就琢磨着这输入中文的问题怎么才能解决呢,想到了当年治好FF的办法,照搬照抄: 先用一个文本编辑器把ZS的启动文件(就是打开ZS时直接运行的那个文件)打开——一大堆,肯定很头大。没错我也看不懂,不过你要做的就是把下面这段程序粘贴到里面——当然得小心点,别贴到啥循环或是分支内部的。如果你没把握,就贴在最后。 XMODIFIERS=@im=SCIM GTK_IM_MODULE=scim-bridge export XMODIFIERS GTK_IM_MODULE 然后保存,之后再运行,就会发现ZS中已经可以用SCIM输入中文了。将来升级了ZS,照做一次就好。如果是一直就在用SCIM的话,应该没这个问题。

输入法十年

某人推荐我用搜狗拼音输入法,说3.0已经是正式版了,很强大还有很多皮肤。popo用的就是搜狗拼音。我还没来得及用,因为现在的谷歌输入法还不错。我也曾推荐一些朋友们用谷歌的输入法,说,虽然词库是抄的,可这引擎不大容易抄袭吧,谷歌做得还不错。 最早接触真正的电脑,是在上世纪末。那时我爸爸办公室配了一台电脑,开机进去是DOS。里面我会用的东西只有WPS,而输入法呢,用的是五笔。 我很早就接触了五笔,大概是小学四年级吧,推算回来该是97年。上小学时和家里有个约定,说我考了5次第一名时就给我买一台电脑。一个不小心,我到二年级就完成了这个任务。但那时的我家条件实在不好,我连奥迪双钻的四驱车都要不来,别说电脑了。而我的父母最好的地方也在这里,他们都是有文化的人,虽然不知道计算机会给我带来什么,还是很支持我接触新的东西。等到我读四年级,家里终于买给我一台小电脑,现在回头看,家里应该是为它攒了很久的钱。而这件事情可以肯定地说,彻彻底底影响了我。那个年代的“电脑”,比较有代表性的就是“学习上网加游戏,裕兴电脑VCD”,真正属于“电脑”的功能很简单。就是字处理、简单的编程——还可以插游戏卡打游戏。 那个电脑虽然简单,可也让那时的我很稀奇。我把WPS玩得很顺溜,basic也照着书看了点(绝对是那种离开书就写不出来的)。但是最让我郁闷的就是五笔输入法,当时听说高手都得会五笔——这个概念一直影响着我,直到05年看见聊天时智勇敲错了字,猜测他是用拼音输入法,我感叹,原来牛人也用拼音的——我一直没有完全学会五笔,因为一直是自学。而对个孩子来说,花花世界啥都是诱惑,很快我就把背诵了一点点的五笔字根也忘了。 后来父亲的办公室换了电脑,里面装的是windows95。鼠标终于把人们解放了。培训归来,父亲告诉我还有个输入法叫做智能ABC。不光可以用拼音输入,也可以用音形结合。我一看乐了,从此就开始用智能ABC。相信现在还在用智能ABC的很多人,只拿它来做拼音输入法,很少有人知道还可以音形结合的。 再后来就是01年的暑假,我参加了学校的一个电脑学习班。2G硬盘的电脑,装着98,没声卡。刚去最先学的就是五笔打字,我花了一夜又把那些“王旁青头兼五一”之类的东西背下来,然后老师讲如何拆字。有人讲解就是不一样,我很快就学了个差不多。之后的打字练习,那个程序写得不大好,让我轻松地伪造了个480字/分(我好像天生就会胡搞)。老师看到这个成绩,推推眼镜,说,你这个速度不错啊——我怀疑他是被我的伪速度给吓着了。后来学word时,我还在用智能ABC,因为还是觉得拼音输入直观。 我一直觉得高手就该用五笔,可我一直都没真正用上五笔。直到现在,除非我偶尔有什么字不记得拼音了,我才会切到五笔去把它打出来——我的中文很不错,也不怎么读别字,所以这种情况到现在为止,十年里只出现过一次。智能ABC并不好用,还会有很多bug,后来我就换了紫光拼音。没错,紫光让人耳目一新,我周围也有很多人还在用紫光呢。 再后来,我在一张盗版光盘上找到了一个叫做拼音加加的软件。拼音加加当时号称整句输入准确率离十全十美就差3个百分点了,试用了一下果然很不错。可惜的是,由于一个想不起来的原因,我突然就没用拼音加加了。听说后来这个东西停止了开发,因为想从输入法里面赚钱,不太现实。 我曾有一个比较极端的想法,觉得现在我们所看到的应用软件,在将来都极可能被转移到Web上。看看Google的在线办公套件吧。而真正不可能被转移的有啥呢?操作系统、浏览器,还有就是输入法(当然,这也是相对的,这三者,其实依然可以被替代) 。我们从来都离不开输入法,但输入法的重码从来都不让我们满意。 2004年,我用上了Office2003。里面有个新输入法叫做微软拼音2003—— 之前的微软拼音版本都不是很好用,但2003大受欢迎。不得不说,第一次用上它,我就把所有其他输入法都干掉了。仔细观察一下发现,从外表说,2003其实不过改变了一下输入时候选字的提示方式,但这样做得很舒服。从这之后我的XP里一直就只有微软拼音2003,直到有一天突发奇想,安装了被人骂的谷歌输入法。 说到这里想回头说说Linux下的中文输入法。我用过的第一个Linux是红旗,那时里面有现成的中文输入法,所以也没关心过到底是啥。后来用上了Ubuntu,惊讶地发现老外做的系统里,是不能输中文的。经过一番折腾,终于整了一个SCIM。SCIM用起来和微软拼音挺像,但是总会有些莫名其妙的bug。实在无法忍受了,我用上了Fcitx。fcitx更像智能ABC,但是bug没那么严重。最严重的事情是,fcitx已经停止开发了。所以当我升级到Ubuntu7.10,我发现fcitx再也用不了了。只好费了九牛二虎之力把SCIM请回来。 Linux下面还没遇到让人满意的输入法,估计在Mac上的情况也差不多。而自从我的XP 装上谷歌输入法之后,我就再也不用微软拼音了。谷歌输入法最让人满意的就是词库可以在线同步,然后使用的体验很好。时代在进步,网络总还是和输入法扯上了关系。十年,拼音早就取代了五笔,现在用电脑的人可不想在摸到键盘之前先背熟一大堆字根。新兴的高手们,用拼音一样可以一分钟打一二百字。就算是我平时边思考边写blog,平均也有一分钟八十字左右,还要五笔干什么?在Linux,我一直以为Fcitx就算不开发,也还够用了,但我错了。 不能和时代一起进步,那就等着被淘汰吧。 今天某人问我的签名“高谈阔论”,其实是想起了小时候折腾五笔时不经意打了“YYUY”出来的词。五笔很少重码,但“YYUY”是有重码的,感兴趣的话,用五笔看看和“高谈阔论”重码的是啥 。

如何让Zend_Search_Lucene支持中文分词

初探Lucene,学习之中。 昨天下雨,我家的百兆宽带突然就不能上了。所幸昨天还写了第1000篇,不然就遗憾了。不能上网也许并不是坏事,虽然我看不到了想看的人,进不去了我的GTD,可是让我得以把精力放在一些感兴趣的技术上。 昨天我ProjectCamel有点阶段性的成果。得益于泛域名和出神入化的URLRewrite,已经可以准确地显示出站点加载时的桥页。所以今天我放下了活儿,把最后一天留给自己,想看一下Zend_Search。我一直很想好好研究中文分词,可是这个暑假下来居然没有看过一下子Lucene,除了在北京和馒头空对空地来过几次分词的讨论,其他真的一点收获都没有。 不过自己也一直庆幸,我越等到后面,Lucene对中文支持就越完美,就不用自己去操心了。怀着这样的心情,我今天开始看Zend_Search_Lucene了。我成功地把自己以前做ACM写的程序编制成了索引,随便查了两下,效果很让人满意。可是当我把一些中文文档索引之后,问题就来了,根本啥都查不出来 。不是说Nutch(一个可以拿来做搜索引擎的开源程序,和Lucene貌似是一个人写的,世间的大牛不是很多哈)和Lucene都完美支持中文了么?我顿时有种被骗的感觉。 可是那也得做。网上搜来搜去,搜到的基本都是06年上半年的文章。不少牛人用自己的方式在Zend_Search_Lucene中实现了中文分词, 可看看都觉得头大,有的甚至还得给Zend_Lucene打Patch。终于搜到一个今年6月的文章,读了之后,感觉作者在PHP上的功底很不错。文章请看此处,可笑的是。查资料的过程中 ,也发现不少人转载从来不标明出处,唉,国内就这情况,重复内容太多。 那篇文章写得很不错,分词的部分逻辑也相当清晰。使用了简单的二元分词,这样生成的索引会相当大,但至少是可以支持中文的。可是我用来索引文档的时候,都只能索引第一行(处理换行有些问题),然后还有一些字母被无情过滤掉了。所以我对程序做了一些修改, 由于太长了,我就不放在这个blog上了,请移步到我的技术blog查看我修改之后的程序。 需要注意的是,这个分词实现只支持UTF-8编码的。如果需要索引内容的是别的编码格式,可以改一下程序中的某些部分。 二元分词在遇到牛扑这样规模的数据时,没有任何实际意义。特别是在Zend_Search_Lucene的索引优化并不完善时。所以在这个方面,还有很深的挖掘的空间。 关于分词的知识,可以看一下这篇文章和这篇文章(希望大家不要像他这样转载不加出处)。 逆向最大匹配,应该是下一个要钻研的了。

如何解决Mysql中文全文索引

UPDATE:看到有很多朋友搜索mysql中文的全文索引到了这里,想和大家说,用mysql进行中文的全文索引是很难的。我已经找到了用Lucene解决的办法,不过在实际应用中选择了另一个全文检索工具“Sphinx”,我也写了一篇关于Sphinx和Rails协作的文章。请看看下面显示的相关文章里和Lucene有关的内容。左边推荐的这本书是一个详细的关于Lucene的教程。 V2Read是我第一个需要处理海量数据的Project,主要的数据是大量的图书信息。但是对于正在飞速增加的数据,我有点束手无策。现在在V2Read的搜索是使用Like进行简单的匹配,不用说,效率很差。所以现在的搜索只搜书名都很慢。 我下午花了一些时间来找Mysql在中文全文索引方面的内容,可是没找到什么有帮助的。大家提供的近似于Hack的方式倒是满有意思。比如说先进行分词,然后在中间插入空格,搜索的时候就能搜出来了;比如说先把内容转化成拼音(汗一个先),然后存进数据库——实在让我感叹群众的智慧就是伟大啊。 不过搜来搜去还是没有解决这个问题。全文索引难道真的就这么难?不知道Livid的V2EX是怎么做的。想到这里,突然有了去翻Babel程序的冲动,顺便也可以看看PW的源程序,肯定能找到蛛丝马迹的。 今天和zhanghe4聊天,说起V2Read。去年这个时候我在设计店评的时候,他给我看了dianping.com的个人主页,说最好提供这样一个东西。那时的我虽有满腔热情,到底没啥水平,看着那个伪静态的地址,猜测着那边高深莫测的技术,心里没底。但今天的V2Read全部都是伪静态链接,以前觉得那么NB的东西现在也看着稀松平常。很多时候自己都没有察觉,实际上成长了很多。 我正在做一个PPT,为我们新的沙龙做准备。但是在谈问题的深度上,实在不知道该怎么把握。深入到技术的细节,有一大堆内容,退到整体的设计,好像内容也不少,hoho。 不过这个中文全文索引实在是让人发愁啊。 UPDATE: 我去查了PW的程序(“search.php”) 以及Babel的程序,发现它们所使用的全是Like。有些失望。看来只能通过提升服务器性能来提高效率了。

科班的学生和地址栏的中文

今天班里一个同学过来让我帮忙买花。我看着他熟练地在我桌面上找到IE,在地址栏里面敲了“杭州 鲜花”,然后在Live给的搜索结果里找到了一个花店,还有些疑惑地问,为什么不是Yahoo。我实在觉得这些举动不应该是一个计算机专业同学做的——无所谓对还是错,只是觉得失望。正好一直想写一篇地址栏和中文的东西。先说明,我一直很支持大家多用中文,所以对中文进地址栏也是很积极的。 我接触电脑比较晚,就我所知,最早把中文带进地址栏的,是周鸿祎的3721。那时候叫做“中文网络实名”。这是真的是一个创举,因为把广大网民从英文网址中解脱了出来——这也是一个很大的商机。后来3721陆续推出了“中文邮”“上网助手”等产品,有一段时间,访问很多网页都会跳出来对话框提示安装某个控件——就这么成了流氓。后来3721被Yahoo收购,雅虎中国又被嫁给了阿里巴巴,周鸿祎也离了职去做别的事。前段时间马云和周的口水战没看到杨致远的表态——记得在一个对话节目上,杨和周谈笑风生,可能谁也没想到是这样的结局。 后来3721的强劲势头有所衰减。但是使用浏览器的话都会自动把地址栏里的中文传递给搜索引擎。所以在IE的地址栏里输入中文,可能会转到MSN或Live或Google或baidu等等,要看浏览器的配置了。在FF里也一样,默认的是Yahoo。这样,即使在地址里,最多多花一次电击就可以到了目的地。 现在就更加先进了,CNNIC有了中文域名。比如你可以注册“中国.cn”甚至是“中国.中国”的域名。实际上,这只是3721网络实名的升级版,效果相同,但是更好用。 Internet很早就进入了中国,但是域名解析的主根服务器大部分还放在美国。abc长期霸占着我们的地址栏,不过,在一代又一代互联网人的努力下,我们在地址栏里输中文已经很好用了。在我的小范围调查下,POPO和Alone都从来不在地址栏输中文去找相应的网站,原因可能和我这篇文章里所说的一样。作为一个科班的学生,如果连这个都做不到,和那些拿着百度搜索“最好的网站”的网民们,有什么区别呢?

编码的问题

像我这样没有从基础学习上来的人往往总会被一些细小的东西难倒。昨天在做店评的某一个组件时,用上了AJAX,且成功了——本来这是很好的,我着实欣喜了一番。后来才发现,我做的东西在gb2312编码下只能显示英文,不能显示中文——有高手说改成itf-8编码情况会好起来,可是事实并非如此。 《foundations of ajax》这本书,我3月17日购于当当网,现在已经把它通读了三遍了,但是很遗憾,这本书里后台是使用java写的,所以我对浏览器端的ajax操作已经相对熟练,但是对和php协同工作还很是陌生。所以现在的我只会使用”innerHTML=”这样的方法来动态修改页面。可能下一步要做的是研究xml特别是php中操作xml。我还是很佩服自己学习的能力的——其实php中做xml我也涉及过——在寒假做的红包系统里。 还有一本比较贵的书《Data Structure and Algorithm Analysis in C》——全英文版的。我对其中的某些算法依然没有了解透彻。我不知道明年的ACM还有没有机会参加,但对算法的学习真的应该深入下去——虽然现在的算法荣誉已经不是什么大不了的事情,java流行说明人们对程序效率的要求再没有以前那么高了。