coreseek中mmseg词库的导入方法

coreseek使用mmseg作为分词工具,默认的词库是有限的,我们需要为mmseg增加自定义词,用来丰富词库,实现更加精准的搜索服务。本文介绍如何自定义mmseg词,并通过脚本和mmseg命令导入词库。

准备一个词库

在导入之前,先准备好一个txt的词库文件,在这个文件中每个词占一行,保存为utf8编码格式,例如如下a.txt词库:

阿宝
阿爆
阿本
阿才
阿弟
阿弟仔
阿杜
阿朵

你也可以下载搜狗细胞词库,通过深蓝词库转换器转成以上的格式。

搜狗细胞词库下载地址:http://pinyin.sogou.com/dict/
深蓝词库转换器下载地址:imewlconverter_1_3_1

把搜狗细胞词库通过这个软件导出为txt文件,并且要把它转成utf8格式,默认是ANSI编码。

转成mmseg格式

写脚本,将以上txt的词库转换成mmseg格式的txt。

/*
* 把txt词库转换成mmseg词库
* 注意源文件必须是utf8编码
*/$sourcefile = null;
$targetfile = null;$options = getopt("s:o:");
if (!isset($options['s'])) {$sourcefile = "words.txt";
} else {$sourcefile = $options['s'];
}if (!isset($options['o'])) {$targetfile = "mmseg-dict.txt";
} else {$targetfile = $options['o'];
}convert_file($sourcefile, $targetfile);function convert_file($sourcefile, $targetfile) {$rhandle = fopen($sourcefile, "r");$whandle = fopen($targetfile, "w");if ($rhandle) {while (($buffer = fgets($rhandle, 4096)) !== false) {$line = trim($buffer, "\r\n\t ");fwrite($whandle, "$line\t1\r\nx:1\r\n");}if (!feof($rhandle)) {echo "Error: unexpected fgets() fail\n";}fclose($rhandle);fclose($whandle);}
}

执行以上php脚本:

php words2mmseg.php -s a.txt -o b.txt

导出b.txt文件,它是mmseg词库要求的词式。

阿宝  1
x:1
阿爆  1
x:1
阿本  1
x:1
阿才  1
x:1
阿弟  1
x:1
阿弟仔 1
x:1
阿杜  1
x:1
阿朵  1
x:1

导入操作命令

通过如下命令,将txt文件转成mmseg运行所需的lib词典:

cd /usr/local/mmseg3/etc/
cp unigram.txt unigram.txt.bk
cp uni.lib uni.lib.bk
cat b.txt >> unigram.txt
/usr/local/mmseg3/bin/mmseg -u /usr/local/mmseg3/etc/unigram.txt
mv unigram.txt.uni uni.lib

导入完成后,通过如下命令检验导入效果:

echo "阿弟仔" > whatever.txt
/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc/ whatever.txt

coreseek分词相关推荐

  1. sphinx+coreseek+php扩展--用php程序实现中文拆词

    ##################### 一  mariadb 安装 ##############                     使用的是yum安装 略 ################# ...

  2. Sphinx在windows下安装使用

    Sphinx 在 windows 下安装使用 前一阵子尝试使用了一下 Sphinx ,一个能够被各种语言 (PHP/Python/Ruby/etc) 方便调用的全文检索系统.网上的资料大多是在 lin ...

  3. sphinx+coreseek创建中文分词索引

    2019独角兽企业重金招聘Python工程师标准>>> 一:安装sphinx步骤如下: 下载sphinx最新的2.2.11版本 cd /opt/sphinx wget 下载地址 ta ...

  4. 基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一)

    基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一) ##1.sphinx简介 1.什么是sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检 ...

  5. php mmseg,coreseek+sphinx+mmseg中文分词安装

    由于官网挂了,找资源 下载coreseek+sphinx+mmseg中文分词安装费了很多时间 开始是在github上一阵狂搜,找了几个都安装失败,后来在csdn上找到资源,一阵折腾之后安装成功 准备工 ...

  6. ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版

    主要参考文档:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 一. 32位版本: coreseek安装需要预装的软件: ap ...

  7. Coreseek-带中文分词的Sphinx

    Sphinx并不支持中文分词, 也就不支持中文搜索, Coreseek = Sphinx + MMSEG(中文分词算法) 1.下载 1).到官网下载 2).解压后有三个文件夹 csft-3.2.14: ...

  8. mysql coreseek_centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    首先附上coreseek4.1版本下载 前期准备工作: yum install make gcc g++ automake libtool MySQL-client libMySQLclient15- ...

  9. sphinx和coreseek

    sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本 ...

  10. Coreseek Windows下安装调试

    由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...

最新文章

  1. Kotlin数组(Array)
  2. 干货!高容错微服务架构设计思路
  3. JZOJ 5221. 【GDOI2018模拟7.10】A
  4. Linux驱动之Input子系统要点分析
  5. 解决类似/usr/lib64/libstdc++.so.6:version `GLIBCXX_3.4.21` not found的问题
  6. Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)
  7. Javassist实现JDK动态代理
  8. Profile Options In INV,PO,OM,MS/MRP
  9. 三大抽样分布、正态总体下的抽样分布
  10. 群晖nas存储系统原理_群晖NAS入门教程第四节:群晖存储空间管理员功能和磁盘阵列类型的简介...
  11. Python量化交易策略及回测系统
  12. 基于透视灭点的三维物体点坐标的求取
  13. 透视与3D(3D立方体)
  14. 虚拟机Ubuntu安装中文输入法
  15. 盲孔、埋孔、通孔、一阶HDI、二阶HDI概念
  16. 日期/时间格式中的字母及其含义与示例
  17. 跟着老猫来搞GO,“面向对象“
  18. ​大数据和云计算技术周报(第37期)
  19. python 编码小结
  20. python向es写入大量数据_使用Python-elasticsearch-bulk批量快速向elasticsearch插入数据_李谦的博客-CSDN博客...

热门文章

  1. LoadLibrary无法加载DLL解决思路
  2. FX3U和三菱伺服控制的框架标准程序 回原点、JOG手动、绝对定位、相对定位、控制等部分
  3. 云杰恒指:8.27恒指期货实盘指导交易复盘
  4. 桌面图标快捷方式小箭头_如何在Windows 7、8和10中删除(或更改)快捷方式图标上的箭头...
  5. java中md5加密_JAVA中使用MD5加密实现密码加密
  6. Scrum立会报告+燃尽图(十月二十八日总第十九次)
  7. 游园惊梦--记游第九届软博会
  8. CC2640R2F BLE5.0 CC2640R2F SPI驱动实现
  9. IE浏览器下载文件中文文件名乱码问题解决
  10. (原創) 如何控制TRDB-LTM輸出時某座標的顏色? (SOC) (DE2-70) (TRDB-LTM)