使用IKAnalyzer实现中文分词&去除中文停用词

1、简介:IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。这里使用的是IKAnalyzer2012。


2、IK Analyzer 2012特性:

(1)采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式;
(2)在系统环境:Core2 i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力。
(3)2012版本的智能分词模式支持简单的分词排歧义处理和数量词合并输出。
(4)采用了多子处理器分析模式,支持:英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符。
(5)优化的词典存储,更小的内存占用。支持用户词典扩展定义。特别的,在2012版本,词典支持中文,英文,数字混合词语。


3、测试与使用:


public class Demo {

	//停用词词表
	public static final String stopWordTable = "StopWordTable.txt";

	public static void main(String[] args) throws IOException {
		
		//读入停用词文件
		BufferedReader StopWordFileBr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(stopWordTable))));
		//用来存放停用词的集合
		Set<String> stopWordSet = new HashSet<String>();
		//初如化停用词集
		String stopWord = null;
		for(; (stopWord = StopWordFileBr.readLine()) != null;){
			stopWordSet.add(stopWord);
		}
		//测试文本
		String text="不同于计算机,人类一睁眼就能迅速看到和看明白一个场景,因为人的大脑皮层至少有一半以上海量神经元参与了视觉任务的完成。";  
		//创建分词对象
		StringReader sr=new StringReader(text);  
        IKSegmenter ik=new IKSegmenter(sr, false);  
        Lexeme lex=null;  
        //分词
        while((lex=ik.next())!=null){
        	//去除停用词
        	if(stopWordSet.contains(lex.getLexemeText())) {
        		continue;
        	}
            System.out.print(lex.getLexemeText()+"|");  
        } 
        //关闭流
        StopWordFileBr.close();
	}
}


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值