lucene2.9 中文分词学习和SmartChineseAnalyzer的用法
?????? lucene2.9的发布,增加了中文分词这个强大的功能.
以下就是这三个类的用法ChineseAnalyzer,CJKAnalyzer,SmartChineseAnalyzer
这三个类的结果如下:
Example phrase: "我是中国人"
ChineseAnalyzer: 我-是-中-国-人
CJKAnalyzer: 我是-是中-中国-国人
SmartChineseAnalyzer: 我-是-中国-人
呵呵,看到这是不是很棒呢?今天自己写了一个中文分词的测试法,是关于SmartChineseAnalyzer的用法
要用到此方法,要导入包,当然我以为只要下载了lucene-core-2.9.1.jar 就会有的,但是我错了.
所以我特意的提下,不想有的朋友也因为这个浪费不少时间
要用到lucene-analyzers-2.9.1.jar 和??lucene-smartcn-2.9.1.jar 这二个包在contrib\analyzers文件
夹下
代码如下:
public static void main(String[] args) {
????????String str = "javaEye怎么变性成了itEye呢,原来是java被收购了,javaEye见风使舵摇身一变粉墨登场了!";
????????String st =null;
????????StringBuffer sb = new StringBuffer();
????????
????????StringReader reader = new StringReader(str);
????????Analyzer analyzer = new SmartChineseAnalyzer();
????????TokenStream ts = analyzer.tokenStream("", reader);
????????Token t = null;
????????try {
????????????while ((t = ts.next()) != null) {
????
????????????st=t.termText();
????????????if(st.length()>=2){
????????????????System.out.println("##"+st);//判断等于二个字的,如果是一个字就不要了
????????????}
????????????
????????????sb.append(st);
????????????
????????????}
????????????System.out.println(sb);
????????????
????????
????????
????????} catch (IOException e) {
????????????// TODO Auto-generated catch block
????????????e.printStackTrace();
????????}
????}
刚开始学习lucene 有志合道者,可以好好交流下.呵呵,共同学习