美文网首页
中文分词器学习报告

中文分词器学习报告

作者: 安小宇 | 来源:发表于2017-05-21 15:20 被阅读0次

    1、ICTCLAS – 全球最受欢迎的汉语分词系统

    中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS (Institute of Computing Technology, Chinese Lexical Analysis System)。
    主要功能包括中文分词;词性标注;命名实体识别;用户词典功能;微博分词;新词发现与关键词提取功能;支持GBK编码、UTF8编码、BIG5编码。

    系统平台:Windows
    开发语言:C/C++、Java、C#
    使用方式:dll调用
    开源网址:http://ictclas.nlpir.org/(自然语言处理与信息检索共享平台)
    在线演示:http://ictclas.nlpir.org/nlpir/

    分析示例

    分析文本


    1.png

    分词标注


    2.png

    实体抽取1


    3.png

    实体抽取2


    4.png

    词频统计


    5.png

    情感分析


    6.png

    关键词提取


    7.png

    2、SCWS – 简易中文分词系统

    SCWS:Simple Chinese Word Segmentation (简易中文分词系统)。
    采用自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试准确率在 90% ~ 95% 之间,基本满足一些中小型搜索引擎、关键字提取等场合运用。

    SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。

    系统平台:Windows/Unix
    开发语言:C
    使用方式:PHP扩展(易与现有的基于PHP架构的Web系统继续集成)
    开源网址:http://www.ftphp.com/scws/
    在线演示:http://www.xunsearch.com/scws/demo.php

    分析示例

    8.png

    分词结果


    9.png

    3、IKAnalyzer 开源的轻量级中文分词工具包

    IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。
    支持用户词典扩展定义,采用歧义分析算法优化查询关键字的搜索排列组合;采用多子处理器分析模式,优化的词典存储,更小的内存占用。

    系统平台: 跨平台
    开发语言: Java

    分词示例

    package org.wltea.analyzer.sample;
    
    import java.io.IOException;
    import java.io.StringReader;
    
    import org.apache.lucene.analysis.Analyzer;
    import org.apache.lucene.analysis.TokenStream;
    import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
    import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
    import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
    import org.wltea.analyzer.lucene.IKAnalyzer;
    
    public class IKAnalzyerDemo {
        
        public static void main(String[] args){
            //构建IK分词器,使用smart分词模式
            Analyzer analyzer = new IKAnalyzer(true);
            //获取Lucene的TokenStream对象
            TokenStream ts = null;
            try {
                ts = analyzer.tokenStream("myfield", new StringReader("这是一个中文分词的例子,你可以直接运行它!IKAnalyer can analysis english text too"));
                //获取词元位置属性
                OffsetAttribute  offset = ts.addAttribute(OffsetAttribute.class); 
                //获取词元文本属性
                CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
                //获取词元文本属性
                TypeAttribute type = ts.addAttribute(TypeAttribute.class);
                //重置TokenStream(重置StringReader)
                ts.reset(); 
                //迭代获取分词结果
                while (ts.incrementToken()) {
                  System.out.println(offset.startOffset() + " - " + offset.endOffset() + " : " + term.toString() + " | " + type.type());
                }
                //关闭TokenStream(关闭StringReader)
                ts.end();   // Perform end-of-stream operations, e.g. set the final offset.
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                //释放TokenStream的所有资源
                if(ts != null){
                  try {
                    ts.close();
                  } catch (IOException e) {
                    e.printStackTrace();
                  }
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:中文分词器学习报告

          本文链接:https://www.haomeiwen.com/subject/spzmxxtx.html