几种常见的中文分词包的分析与比较

简介: 1:中文分词简介 2:Lucence的中文分词 3:庖丁分词简介 4:IK中文分词简介 一:中文分词简介     1:分词算法分类         -----基于字符串匹配的中文分词方法                eg:句子:我来自沈阳航空航天大学          ...

1:中文分词简介

2:Lucence的中文分词

3:庖丁分词简介

4:IK中文分词简介


一:中文分词简介

    1:分词算法分类

        -----基于字符串匹配的中文分词方法

               eg:句子:我来自沈阳航空航天大学

                       词典:沈阳  航空  航天  大学  沈阳航空航天大学

                       匹配字段:

                       匹配结果:

                选取词典中最长字段作为分词起始的最长步伐,可知最长为8

                首先在句子中以“我”为起点,数八个字“我来自沈阳航空航”在词典中没有匹配到,然后步长减一,为7

                然后数七个字“我来自沈阳航空”同样在字典中没有匹配到,步长减一,为6

                ........

                步长为1时依然没有匹配到,但是是单音节词了,所以存放在匹配结果中

                以此执行,下一次从“是”开始......

                所以最终的匹配结果是:我  来   自  沈阳航空航天大学  沈阳  航空  航天  大学

       ------基于理解的分词方法 

               类似于人工智能分词了,能够自动识别词语的意思,进行分词

        ------基于统计的分词方法

                这里有一篇关于基于统计分词的文章讲的相当详细,大家可以参考以下:http://www.cnblogs.com/xingyun/archive/2013/01/10/2854397.html

    2:两大难题

        ----歧义识别

        ----新词识别

    3:应用

        ----搜索引擎

        ----自然语言处理


二:Lucence的中文分词

        1:基于字符串匹配的分词

               ----paoding

               ----mmseg4j:MMseg算法

               ----IK:正向迭代最细粒度划分算法

         2:基于统计的分词

               ----imdict:采用隐马尔可夫模型


三:庖丁分词简介

        极具有高效性和可扩展性,采用完全的面向对象设计,构思先进

        主页:http://code.google.com/p/paoding

        优点:

               自定义词库,通过修改paoding-analysis.jar中的paoding-dic-home.properties文件中的“paoding.dic.home=dic”定义自己 的词库

               能够对未知的词汇进行合理的分析,分词效率高

        部署:

                下载地址:http://pan.baidu.com/s/1eQ88SZS

               

             1. 配置dic文件:

             修改paoding-analysis.jar中的paoding-dic-home.properties文件,将“#paoding.dic.home=dic”的注释去掉,并配置成自己dic文件的本地存放路径。eg:/home/hadoop/work/paoding-analysis-2.0.4-beta/dic

             2. 把Jar包导入到项目中:

                 将paoding-analysis.jar、commons-logging.jar、lucene-analyzers-2.2.0.jar和lucene-core-2.2.0.jar四个包导入到项目中,这时就可以在代码片段中使用庖丁解牛工具提供的中文分词技术

             3:代码实例

package tokens;

import java.io.IOException;
import java.io.StringReader;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;

public class tokens {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String text = "本思想就是在分词的同时进行句法、语义分析, 利用句法信息和语义信息来进行词性标注, 以解决分词歧义现象。因为现有的语法知识、句法规则十分笼统、复杂, 基于语法和规则的分词法所能达到的精确度远远还不能令人满意, 目前这种分词系统还处在试验阶段。";
		//定义一个解析器
		Analyzer analyzer = new PaodingAnalyzer();
		
		//得到token序列的输出流
		TokenStream tokens = analyzer.tokenStream(text, new StringReader(text));
		try{
			Token t;
			while((t=tokens.next() ) !=null){
				System.out.println(t);
                                //System.out.println(t.termText())  输出单个词
			}
		}catch(IOException e){
			e.printStackTrace();
		}
	}

}


           4:分词结果
                

四:IK中文分词简介
        请参考之前的一篇博客:http://blog.csdn.net/gamer_gyt/article/details/47168877

相关文章
|
自然语言处理 Java 数据库连接
|
数据采集 自然语言处理 算法
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
49941 1
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
|
自然语言处理 算法 Java
第三方中文分词器|学习笔记
快速学习第三方中文分词器
144 0
第三方中文分词器|学习笔记
|
自然语言处理 算法 Java
【Solr】之中文分词及IK库的安装使用-4
【Solr】之中文分词及IK库的安装使用-4
153 0
【Solr】之中文分词及IK库的安装使用-4
|
自然语言处理
HanLP分词工具中的ViterbiSegment分词流程
本篇文章将重点讲解HanLP的ViterbiSegment分词器类,而不涉及感知机和条件随机场分词器,也不涉及基于字的分词器。因为这些分词器都不是我们在实践中常用的,而且ViterbiSegment也是作者直接封装到HanLP类中的分词器,作者也推荐使用该分词器,同时文本分类包以及其他一些自然语言处理任务包中的分词器也都间接使用了ViterbiSegment分词器。
1060 0
|
自然语言处理 算法
中文分词算法工具hanlp源码解析
词图指的是句子中所有词可能构成的图。如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B)。一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图。
1671 0
|
自然语言处理 测试技术 Python
hanlp和jieba等六大中文分工具的测试对比
本篇文章测试的哈工大LTP、中科院计算所NLPIR、清华大学THULAC和jieba、FoolNLTK、HanLP这六大中文分词工具是由 水...琥珀 完成的。相关测试的文章之前也看到过一些,但本篇阐述的可以说是比较详细的了。这里就分享一下给各位朋友!
5716 0
|
自然语言处理 IDE 开发工具
中文自然语言处理工具HanLP源码包的下载使用记录
这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通。Hanlp安装包的下载以及安装其实之前就已经有过分享了。本篇文章主要还是备忘之用,同时算是给新手朋友的一些参考吧!
1561 0
|
机器学习/深度学习 自然语言处理
简单有效的多标准中文分词详解
本文介绍一种简洁优雅的多标准中文分词方案,可联合多个不同标准的语料库训练单个模型,同时输出多标准的分词结果。通过不同语料库之间的迁移学习提升模型的性能,在10个语料库上的联合试验结果优于绝大部分单独训练的模型。模型参数和超参数全部共享,复杂度不随语料库种类增长。
2337 0
|
自然语言处理 API Python
python调用hanlp分词包手记
Hanlp作为一款重要的分词工具,本月初的时候看到大快搜索发布了hanlp的1.7版本,新增了文本聚类、流水线分词等功能。关于hanlp1.7版本的新功能,后面有使用的到时候在给大家分享
2313 0