zoukankan      html  css  js  c++  java
  • solr集成mmseg4j分词

    solr集成mmseg4j分词

    mmseg4j

    https://code.google.com/p/mmseg4j/

    https://github.com/chenlb/mmseg4j-solr

    作者blog http://blog.chenlb.com/category/mmseg4j

    1. mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。

    2. MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。

    mmseg4j-solr2.2.0里面有两个jar包,分别是mmseg4j-core-1.10.0.jar,mmseg4j-solr-2.2.0.jar.将两个jar拷贝到/WEB-INF/lib里面。

    配置

    <fieldType name="text_mmseg" class="solr.TextField" positionIncrementGap="100">
        <analyzer> 
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/> 
        </analyzer>
    </fieldType>
    
    

    这时候在定义field是就可以使用text_mmseg的fieldType。

    tokenizer参数

    mmseg4j 在 solr 中主要支持两个参数:mode、dicPath。mode 表示是什么模式分词(有效值:simplex、complex、max-word,如果输入了无效的默认用 max-word。)。dicPath 是词库目录可以是绝对目录,也可以是相对目录(是相对 solr.home 目录下的,dic 就会在 solr.home/dic 目录下找词库文件),如果不指定就是默认在 CWD/data 目录(程序运行当前目录的data子目录)下找。

    这个地方所说的solr.home我理解的时候,总是觉得是tomcat/solr 这个目录。也就是solr核心的根目录,测试了很久,这里所说的solr.home是指定core的目录,默认也就是/tomcat/solr/collection1这个目录。

    dicPath支持相对路径和绝对路径,上面配置的dic,所以需要在/tomcat/solr/这个目录创建一个名为dic的目录。然后将词库文件放到这个目录下。并且词库文件名必须以words开头.dic结尾。词库强制使用utf-8.由于 utf-8 文件有带与不带 BOM 之分,建议词库第一行为空行或为无 BOM 格式的 utf-8 文件。

    搜狗词库

    http://www.sogou.com/labs/dl/r.html

    需要转换才能给mmseg4j来使用

  • 相关阅读:
    自己总结的Java归并排序代码
    SpringDataJpa
    多态
    向上转型向下转型
    python面向对象装饰器
    Apache
    git
    μWSGI
    虚拟环境
    软件仓库(持续更新中)
  • 原文地址:https://www.cnblogs.com/ac1985482/p/4110764.html
Copyright © 2011-2022 走看看