`
youngerblue
  • 浏览: 43997 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

sphinx分词,同义词

阅读更多

      下载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 (江都)|(江都市)。

 

分享到:
评论

相关推荐

    sphinx2.20

    除了基本配置,Sphinx还提供了一些高级特性,如短语搜索、同义词、模糊搜索、权重控制等,可以根据需求灵活调整。为了提高搜索性能,可以使用分布式索引,将大型数据集分布在多个服务器上。 在实际应用中,还需要对...

    sphinx+xdict+安装说明.zip

    在实际应用中,你还需要考虑如何优化索引性能,比如调整索引的字段类型、设置合适的词干化和同义词策略等。此外,对于大型数据集,可能需要考虑分布式索引和搜索,利用Sphinx的多节点和复制特性来提高搜索效率和可用...

    sql全文索引 sphinx

    Sphinx的核心特性包括实时索引、布尔运算、短语匹配、同义词处理以及权重计算等。 2. **全文索引的工作原理** 全文索引通过将文本数据转换为可搜索的结构化数据来提高搜索性能。Sphinx首先从数据库中提取数据,...

    sphinx介绍

    - **分词与同义词**:Sphinx允许自定义分词器和同义词库,以提高搜索精度。 - **分布式搜索**:当数据量大时,Sphinx可以配置为分布式模式,将搜索负载分散到多台机器上,提高性能。 6. **最佳实践**: - 在设计...

    sphinx-for-chinese windows

    5. **智能同义词**:通过算法处理同义词,提高搜索的准确性和召回率。 在 **Windows** 平台上,Sphinx for Chinese 提供了便于安装和使用的 win32 版本,如压缩包中的 `sphinx-for-chinese-2.2.1-dev-r4311-win32` ...

    Sphinx 在WINDOWS和LINUX下安装入门与测试实例

    5. **断词和同义词**:通过配置词典和同义词库,提高搜索的准确性。 6. **分布式搜索**:多个 Sphinx 实例可以组成集群,实现负载均衡和数据冗余。 7. **API 集成**:Sphinx 提供了多种编程语言的 API,方便将搜索...

    coreseek中日韩分词词库

    本文将详细探讨“coreseek/sphinx分词词库txt版本(中日韩)”的核心特点、用途以及如何有效利用这些分词词库。 一、词库概述 1. 中文词库(zhuni.txt):中文分词是中文搜索引擎面临的首要挑战,因为中文词汇之间无...

    archive_ Sphinx全文检索引擎 for Mac v3.3.1 [江西新余电信].zip.zip

    它还支持同义词和拼写纠错,以提升用户体验。 3. 完全定制:Sphinx允许开发者自定义排序规则、权重计算、字段处理等,从而适应各种复杂的搜索需求。你可以根据实际应用调整索引结构,以优化搜索效果。 4. 实时性:...

    archive_ Sphinx全文检索引擎 for Windows v3.3.1 [江西新余电信].zip.zip

    5. **拼音和同义词支持**:对于中文环境,Sphinx可以支持拼音搜索和同义词库,提升用户体验。 6. **多语言支持**:除了中文,Sphinx还能处理其他多种语言的文本,具有良好的国际化能力。 7. **API集成**:Sphinx提供...

    PHP实例开发源码—PhpSou 开源php搜索引擎 体验版 UTF8 (整合sphinx).zip

    Sphinx是一个高性能的全文检索引擎,支持实时添加、更新索引,提供布尔、短语、近似、同义词等多种查询方式。在这个项目中,Sphinx被用作后台的全文检索服务,与PHP前端进行交互,提供高效准确的搜索结果。 4. **...

    关于Sphinx创建全文检索的索引介绍

    语言处理组件的功能包括词形还原(将复数形式转换为单数形式)、同义词处理、停用词过滤等,旨在提高检索的准确度和相关性。Sphinx支持多种语言处理规则,可以根据需要进行配置。 4. 经过语言处理后的词(Term)...

    Friso中文分词器-其他

    10、同义词匹配:自动中文/英文同义词追加. (需要在 friso.ini 中开启 friso.add_syn 选项)。11、自动中英文停止词过滤。(需要在 friso.ini 中开启 friso.clr_stw 选项)。12、多配置支持,安全的应用于多进程/多线程...

    coreseek中文全文索引解决方案

    - **复杂查询支持**:支持布尔运算、短语匹配、同义词、模糊搜索等多种查询方式。 - **大规模数据处理**:能够处理上亿级别的文档索引,适用于大数据量的场景。 **2. 中文分词技术** 在中文环境下,由于词语之间...

    coreseek-3.2.14

    2. **中文支持**:与Sphinx相比,CoreSeek强化了对中文的支持,包括分词、同义词处理、拼音转换等功能,使得中文搜索体验更佳。 3. **实时更新**:CoreSeek支持实时索引更新,这意味着新增或修改的数据可以立即反映...

    coreseek.rar

    - **拼写检查和同义词**:具备自动纠错功能,同时支持自定义同义词库,提升搜索准确度。 - **分布式搜索**:通过分布式索引和查询,可以处理大量数据并分散负载。 - **XMLpipe数据源**:允许自定义数据格式输入,...

    Coreseek 全文搜索服务器2.5

    - **丰富的查询语法**:支持布尔运算符、短语匹配、模糊查询、同义词搜索等多种查询方式,满足复杂的搜索需求。 - **实时索引**:具备实时更新索引的能力,可以快速地将新增或更新的数据纳入索引,确保搜索结果的...

    coreseek-3.2.13.tar.gz

    7. **查询扩展与过滤**:Coreseek支持布尔运算符、短语匹配、模糊搜索、同义词搜索等多种查询方式,并能通过SQL WHERE子句进行数据过滤,实现复杂查询需求。 8. **分布式搜索**:在大型系统中,Coreseek可以通过...

    基于PHP的中文搜索工具源码.zip

    中文搜索的挑战在于中文字符的复杂性,如汉字的多音字、同义词、以及词语的组合多样性。因此,这个项目可能包含对中文字符串的预处理算法,如全角半角转换、UTF-8编码处理,以及对中文词汇的拆解和匹配策略。 ...

Global site tag (gtag.js) - Google Analytics