搜狗输入法如何java_java - 如何获取搜狗输入法的词库
黄舟2017-04-17 11:24:371楼
我忘记这代码是从哪儿来的了,大概是从这个改的吧:http://yongsun.me/2010/07/%E5%AF%BC%E5%85%A5sogou%E8%BE%93%E5%85%A5%E6%B3%95%E7%9A%84%E7%BB%86%E8%83%9E%E8%AF%8D%E5%BA%93/
importer.py
#!/usr/bin/python2
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 ('
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 len(utf8str), utf8str
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()
然后到 http://pinyin.sogou.com/dict/ 下载搜狗细胞词库。运行 ./importer.py 文件名
运行后会向标准输出输出 *.scel 文件里的所有词,每行一个。
搜狗输入法如何java_java - 如何获取搜狗输入法的词库相关推荐
- 新浪出输入法了,深蓝词库转换更新到1.3.1——增加对新浪拼音输入法的支持
新浪最近出了自己的输入法,具体介绍我就不说了,参见这里.由于之前一直做深蓝词库转换的工具,目前已经支持了大部分主流的输入法词库的转换,既然出了一个新的输入法,那么肯定要增加对这个输入法的词库的支持了. ...
- 新浪出输入法了,深蓝词库转换更新到1.3.1——增加对新浪拼音输入法的支持...
新浪最近出了自己的输入法,具体介绍我就不说了,参见这里.由于之前一直做深蓝词库转换的工具,目前已经支持了大部分主流的输入法词库的转换,既然出了一个新的输入法,那么肯定要增加对这个输入法的词库的支持了. ...
- win10,win11微软输入法如何导入搜狗词库的方法-词库转换
很多人使用PC输入法越来越喜欢简洁好用的,搜狗.百度这种输入法的臃肿和广告弹窗越来越让我们感到烦闷,于是很多人开始选择使用Windows系统自带的微软拼音输入法. 微软拼音输入法其实在日常使用中已经足 ...
- Gboard导入简体中文词库,详细操作教程。
Gboard批量导入词库方法 适用版本8.6.10.266015648-release-arm64-v8a 工具 深蓝词库转换器 sublime(非必须,根据自身习惯) 一.准备工作 1.首先打开搜狗 ...
- R语言:如何批量导入搜狗词库
首先是建立相关目录 # 建立相关目录 # 建立数据目录,本项目所有数据都保存在这个文件夹下(包括搜狗词库文件).其中getwd()用来获取当前工作环境的目录 data.dir <- sprint ...
- 爬取搜狗输入法的医学词库 下载.scel格式文件
Ps: 参考代码 原文链接:https://blog.csdn.net/Q_QuanTing/article/details/82698229 Why am I doing this? 入职后一段时间 ...
- python 获取搜狗输入法里面所有的表情图片
首先我们要使用fiddler爬取搜狗输入法表情接口,打开搜狗输入法键盘,里面有个表情,点击进去会进去搜狗的图片表情 ,其中有个输入框,我们要抓取的就是输入对应的文字,找到搜狗所有的管理按图片: 比如我 ...
- 搜狗输入法导入本地txt为个人词库
1.个人txt词库 这就词库了,本地导入的一个词就可以生效 2.导入txt词库 打开搜狗输入法的 弹出一个窗口 选中词库,点击导入 弹出一个窗口 选txt格式 选中自己的txt词库 3.完成测试 打字 ...
- python表情怎么打出来_python 获取搜狗输入法里面所有的表情图片
首先我们要使用fiddler爬取搜狗输入法表情接口,打开搜狗输入法键盘,里面有个表情,点击进去会进去搜狗的图片表情 ,其中有个输入框,我们要抓取的就是输入对应的文字,找到搜狗所有的管理按图片: 比如我 ...
最新文章
- Tessellation (曲面细分) Displacement Mapping (贴图置换)
- 探索 COVID-19 新冠数据来学习 Pandas
- 我要做 Android 之面笔试总结
- Load和Initialize的往死了问是一种怎样的体验
- 常见JSP中文乱码例子及其解决方法
- java js 执行效率_JavaScript提高加载和执行效率的方法
- 【视频】CCNA——telnet和SSH的配置
- IDEA JDK1.8 ProGuard 混淆Maven项目代码
- linux查询匹配个数,查找与linux中目录中的模式匹配的文件数
- android学习笔记---31_多线程断点下载器,下载原理实现
- Android 解决手机unauthorized错误
- 当联邦学习碰上老虎机
- sql 获取日期时分秒_sql2000 获取当前日期只要年月日,不要时分秒
- 计算机二级公共基础知识易错点汇总
- JAVA博客和书籍推荐
- 数理统计基础 常用的统计分布
- 【BZOJ2109/2535】【NOI2010】航空管制(贪心)
- max7456 C语言,如何使用8位单片机对16位INT型数据进行操作
- 正则表达式中反斜杠的另一用法
- 海外专利紧缺 中国IT企业国际化维艰