关于建立网上开放式共享词库的一些设想

15 views
Skip to first unread message

PenguinOL

unread,
Jan 23, 2008, 6:47:14 AM1/23/08
to scim-python
说实话,我接触LINUX的时间并不长,大概也就一个月左右。而接触编程的时间也不过半年(大一,计算机专业,学校教的)
在Linux下,输入法一直是一个令人头疼的问题,无意中看到Huang大大开发的scim-python输入法让我很兴奋。
但是这个输入法的词库奇缺确实令人惋惜。在经过一夜的思考后,我有了建立网上共享词库的想法。
具体的细节如下:

词库来源:
网上共享词库首先应该先收集现有的免费词库,并且最好能够有比较好的词频,这应该是基础。
然后可以由网民们自行添加词汇到词库里,借助广大网民的力量拓展词库。
细节:
这个词库要使用网络编程语言。PHP+MYSQL应该是个不错的选择。
数据库中,最简单的情况下,应该有三列。
词汇,拼音,词频。
当用户提交单词的时候,先查询词库中是否有这个词汇,如果有的话,则自动在词频上+1(自增词频功能可选,可由用户决定是否开启。),没有的话就新建一
行,加入这个词汇。
应该要支持批量加入词汇,例如从txt或者dic文档读取,这样用户就可以省去一个个手动输入的麻烦。
文档的规范:
我研究过主流输入法的用户词库导出文本的格式:

搜狗拼音输入法2.0的导出文本为以下格式:
'a'bi'di'yu 阿鼻地狱 1 0.000000
[上引号]拼音[空格]中文[空格]词频[空格]0.0000000(不知道是干什么的。)
搜狗拼音在其多音字的处理上有些小问题,详细会在后面说明

google拼音输入法的格式为:
阿鼻地狱 126 a bi di yu
中文[Tab]词频[Tab]拼音(拼音间用空格隔开,最后也有空格)

