zoukankan      html  css  js  c++  java
  • (五)Lucene——中文分词器

    1. 什么是中文分词器

    对于英文是安装空格标点符号进行分词

    对于中文应该安装具体的词来分中文分词就是将词切分成一个个有意义的词

    比如:“我的中国人”,分词:我、的、中国、中国人、国人。

    2. Lucene自带的中文分词器

    • StandardAnalyzer

        单字分词:就是按照中文一个字一个字地进行分词。如:“我爱中国”
        效果:爱”

    • CJKAnalyzer

        二分法分词:按两个字进行切分。如:中国人,效果:是”中国“国人”

    上边两个分词器无法满足需求。

    3. 第三方中文分词器

    • paoding: 庖丁解牛最新版在 https://code.google.com/p/paoding/ 中最多支持Lucene 3.0,且最新提交的代码在 2008-06-03,在svn中最新也是2010年提交,已经过时,不予考虑。
    • mmseg4j:最新版已从 https://code.google.com/p/mmseg4j/ 移至 https://github.com/chenlb/mmseg4j-solr,支持Lucene 4.10,且在github中最新提交代码是2014年6月,从09年~14年一共有:18个版本,也就是一年几乎有3个大小版本,有较大的活跃度,用了mmseg算法。
    • IK-analyzer 最新版在https://code.google.com/p/ik-analyzer/上,支持Lucene 4.10从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。 但是也就是2012年12月后没有在更新
    • ansj_seg:最新版本在 https://github.com/NLPchina/ansj_seg tags仅有1.1版本,从2012年到2014年更新了大小6次,但是作者本人在2014年10月10日说明:“可能我以后没有精力来维护ansj_seg了”,现在由”nlp_china”管理。2014年11月有更新。并未说明是否支持Lucene,是一个由CRF(条件随机场)算法所做的分词算法。
    • imdict-chinese-analyzer:最新版在 https://code.google.com/p/imdict-chinese-analyzer/  最新更新也在2009年5月,下载源码,不支持Lucene 4.10 。是利用HMM(隐马尔科夫链)算法。
    • Jcseg:最新版本在git.oschina.net/lionsoul/jcseg,支持Lucene 4.10,作者有较高的活跃度。利用mmseg算法。

    4. Ikanalyzer的使用

    4.1 将jar包拷贝到项目路径下并发布

        

    4.2 代码中使用Ikanalyzer替换标准分词器

        

    4.3 扩展中文词库

    config文件夹下创建以下文件(扩展词文件和停用词文件的编码要是utf-8注意不要用记事本保存扩展词文件和停用词文件那样的话格式中是含有bom

         

    IKAnalyzer.cfg.xml    

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
    <properties>  
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典     -->
        <entry key="ext_dict">ext.dic;</entry> 
    <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry>
    </properties>

    4.4 使用luke来查询中文分词效果

    step1:将ikanalyzer的jar包,拷贝到luke工具的目录

               

     step2:使用命令打开luke工具

    java -Djava.ext.dirs=. -jar lukeall-4.10.3.jar
  • 相关阅读:
    Dask教程
    python程序—利用socket监控端口
    python程序—封装案例
    python程序—士兵出击
    Python三大神器:装饰器,迭代器,生成器
    python程序—名片管理系统
    python程序—系统检测
    python程序—用户登录
    (七)javac编译
    Unity系统消息广播
  • 原文地址:https://www.cnblogs.com/zjfjava/p/7639319.html
Copyright © 2011-2022 走看看