分词器的使用

Posted 小琪子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分词器的使用相关的知识,希望对你有一定的参考价值。

IK Analyzer是基于lucene实现的分词开源框架,下载路径:http://code.google.com/p/ik-analyzer/downloads/list

需要在项目中引入:

IKAnalyzer.cfg.xml

IKAnalyzer2012.jar

lucene-core-3.6.0.jar

stopword.dic

什么都不用改

示例代码如下(使用IK Analyzer): 

package com.haha.test;

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.wltea.analyzer.lucene.IKAnalyzer;

public class Test2 {
	public static void main(String[] args) throws IOException {
		String text="基于java语言开发的轻量级的中文分词工具包";
		//创建分词对象
		Analyzer anal=new IKAnalyzer(true);		
		StringReader reader=new StringReader(text);
		//分词
		TokenStream ts=anal.tokenStream("", reader);
		CharTermAttribute term=ts.getAttribute(CharTermAttribute.class);
		//遍历分词数据
		while(ts.incrementToken()){
			System.out.print(term.toString()+"|");
		}
		reader.close();
		System.out.println();
	}

}

 

  使用(lucene)实现:

package com.haha.test;

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

import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

public class Test3 {
	
	public static void main(String[] args) throws IOException {
		String text="基于java语言开发的轻量级的中文分词工具包";
		StringReader sr=new StringReader(text);
		IKSegmenter ik=new IKSegmenter(sr, true);
		Lexeme lex=null;
		while((lex=ik.next())!=null){
			System.out.print(lex.getLexemeText()+"|");
		}
	}

}

  参考文档 : https://blog.csdn.net/lijun7788/article/details/7719166

 

以上是关于分词器的使用的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch中文分词器-IK分词器的使用

Elastic Search 分词器的介绍和使用

IK分词器的安装与使用IK分词器创建索引

elasticsearch IK分词器的安装使用与扩展

Elasticsearch 分词器的使用与IK分词器安装

ELK专栏之IK分词器和Java api操作索引--05