中文分词
分词效果测试方法
1, 定义一串用来分词的语句
例如 String s=”中国的软件必将站在世界之巅”;
2, 将语句写入到流中
例如StringReader reader=new StringReader(s);
3, 遍历所有的分词片段Token
While((t=analyzer.next())!=null){
System.out.println(t.termText()+””);
}
4, 测试实例:二分法
package example.analizer;
//UseCJK.java
import java.io.StringReader;
import org.apache.lucene.analysis.cjk.CJKTokenizer;
public class UseCJK { public static void main(String[] args) throws java.io.IOException { String s = "中国的软件必将站在世界之巅"; StringReader sr = new StringReader(s);
CJKTokenizer cjk = new CJKTokenizer(sr); org.apache.lucene.analysis.Token t = null;
while( (t=cjk.next()) !=null ) { System.out.print(t.termText()+"|"); } } } |
分词词在Lucene中应用法
用于创建索引器
IndexWriter writer =new IndexWriter(indexPath,new CJKAnalyzer());
二分法分词器
CJKAnalyzer
每两个相邻的词算做一个
Lucene自带的中文分词器
ChineseAnalyzer
单字切分。每个字算做一个。
其它的分词器
NGram
JE分词器,基于词典法
IK分词器,词典分词+正反向全切分法。有两个,MIK_CAnalyzer使用最大全切分算法
IKAnalyzer使用细粒度全切分算法
中科院也做了自己的分词器