各位好,我想在android上运行中文分词程序,目前用的是IKAnalyzer2012_FF和lucene5.4,但是在运行的时候报了异常,异常如下:
Exception in thread "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.Analyzer.createComponents(Ljava/lang/String;)Lorg/apache/lucene/analysis/Analyzer$TokenStreamComponents;
at org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:140)
at cn.nubia.com.iktest.MainTest.main(MainTest.java:25)
网上查到资料都说是由于lucene版本过低导致的,但是从IKAnalyzer的说明文档来看2012版应该是对lucene3.3以上版本兼容的,而且我使用lucene3.6也不行,请问有没有哪位大神能指导一二啊,谢谢了。下面是测试的代码。
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 MainTest {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("lztest");
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();
}
}