伍哥原創之用搜狗細胞詞庫製做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

相關文章
相關標籤/搜索