几种常见的中文分词包的分析与比较
2016-04-17 09:59
429 查看
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:代码实例
4:分词结果
![](https://img-blog.csdn.net/20160401203038330?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
四:IK中文分词简介
请参考之前的一篇博客:http://blog.csdn.net/gamer_gyt/article/details/47168877
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树