当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 正在创建输入法码表,——请问谁知道,从哪里能拿到大量的“词组”(词库)?
帖子发表于 : 2016-05-15 17:38 
头像

注册: 2008-07-19 12:44
帖子: 3492
地址: 广西(桂)南宁(邕)
送出感谢: 0 次
接收感谢: 77
单字的码表已经接近完成一万字,还差一半。现在考虑词组的码表生成方法,
打算用程序脚本,读取词组文件,然后生成词组码表。
但不知道,从哪里能拿到大量的“词组”(词库)?

虽然从一些字典网站可以查询到不完全的词组,
并且还要复制、粘贴、合并为一个文件,也很麻烦。
搜狗输入法带有大量的分类词库,可惜不懂如何提取出来……

请问各位还有没有什么好办法?


_________________
一善鱼 yq-ysy@163.com

音频数字工作站 Ardour 4 初学者教程  影视特效3D动画 Blender 2.5~2.6 完全教程  图像处理 Krita 3 数字绘画入门


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 正在创建输入法码表,——请问谁知道,从哪里能拿到大量的“词组”(词库)?
帖子发表于 : 2016-05-15 23:36 
头像

注册: 2010-10-07 14:23
帖子: 33999
地址: 某系某星某洲某国某省某市
系统: Archdows10
送出感谢: 29
接收感谢: 151
python2解析搜狗输入法词库
代码:
#!/usr/bin/env python
import struct
import os, sys

def read_utf16_str (f, offset=-1, len=2):
    if offset >= 0:
        f.seek(offset)
    str = f.read(len)
    return str.decode('UTF-16LE')

def read_uint16 (f):
    return struct.unpack ('<H', f.read(2))[0]

def get_word_from_sogou_cell_dict (fname):
    f = open (fname, 'rb')
    file_size = os.path.getsize (fname)

    hz_offset = 0
    mask = struct.unpack ('B', f.read(128)[4])[0]
    if mask == 0x44:
        hz_offset = 0x2628
    elif mask == 0x45:
        hz_offset = 0x26c4
    else:
        sys.exit(1)

    title   = read_utf16_str (f, 0x130, 0x338  - 0x130)
    type    = read_utf16_str (f, 0x338, 0x540  - 0x338)
    desc    = read_utf16_str (f, 0x540, 0xd40  - 0x540)
    samples = read_utf16_str (f, 0xd40, 0x1540 - 0xd40)

    py_map = {}
    f.seek(0x1540+4)

    while 1:
        py_code = read_uint16 (f)
        py_len  = read_uint16 (f)
        py_str  = read_utf16_str (f, -1, py_len)

        if py_code not in py_map:
            py_map[py_code] = py_str

        if py_str == 'zuo':
            break

    f.seek(hz_offset)
    while f.tell() != file_size:
        word_count   = read_uint16 (f)
        pinyin_count = read_uint16 (f) / 2

        py_set = []
        for i in range(pinyin_count):
            py_id = read_uint16(f)
            py_set.append(py_map[py_id])
        py_str = "'".join (py_set)

        for i in range(word_count):
            word_len = read_uint16(f)
            word_str = read_utf16_str (f, -1, word_len)
            f.read(12)
            yield py_str, word_str

    f.close()

def showtxt (records):
    for (pystr, utf8str) in records:
        print (utf8str.encode('utf8'))

def main ():
    if len (sys.argv) != 2:
        print ("Please specify the Sogou PinYin Cell dict file!")
        exit (1)

    generator = get_word_from_sogou_cell_dict (sys.argv[1])
    showtxt(generator)

if __name__ == "__main__":
    main()


_________________
心似浮云常自在,意如流水任东西。
此事背后一定有个天大的咪咪
广告:
1、走过路过,不要错过,dropbox网盘2.25G大放送
py大法好,退C保平安
java多妖孽,VB本异端
日诵一千遍,快活似神仙


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 正在创建输入法码表,——请问谁知道,从哪里能拿到大量的“词组”(词库)?
帖子发表于 : 2016-05-16 8:41 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
南瓜神 :Grimace


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 正在创建输入法码表,——请问谁知道,从哪里能拿到大量的“词组”(词库)?
帖子发表于 : 2016-05-16 15:22 
头像

注册: 2008-07-19 12:44
帖子: 3492
地址: 广西(桂)南宁(邕)
送出感谢: 0 次
接收感谢: 77
月下叹逍遥 写道:
python2解析搜狗输入法词库

好的,谢谢,我试试。
YeLee 写道:
南瓜神

???不明白什么意思……


_________________
一善鱼 yq-ysy@163.com

音频数字工作站 Ardour 4 初学者教程  影视特效3D动画 Blender 2.5~2.6 完全教程  图像处理 Krita 3 数字绘画入门


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 正在创建输入法码表,——请问谁知道,从哪里能拿到大量的“词组”(词库)?
帖子发表于 : 2016-05-16 15:48 
头像

注册: 2007-12-14 13:40
帖子: 49885
地址: 志虚国乌由市
系统: Winbuntu
送出感谢: 29
接收感谢: 413
yq-ysy 写道:
YeLee 写道:
南瓜神

???不明白什么意思……

二楼就是南瓜


_________________
冷轩信

渠月 · QY

本人只会灌水,不负责回答问题

无聊可以点一下→ http://u.nu/ubuntu

安装flash 还是要用
代码:
sudo apt install adobe-flashplugin


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译