伍哥原创之用搜狗细胞词库制做mmseg词典

【伍哥原创】php

1,了解mmseg和libmmsegpython

MMSeg是一个基于最大匹配算法的两种变体的中文单词识别系统。简单来讲就是算法。mysql

LibMMSeg 是Coreseek.com为 Sphinx 全文搜索引擎设计的中文分词软件包,其在GPL协议下发行的中文分词法,采用Chih-Hao Tsai的MMSEG算法。LibMMSeg 采用C++开发,同时支持Linux平台和Windows平台。算法

2,mmseg词典sql

mmseg分词算法是依赖于一个词典。丰富强大的词典决定了分词的质量。因为coreseek安装包自带词典是通常通用的,针对网络零售这个领域,须要补充一些词汇。因此有了制做mmseg词典的需求。网络

3,用搜狗细胞词库制做mmseg词典测试

操做的前提是安装好了coreseek(sphinx),请参考伍哥以前的文章。搜索引擎

终于入正题了,首先去搜狗拼音官网下载细胞词库。这里已淘宝专用词库为例,下载地址:http://pinyin.sogou.com/dict/cell.php?id=22416 。这里假设你把词库放到了/root/test 目录下面。编码

接着下载这个python脚本 scel2mmseg.py 到/root/test。这个脚本伍哥修改了,能够把scel的细胞词库转成mmseg格式的词典。设计

而后把coreseek安装目录的unigram.txt复制到/root/test,并更名为unigram_taobao.txt,并清空里面的内容 (其实就是要一个UTF8编码的文件,哎~~)。

如今能够转化了:

python scel2mmseg.py

新的词汇就添加到词典后面了。

而后就用mmseg生成真正的词库uni.lib

/usr/local/mmseg3/bin/mmseg -u unigram_taobao.txt

这时候会产生一个unigram_taobao.txt.uni,把它重命名为uni.lib,这样一个新的词库就制做好了。

4,测试新词库
首先找到searchd的配置文件,查找到词库的路径。好比下面是伍哥测试环境的路径:
charset_dictpath = /usr/local/mmseg3/etc/

而后先把里面的uni.lib备份好,接着把新的uni.lib放到对应的目前里面。

接着就是开测了:

先从新生成索引

/usr/local/coreseek/bin/indexer -c /root/test/coreseek/testpack/etc/ecm_goods.conf --all --rotate

而后搜索一把,查看结果是否正确:

/usr/local/coreseek/bin/search -c /root/test/coreseek/testpack/etc/ecm_goods.conf '海尔冰箱'

Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file ‘/root/test/coreseek/testpack/etc/ecm_goods.conf’…
index ‘mysql’: query ‘海尔冰箱 ‘: returned 2 matches of 2 total in 0.000 sec

displaying matches:
1. document=302, weight=1708, store_id=100059
id=302
goods_name=海尔冰箱
cate_name=生活电器 你们电 空调
store_id=100059
2. document=324, weight=1708, store_id=100059
id=324
goods_name=海尔冰箱
cate_name=生活电器 你们电 冰箱
store_id=100059

words: 1. ‘海尔冰箱’: 2 documents, 2 hits

相关文章
相关标签/搜索