`
phpseyo
  • 浏览: 158677 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

提高coreseek的搜索精度

 
阅读更多

由于coreseek带的mmseg默认词库只有1w多个字词,搜索出来的结果准确度不是很理想。花了半天找了下搜索引擎相关的资料,现在记录下一些提高搜索精度的方法和步骤:


1. 基础词库要足够丰富,因为只有基础词库丰富了,才能谈权重设置。


2. 增加相关业务领域的词汇,进一步提升词库量,如果不是做综合搜索,一般都只需要提高自身业务领域的词汇。


3. 记录与收集用户搜索,把搜索记录高的作为新增词汇加入到词库中(前提是词库中不存在这个词)。


所以第一件事就是丰富基础词库,词库可以去搜狗拼音,QQ拼音官网下载。下下来后,统一把词汇进行处理,添加到一个词汇数据表 unigram,这个表只需包含id, word两列,id为自增字段,word为key字段,以保证这个词是独一无二的。


然后写个php脚本,把这个 unigram 表的数据转成 unigram.txt(mmseg要求的字典格式),下面是这个脚本的简单步骤

<?php

set_time_limit(0);

define(IN_SITE, true);

require 'config.php';

require 'db_class.php';

 

$db = new dbstuff();

$db->connect($dbhost, $dbuser, $dbpw, $dbname);

$max_id = $db->result_first('SELECT MAX(id) FROM unigram2');

 

$limit = 2000;

$start_page = isset($_GET['id']) ? (int)$_GET['id'] : 0;

$start_id = $limit * $start_page;

if ($start_id > $max_id) exit('ok');

$sql = "SELECT word FROM unigram2 limit {$start_id}, {$limit}";

$query = $db->query($sql);

while ($arr = $db->fetch_array($query)) {

$str .= $arr['word'] . "\t1\r\nx:1\r\n";

}

 

$file = './unigram3.txt';

$h = fopen($file, 'a');

fwrite($h, $str);

 

$start_page++;

$url_forward = 'import.php?id='.$start_page;

echo '<script>window.location.href = "'.$url_forward.';;</script>';

?>

 

得到新增的txt后,把这个txt里的所有内容复制到默认词典的底部。合并原有的的词库。

然后是用mmseg合并词典

 

cd /usr/local/mmseg3/

bin/mmseg -u etc/unigram.txt

 

执行上面的命令后,会生成 unigram.uni 文件,把它重命名为uni.lib(原来也有一个,可以对旧的改名)。

此时词库生成,但还需要重新生成一次索引,

 

cd /usr/local/coreseek

bin/indexer -c etc/xxx.conf --all

 

重启searchd

 

bin/searchd -c etc/xxx.conf --stop

bin/searchd -c etc/xxx.conf

 

至此,扩充词库并应用到索引的过程就完成了!


分享到:
评论

相关推荐

    coreseek-3.2.14-win32

    CoreSeek内嵌了诸如MMSEG(Maximum Matching Segmentation)等分词算法,能够更准确地对中文文本进行拆分,从而提高搜索的精度。 在"coreseek-3.2.14-win32"这个压缩包中,我们可以找到以下关键组件和资源: 1. **...

    sphinx mmseg coreseek 搜狗 词库

    在IT领域,Sphinx、MMSEG、CoreSeek和搜狗词库是四个与搜索引擎和文本处理相关的技术。这里,我们将详细探讨这些技术及其在实际应用中的作用。 首先,Sphinx是一个开源全文搜索引擎,广泛用于网站后台,提供高效、...

    coreseek的demo 20141224修改

    Sphinx是由俄罗斯开发的一款高性能、高精度的全文搜索引擎,它具备实时索引、百万级数据量的高速检索能力。Sphinx支持多种数据库,如MySQL,能与多种编程语言无缝对接,如PHP、Python等。在20141224版本的CoreSeek ...

    coreseek-4.1-win32.rar

    8. **分布式搜索**:当数据量巨大时,CoreSeek支持分布式搜索,可以将索引分散在多台服务器上,提高系统的横向扩展能力。 9. **实时更新**:CoreSeek具有实时索引能力,这意味着数据表更新后,搜索结果能迅速反映...

    coreseek中日韩分词词库

    Coreseek的中文词库包含了大量预处理的词语,使得搜索引擎能够正确识别和理解句子中的词汇关系,提高搜索精度。 2. 日语词库(jauni.txt):日语由汉字、平假名和片假名组成,其分词需要考虑词汇的形态变化和组合...

    coreseek41-windows.zip

    - 使用布尔运算符、短语匹配、模糊搜索等功能,提高查询的灵活性和精度。 总的来说,CoreSeek41-Windows结合Sphinx和MySQL,为开发者提供了一个强大的中文全文搜索解决方案,适用于新闻网站、电子商务平台、论坛等...

    coreseek中文全文索引解决方案

    - **高精度匹配**:针对中文的分词问题,CoreSeek采用了先进的中文分词算法,提高了搜索结果的相关性。 - **实时更新**:索引可以实时或近实时地更新,确保数据的时效性。 - **复杂查询支持**:支持布尔运算、短语...

    Coreseek XML 数据源在 CentOS 下的安装

    mmseg 是 Coreseek 提供的一个分词工具,用于提高搜索精度。 **步骤:** 1. **安装 mmseg:** - 进入 `mmseg` 目录: ```bash [root@cn huyucheng]# cd mmseg/ ``` - 编译安装: ```bash [root@...

    配合《带有sphinx搜索功能的yii2框架实例》的资源

    CoreSeek集成了多个中文分词库,如jieba、mmseg等,提高了中文文本的搜索精度。 在《带有sphinx搜索功能的yii2框架实例》这本书中,作者可能详细介绍了如何在Yii2框架中配置和使用Sphinx或CoreSeek。这可能包括以下...

    搜狗中文分词词汇

    搜狗中文分词词汇与coreseek的结合,使得coreseek能够更准确地识别和划分中文文本中的词语,从而提高搜索结果的相关性和用户体验。 在实际应用中,"word.txt"这个文件很可能是搜狗中文分词词汇的文本形式。这个文件...

    sphinx社区全文搜索平台配置手册.pdf

    在中文分词方面,Sphinx通过与MMseg或类似工具的集成,实现了对中文词汇的精确识别,从而提高搜索精度。 总之,Sphinx作为一个强大的全文搜索引擎,为大型论坛系统如Discuz!提供了高效的全文检索解决方案,解决了...

    sphinx社区全文搜索平台配置手册.docx

    MMseg 分词器能够较好地处理中文词汇的拆分,减少歧义,提高搜索精度。CSFT 则是专为中文环境优化过的分词组件,与Sphinx 结合更紧密,提供更好的中文支持。 ### 三、Sphinx 安装步骤 1. **安装所需程序库**:确保...

Global site tag (gtag.js) - Google Analytics