分页: 1 / 7

几行代码,让ibus-pinyin支持搜狗云输入法。[更新了一点点]

发表于 : 2009-11-27 22:36
eric925
apt-get source ibus-pinyin
然后修改engine里的pysqlitedb.py:

代码: 全选

    #添加到头部
    import re
    import urllib
    #函数修改
    def select_words_by_pinyin_list (self, pys, mohu = False):
        """select words from database by list that contains pyutil.PinYinWord objects"""

        pinyin_string = u"'".join (map (str, pys))

        result = self.select_cache [pinyin_string]
        if result != None:
            return result

        doc = urllib.urlopen("http://web.pinyin.sogou.com/web_ime/get_ajax/%s.key" % pinyin_string).read()
        words = map(urllib.unquote,re.compile(r'ime_query_res="([^"]*)"').match(doc).group(1).split('+'))
        result = []
        for word in words:
            phrase = word.split(':')[0].decode('utf8');
            record = (len(phrase), None, None, None, None, '', None, None, None, None, phrase, 1, 1)
            result.append(record)
        self.select_cache [pinyin_string] = result
        return result    
然后自己编译一下,打个包再安装都可以……


第一,目前不熟python,现查手册改的。
第二,只用了1个小时随便改改,本来想自用的,所以只是在原来的sqlite的基础上蒙蔽下程序。结果发现太好用了,忍不住发上来。由于ibus-pinyin有缓存,比sogoupinyincc要快很多很多并且可以选词,几乎感觉不到延迟。
我觉得接下来可以基于ibus-pinyin做一个搜狗云输入法的完善的补丁了。
============================================================================================================
12月2号更新:修改了一下,使网速突然减慢的情况下可以不用等待网络,直接调用本地词库,下载了force reinstall就可以了。
不区分32位和64位。
http://dl.dropbox.com/u/444392/ibus-pin ... u2_all.deb

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:39
hcym
64位的
:em11

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:43
pcbird
如果没文件就去网上下载对吧

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:44
eric925
:em05
试试吧,真的很快,而且词库很强大。
另外我自己把pysqlitedb.py commit的方法都注释掉了……没再写入本地词库了,还没来得及研究,怕不小心不停的写进自定义词库。

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:46
maivel
这个要试试 :em11

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:46
pcbird
可以把搜狗有的词组,再写到数据库做补充

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:53
eric925
pcbird 写了:可以把搜狗有的词组,再写到数据库做补充
恩,过几天继续改改……目前我不能保存自定义词库。不过搜狗输入法的词库和联想能力已经让我感觉自定义词库都没太大重要性了……毕竟什么复杂偏怪难和流行的新词都在服务器上会得到及时补充和更新。

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 22:57
hjpubuntu
支持
:em11

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 23:00
ptptptptptpt
很好!很强大

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 23:06
delectate
lz强人!

支持!

如果sougou把api改了呢?

他没有公开api吧!

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 23:12
Jarson
mark~~

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-27 23:13
hjpubuntu
delectate 写了:lz强人!

支持!

如果sougou把api改了呢?

他没有公开api吧!
公布词库了?

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-28 9:45
yangyang123
这个方法倒不错啊

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-28 10:24
红烧鱼
这样的好事要支持才行

Re: 几行代码,让ibus-pinyin支持搜狗云输入法。

发表于 : 2009-11-28 10:56
斯文de坏蛋
LZ 我怎么不能安装

代码: 全选

ye@ye-desktop:~$ apt-get source ibus-pinyin
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
注意: 'ibus-pinyin' 软件包维护的 'Bzr' 版本控制系统版本是在: 
lp:~lidaobing/+junk/ibus-pinyin
请使用:
bzr get lp:~lidaobing/+junk/ibus-pinyin
来检索最新的(可能未发布)的软件包的更新。
忽略已下载过的文件“ibus-pinyin_1.2.0.20090617+1-1ubuntu2.dsc”
忽略已下载过的文件“ibus-pinyin_1.2.0.20090617+1.orig.tar.gz”
忽略已下载过的文件“ibus-pinyin_1.2.0.20090617+1-1ubuntu2.diff.gz”
需要下载 0B 的源代码包。
对于已经被解包到 ibus-pinyin-1.2.0.20090617+1 目录的源代码包就不再解开了
ye@ye-desktop:~$