在此回复牛妞的关于程序中分词器的问题,其实可以直接很简单的在词库中配置就好了,Lucene中分词的所有信息我们都可以从TokenStream流中获取.
分词器的核心类Analyzer,TokenStream,Tokenizer,TokenFilter.
Analyzer
Lucene中的分词器有StandardAnalyzer,StopAnalyzer,SimpleAnalyzer,WhitespaceAnalyzer.
TokenStream
分词器做好处理之后得到的一个流,这个流中存储了分词的各种信息.可以通过TokenStream有效的获取到分词单元
Tokenizer
主要负责接收字符流Reader,将Reader进行分词操作.有如下一些实现类
KeywordTokenizer,
standardTokenizer,
CharTokenizer
|—-WhitespaceTokenizer
|—-LetterTokenizer
|—-LowerCaseTokenizer
TokenFilter
将分好词的语汇单元进行各种各样的过滤.
查看分词器的分词信息
package com.icreate.analyzer.luence;import java.io.IOException;import java.io.StringReader;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.SimpleAnalyzer;import org.apache.lucene.analysis.StopAnalyzer;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.WhitespaceAnalyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;import org.apache.lucene.util.Version;/** * * AnalyzerUtil.java* * @version : 1.1 ** @author : 苏若年 <a href=”mailto:DennisIT@163.com”>发送邮件</a> ** @since : 1.0创建时间: 2013-4-14 上午11:05:45 ** TODO: * AnalyzerUtil {/**** Description:查看分词信息* @param str待分词的字符串* @param analyzer 分词器* displayToken(String str,Analyzer analyzer){try {//将一个字符串创建成Token流TokenStream stream = analyzer.tokenStream(“”, new StringReader(str));//保存相应词汇CharTermAttribute cta = stream.addAttribute(CharTermAttribute.class);while(stream.incrementToken()){System.out.print(“[” + cta + “]”);}System.out.println();} catch (IOException e) {e.printStackTrace();}} main(String[] args) {Analyzer aly1 = new StandardAnalyzer(Version.LUCENE_36);Analyzer aly2 = new StopAnalyzer(Version.LUCENE_36);Analyzer aly3 = new SimpleAnalyzer(Version.LUCENE_36);Analyzer aly4 = new WhitespaceAnalyzer(Version.LUCENE_36);String str = “hello kim,I am dennisit,我是 中国人,my email is dennisit@163.com, and my QQ is 1325103287”;AnalyzerUtil.displayToken(str, aly1);AnalyzerUtil.displayToken(str, aly2);AnalyzerUtil.displayToken(str, aly3);AnalyzerUtil.displayToken(str, aly4);}},香港虚拟主机,虚拟主机,香港空间即使是不成熟的尝试,也胜于胎死腹中的策略。