The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2008年12月18日星期四

开放与利他

作者:蔡志浩|日期:2008-12-16 |时间:9:03 pm

未经授权,请勿复制或转载。

我是开放原始码软体的支持者。从心理学的观点来看,软体开发者将自己的智慧结晶、也就是原始码与他人分享,是一种利他行为(altruism)。人为什么会利他?社会心理学家告诉我们,是因为对交互利他(reciprocal altruism)的期待。我们不顾自身利益去帮助别人,心中期待的是别人(未必是我们直接帮助的人)以后也会对我们作出利他行为。换句话说,长远来看,利他行为其实是一件利己的事。我对开放原始码软体的支持,正是基于这样的亲身体验。

就从Google浏览器(Chrome)谈起吧!在Google浏览器的工具列选择「关于Google浏览器」,会跳出一个小视窗说「『Google浏览器』的开发仰赖Chromium开放原始码计划与其他开放原始码软体的协助才得以完成」。点击「开放原始码软体」的连结,展开「中日文词频列表(Chinese and Japanese word frequency list)」,会列出好几个套件的授权文件。其中,libtabe的授权文件中就有我的名字。我的名字会出现在那里,是因为12年前(1996年)分享了一些学习经验。

当年的中文资讯环境不像现在这么发达,甚至连完全公开的中文词库(含词列表、词频、发音、词类等资讯)都没有。要跟学术机构付费签约取得的当然有,但金额不低且使用上有很多限制。我在网路上花了很多时间搜寻,把当时可以找到的词列表统整成单一档案,然后开放下载。我的期待是,其他有兴趣的人能够利用这个列表逐渐建立一个完整开放的词库,让以后的人不会再经历没有开放词库可用的痛苦。

词库对于中文资讯处理很重要,因为中文的句子在词间没有空白分隔,有词库才能把句子中的词认出来。我当时很想学习自动断词程式的运作,但程式写作能力很差(现在也没好到哪去),而且网路上又找不到可以参考的。于是花了很多时间在图书馆读了很多书,然后再花了很多时间用拙劣的程式写作能力写了一个中文自动断词的程式。程式写得很烂,但还是把它公开了。我的想法很单纯:对于跟我有类似需求的人来说,有烂程式可用、有烂程式码可看,总比没有好。

当时负责libtabe计画(Linux环境下的智慧型注音输入法模组)的萧百翔注意到这个断词程式,觉得对于输入法的开发有帮助。他把我的断词程式使用的几个演算法重新写进输入法模组中,也采用了我原本的词库。此外,他也利用一些语料计算出我期待已久的、宝贵的词频统计。

这个过程让我正式和台湾的Linux中文社群有所连结,也认识了许多朋友。这些具有不同专业背景的朋友,带给我许多启发。例如,现在funP的技术顾问叶秉哲,当年就在我写新版的断词程式时给了许多建议,让我获益良多。说句题外话,我们其实在1993年就在网路上认识,但直到2007年才第一次见面。

12年就这样过去了。 Libtabe已停止开发,但Linux社群也有了更好的输入法。我的程式没人用了,但当年的想法好像还是持续对社群有些帮助。从这篇「Chinese Full-text Searching」得知,现在Ruby社群使用的几种中文断词系统所采用的演算法还是我当年的组合。当年使用的四个演算法其实只有一个是我自己原创的,但这四个演算法是绞尽脑汁组合的:它们只需要词列表与字频表就可以运作。我不是不想用其他的资讯帮助运算,但12年前能公开取得的资源也就只有那些了。

将个人学习的经验用很单纯的「希望有人能从中获益」的心态与人分享,换来世界各地朋友的帮助,也为自己带来更多的学习与成长机会。而开放原始码社群基于利他精神的分享,凝聚了社群的智慧,更促成了整体资讯环境的进步。这些,都让我很感动,也是我认同开放原始码软体的主要原因。

然而,这也是我在表达时回避使用「自由软体」这个词组的原因。 「自由软体」是一种社会运动,强调软体使用的自由。这带着某种社会主义革命精神的运动,难免给人「激进」的印象。我一直相信,「利他」应该是自发的,不应该被任何运动规范的。而且我也不认为开放原始码软体和商业软体是对立的。仅管如此,自由软体的某些技术规范我是支持的,例如GNU通用公共许可证(GPL)。 GPL虽然带了一点强制性,但基本上还是符合交互利他的精神

没有评论: