解析搜狗输入法用到的核心词库

解析搜狗输入法用到的核心词库

搜狗输入法除了使用细胞词库外,还有核心词库。在搜狗输入法的安装目录中,以.bin结尾的文件即为搜狗的核心词库文件。sgim_core.bin为汉字词库,sigm_eng.bin为常用的英文词库。网上找了一下相关资料,找到解析的java程序,具体代码如下: 1: /* Copyright (c) 2010 Xiaoyun Zhu 2: ……

[python] 搜狗细胞词库解析程序

[python] 搜狗细胞词库解析程序

最近研究了一下搜狗的细胞词库,从网上找了一段解析搜狗细胞词库的python脚本,还挺好使,可以解析出词和拼音,分享给大家: 1: #!/usr/bin/python 2: # -*- coding: utf-8 -*- 3:  4: # get from http://blog.csdn.net/zhangzh……

svn同步brach的代码到trunk

svn同步brach的代码到trunk

非ci的方式开发代码,经常要从trunk拉分支,然后在上面开发。开发完之后,要同步trunk的代码到分支上,然后打tag上线。上线完后,要做的事情就是同步分支的代码到主干上。其实这个过程,还是挺繁琐的。同步trunk的代码到分支上,用svn merge命令,然后去解决冲突就好了。把分支上的代码再合回到主干这个,也可以用svn merge命令。但是在实践的过……

使用*(int *)&遇到的奇怪问题

使用*(int *)&遇到的奇怪问题

最近写了一个fast_log2函数,主要目的是在损失一定精度的情况,加速log2f的计算。从网上扒了一段代码,其中用到了一段如下代码: 1: float f = ...; 2: int i = *(int *)&f; 在debug模式(-g -o0)的情况下,运行正常,但在release模式(–o2)下,运行结果不……

在你的项目中使用gtest做测试

在你的项目中使用gtest做测试

之前在腾讯工作的时候,项目构建系统blade默认支持gtest,所以自己只要使用就行了,不用管太多,写好相应的test文件就可以了。现在的公司没有类似的东东,但是想写点单测,就得自己搞了。尝试了一下,其实很简单,到googletest官网下载最新的gtest——gtest 1.7。下载下来后,解压,然后运行如下目录:./configuremake……

kenlm linux延迟加载模型的问题

kenlm linux延迟加载模型的问题

前几天介绍了kenlm训练语言模型,使用语言模型以及多线程等问题。今天我又遇到一个新的问题,就是发现一个很大的语言模型,代码立马就加载完了,然后对于少量的查询,一下子就返回了。但是我后来发现,用大量的查询的时候,程序会缓慢的增长。经过分析发现,原来kenlm默认是采用mmap加载内存,程序一起来的时候,可以看到占用一大块的虚拟存储,但是内存却占得不多,然后……

kenlm多线程测试

kenlm多线程测试

在之前的文章中,我介绍了如何利用kenlm训练语言模型和如何在自己的程序中使用kenlm训练得到的语言模型。在kenlm的官方介绍中,号称其是thread safe的,所以有必要测试一下其对多线程的支持程度。废话少说,直接上码: 1: #include <cstdio> 2: #include <string>……

如何使用kenlm训练出来的模型

如何使用kenlm训练出来的模型

上次介绍了一下,如何用kenlm来训练语言模型。这次来说说如何使用kenlm训练出来的语言模型。kenlm训练出来的语言模型为arpa格式,是一个一种比较通用的语言模型格式,是文本格式的,比较容易阅读。为了效率,kenlm还支持二进制的格式。在上一次的文章中,我已经讲过,利用build_binary可以把arpa格式的语言模型转化成二进制的格式。使用二进制……

使用kenlm训练语言模型

使用kenlm训练语言模型

最近在研究语言模型,想自己动手训练一个语言模型,并试下效果。在网上搜集的相关的资料,常用的训练语言模型的工具,大概有SRILM、KenLM、berkeleylm等几种。KenLm号称比SRILM要好一些,支持单机大数据的训练。berkeleylm是用java写的,号称跟KenLM差不多。KenLM是用c++写的,所以我尝试用它来训练一个语言模型。我的环境是……

利用ikanalyzer分词

利用ikanalyzer分词

最近想研究一下word2vec,第一步是要搞个训练预料。看了看网上有人是用sogou labs提供的新闻语料进行研究的。但是我觉得可能单纯用新闻语料可能还不够吧。所以就开始在网上找一些别的语料,后来找到了一个百度百科2012年的全部词条信息,是网友制作成词典供mdict使用的。二进制格式有5个多G,搞成utf-8文本后有13.3g,数据量还是蛮大的,应该足……