下载CORESEEK软件包后,里面自带了中文分词软件包LibMMSeg。首先需要安装LibMMSeg 。下面所有操作都是在linux平台下。在LibMMSeg根目录下执行 ./configure && make && make install完成安装。默认安装目录在/usr/local/mmseg3。在/usr/local/mmseg/bin下可以之执行mmseg命令,有相应的参数查看分词效果。
Sphinx搜索一个比较变态的地方就是按最大匹配度搜索的。比如分词中有江都,江都市,我搜江都市,是搜索不出江都的,同样如果搜索江都,也搜索不出江都市。刚开始还以为自己分词库有问题,就修改分词。
Mmseg的分词库文档是unigam.txt,在/usr/local/mmseg/etc/下,按照格式修改相应的分词。
最后/usr/local/mmseg3/bin/mmseg –u unigram.txt
生成unigram.uni文件,重命名为uni.lib复制到sphinx安装目录下的dict文件下,并重建索引。
忙完了发现搜索还是没起作用,详细的看了coreseek的文档才知道需要建立同义词库。
同义词库不需要自己填写,可以根据分词库生成。
1. 处理unigram.txt生成同义词库文件
mmseg-3.2.13源代码/script/build_thesaurus.py unigram.txt > thesaurus.txt
thesaurus.txt文件的格式如下:
南京西路
-南京,西路,
张三丰
-太极宗师,武当祖师,
2. 生成同义词词典
mmseg -t thesaurus.txt
3. 将thesaurus.lib放到uni.lib同一目录
4. coreseek索引和搜索时,会自动进行复合分词处理
Ok,最后成功解决问题。不过感觉sphinx分词还是不成熟。
--------------------------------------------------------------------
如果用同义词方式解决的话,同义词库就会很大。今天试了另外一种方法,就是配置中级索引。
在配置文件也就是sphinx.conf中配置min_infix_len = 1。中缀索引是实现“start*”, “*end”, and “*middle*”等形式的通配符成为可能(通配符语法的细节请参考 enable_star 选项)。当最小中缀长度设置为正值,indexer除了对关键字本身还会对所有可能的中缀(即子字符串)做索引。太短的中缀(短于允许的最小长度)不会被索引。 例如,在min_infix_len=2设置下索引关键字“test”会导致产生6个索引项 "te", "es", "st", "tes", "est"等中缀和词本身。对此索引搜索“es”会得到包含“test”的文档,即使它并不包含“es”本身。然而,中缀索引会使索引体积急剧增大(因为待索引关键字增多了很多),而且索引和搜索的时间皆会恶化。 在中缀索引中没有自动的办法可以提高精确匹配(整个词完全匹配)的评分,但可以使用与 prefix indexes 选项中相同的技巧。
这样配置好后,输入江都能搜江都市的,反之却不能。查看了文档以及coreseek社区的讨论帖,发现要对搜索词进行预处理,也就是搜索词输入后在java程序中队搜索词进行相应的切分处理。比如搜索江都市,java程序中,@name (江都)|(江都市)。
分享到:
相关推荐
sphinx全文索引分词工具,可以跟sql一样根据某个字段排序
sphinx中文分词 xdict_1.1.tar.gz
sphinx coreseek 停止词 常用一些的停用词,避免大数据索引
sphinx 中英文分词快速检索 大数据快速搜索
Docker 支持中文分词的Sphinx搜索引擎
sphinx-for-chinese中文分词字典xdict_1.1.txt资源下载
Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等...
sphinx Linux 中文分词
coreseek/sphinx分词词库txt版本(中日韩)
因此,针对特定的领域,告诉sphinx该领域的词汇和各词出现的频率将极大提高识别率。 a3、需要告诉sphinx每个字、词的真正读音 发音字典告诉sphinx每个字的标准读音,但面对的说话人往往不会以标准读音来朗读。 因此...
pocketsphinx 声学模型和词典 tdt_sc_8k 支持utf-8格式
sphinx4需要使用连续的声学模型,官网上下载下来的中文声学模型全是半连续的,这里提供能够在sphinx4中使用的中文声学模型
Discuz官方出品,搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构.doc
sphinx系统是一个拥有悠久历史的语音识别系统,李开复自称第一个sphinx是他写的。 传说 中是第一个实用的10数字语音系统。 是由卡奈基.美隆大学研发。 sphinx3.x是基于C语言的最新版本,sphinx和 sphinx2请大家...
中文分词 coreseek sphinx
1、生成Sphinx中文分词词库 11 ⑴、词典的构造 12 ⑵、词典文件格式 12 ⑶、XX网搜索引擎的中文分词词库 12 2、创建Sphinx主索引文件、增量索引文件存放目录 12 3、创建Sphinx配置文件 13 4、初始化sphinx.conf中...
coreseek/sphinx分词词库txt版本(中日韩)
node-pocketsphinx, node.js的Pocketsphinx绑定 用于 Node.js的 PocketSphinx这里 MODULE 旨在通过使用PocketSphinx在便携设备上实现基本语音识别。安装Windows 安装尚不支持。要构建这里 MODULE,你需要具有以下...
Android基于PocketSphinx的离线命令词识别DEMO,包含了离线命令词库。