基于Lucene3.5.0怎样从TokenStream获得Token
StringReader reader = new StringReader(s); TokenStream ts =analyzer.tokenStream(s, reader); TermAttribute ta = ts.getAttribute(TermAttribute.class);
package com.segment; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.tokenattributes.TermAttribute; import org.apache.lucene.util.AttributeImpl; import org.wltea.analyzer.lucene.IKAnalyzer; public class Segment { public static String show(Analyzer a, String s) throws Exception { StringReader reader = new StringReader(s); TokenStream ts = a.tokenStream(s, reader); String s1 = "", s2 = ""; boolean hasnext= ts.incrementToken(); //Token t = ts.next(); while (hasnext) { //AttributeImpl ta = new AttributeImpl(); CharTermAttribute ta = ts.getAttribute(CharTermAttribute.class); //TermAttribute ta = ts.getAttribute(TermAttribute.class); s2 = ta.toString() + " "; s1 += s2; hasnext = ts.incrementToken(); } return s1; } public String segment(String s) throws Exception { Analyzer a = new IKAnalyzer(); return show(a, s); } public static void main(String args[]) { String name = "我是俊杰,我爱编程,我的測试用例"; Segment s = new Segment(); String test = ""; try { System.out.println(test+s.segment(name)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。