紫光拼音输入法
紫光拼音输入法的导出词库和scim-python的词库是最像的。
阿鼻地狱 a'bi'di'yu 126
中文[Tab]拼音[Tab]词频(拼音间以'分割)

无拼音有词频文本
有中文,有词频但是没有拼音,搜狗拼音的互联网词库就这个模式。
如:
我 8000841
中文[Tab]词频

无拼音无词频文本
仅仅有中文,没有拼音和词频
如:
我们
我们的
他们

网上共享词库应该可以导入和导出以上格式的文本。
并且能对不同格式的文本进行整理,使其符合网上词库的标准模式。前期的话主要是靠用户来分辨自己要上传的词库属于那种,后期最好能做成自动识别的。

关于词频:
词频在输入法中占有举足轻重的地位,因此建立好的词频也是关键。
用户在添加新词的时候,先查询词库内是否有此词汇,有则自动在词频上加一。
管理员有权限更改词频
对于一般用户上传的批量增加单词的txt文档,忽略批量增加单词的txt文档中的词频一项。如果遇到有重复的单词,仅仅是在原始词频上+1(可选)。

关于多音字
上面说过搜狗拼音输入法对多音字的处理不同于其他输入法。
他会将这个单词的所有发音组合都罗列一遍。
例如:
'dan'yu 单于 1 0.000000
'chan'yu 单于 1 0.000000
'shan'yu 单于 1 0.000000
而其他的输入法规定每隔单词只能有一个固定的发音(例如紫光)。
关于数据库中如何处理多音字,我也有想法,增添一列来确定那个是正确的发音。即:
中文,拼音,词频,是否正确发音
例如:
好人 hao'ren 120 1
单于 dan'yu 120 0
单于 chan'yu 120 1
单于 shan'yu 120 0
这样对于某些只能有一个固定的发音的输入法,输出时仅输出正确发音的哪一项。
上面的就只输出
好人 hao'ren 120 1
单于 chan'yu 120 1
多音词的词频是否应该一样,这个问题有待探讨。

关于自动生成拼音
导入程序应该可以自动生成拼音(多音字则罗列),这样可减轻用户的劳动。且对于“无拼音有词频文本”和“无拼音无词频文本”的导入,这项功能也是必须
的。
对于多音字来说,如果词库表中已经存在了用户那就和普通词汇一样处理
如果尚不存在,那么就由用户选择正确读音并提交。
自动拼音不适用于:
特殊拼音
有拼音的导入文件(可由用户或者管理员决定。)

关于特殊拼音
某些特殊拼音例如:
o(∩_∩)o... ha'ha
对于这部分单词,不使用自动拼音生成,而是由用户决定其读音并提交。

关于词汇长度
这个暂时还没有什么好的想法,主要还是看大家的意见,是否要支持超长词汇功能。但一般情况下不应超过255个字(可变)


关于分类词库
这个问题早期并不需要考虑太多,但程序完善后,我希望能够加入这个功能。使用类似于tag的技术应该可以解决一个词有多个类别的问题。

关于修正词汇
由于种种原因而导致的词汇拼音错误,或者多音词正确读音标注有误,可以申请修改词汇。经管理员认可后,由管理员进行修改,应支持批量修改及文件导入。

关于删除词汇
可能用户不小心添加或着因为种种原因需要删除词汇的,可以向管理员发出申请。(有一个专门的删除词汇申请页面),可以是一个词,也可以是一组词,甚至可
以直接提交要删除词的txt文件列表
删除词的txt文件列表应采用无词频无拼音的格式。
经过管理员批准审核后,由管理员删除(批量删除词汇页面,仅管理员可见)

关于和scim-python的关系
这个问题很麻烦,因为涉及到用户隐私和词频等问题。
用户可以选择只共享词频,即只上传每周词汇词频的增量,对于数据库中没有的词,则忽略,而不作为新词添加到数据库。
或者用户可以开启共享词库,每周的词频增量和新词都上传,数据库中没有的词则作为新词添加。
为了维护用户的隐私,可以由用户设定共享词库黑名单,黑名单内的词不会被上传到网上词库。

关于输出
为了减轻服务器压力,减少流量,不支持用户实时生成词库文本。
由系统每周自动(或管理员手动)生成一次词库(各种输入法版本的),提供给用户下载。
词库可以有
完整版(所有单词)
精华版(仅词库中词频靠前的词)
本周新词(这一周以来提交的新词)
本月新词(这一月以来提交的新词)

关于服务器
最好能够使用独立的服务器或者至少是合租的服务器。
因为可能在批量添加新词的时候,处理器占用率可能会比较高
至于服务器的来源和资金来源还有待探讨。不过,最主要的是先把程序写出来。

关于版权
版权方面我不是很懂,免费适用于非商业用途,对于商业用途的适当收取费作为维持服务器和网站的资金?

暂时就先想这么多了,希望有能力的网络编程人员可以加入。
我学习PHP+MYSQL的时间不过一个星期,仅靠自己很难完成如此大的计划。
Message has been deleted

PenguinOL

unread,
Jan 23, 2008, 7:04:49 PM1/23/08
to scim-python
补充一下:
关于审核机制
新添加的词并不直接添加进词库,而是添加进待审核词库。
对于词库(包括待审核词库)中已有的词,直接在其词频上+1
对于词库中没有的词,先检查是否在黑名单内词,若不在,则在待审核词库表中创建这个词
早期可由管理员或者专门的审核组来审核
以后可以考虑使用用户投票审核机制,将待审核词公示在网上,由用户投票决定是否加入词库,到了公示期后根据投票结果自动审核。
对于公示期内投票总数未达到一定值(如50张),则继续公示。

可能到最后,数据库会变成如下的模式

主词库
---------单词,拼音,词频,是否正确读音,是否官方词库,TAGS,提交日期,提交者,审核类型(审核者)
待审核词库
---------单词,拼音,词频,是否正确读音,TAGS,提交日期,提交者,支持票数,反对票数
用户组
.....
黑名单
---------单词,黑名单原因,提交者

Huang Peng

unread,
Jan 23, 2008, 9:13:43 PM1/23/08
to scim-...@googlegroups.com
你的计划很详细啊,不过我还是建议列出一些优先级,首先实现最基本的功能,这样可以让他早日面世,然后再逐步的完善。同时,我认为,这个计划成功的关键是参加的用户人数,只有参与的人数广泛,统计出来的词频概率才能反应实际的情况,使用在输入法里效果才会好。所以我们认为,首当其冲要考虑的是,如何方便用户?如何用户使用起来更加友善?如和让用户喜欢用它,并且可以轻而易举的高觉到使用他之后带来的好处。我想应该在这方面多下些功夫。


2008/1/24 PenguinOL <peng...@gmail.com>:

陈研深

unread,
Jan 27, 2008, 1:22:09 PM1/27/08
to scim-...@googlegroups.com
讨厌会员制!!!!!

在 Wed, 23 Jan 2008 19:58:19 +0800,PenguinOL <peng...@gmail.com> 写道:

> 补充一些:
> 关于防广告和恶意添加
> 可以采用会员制模式,只有注册成为会员才能提交新词,且应有验证码
> 未注册会员可下载,但不可提交新词。
> 对于恶意添加的用户可以采用封号或者封IP的方法。
> >

--
By SCys

陈研深

unread,
Jan 27, 2008, 1:22:20 PM1/27/08
to scim-...@googlegroups.com

PenguinOL

unread,
Jan 30, 2008, 11:15:18 AM1/30/08
to scim-python
如果不是会员制,会很难管理呢。

On 1月28日, 上午2时22分, 陈研深 <super...@gmail.com> wrote:
> 讨厌会员制!!!!
>
Reply all
Reply to author
Forward
0 new messages