标签:分析器 future nlp except 字母 star china ide 研究
package bond.lucene.analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.core.WhitespaceAnalyzer; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.util.Version; public class WhitespaceAnalyzerTest { public static void main(String[] args) { try { // 要处理的文本 // "lucene分析器使用分词器和过滤器构成一个“管道”,文本在流经这个管道后成为可以进入索引的最小单位,因此,一个标准的分析器有两个部分组成,一个是分词器tokenizer,它用于将文本按照规则切分为一个个可以进入索引的最小单位。另外一个是TokenFilter,它主要作用是对切出来的词进行进一步的处理(如去掉敏感词、英文大小写转换、单复数处理)等。lucene中的Tokenstram方法首先创建一个tokenizer对象处理Reader对象中的流式文本,然后利用TokenFilter对输出流进行过滤处理"; String text = "The Lucene PMC is pleased to announce the release of the Apache Solr Reference Guide for Solr 4.4."; // 空格分词器(以空格作为切词标准,不对语汇单元进行其他规范化处理) WhitespaceAnalyzer wsa = new WhitespaceAnalyzer(Version.LUCENE_44); TokenStream ts = wsa.tokenStream("field", text); CharTermAttribute ch = ts.addAttribute(CharTermAttribute.class); ts.reset(); while (ts.incrementToken()) { System.out.println(ch.toString()); } ts.end(); ts.close(); } catch (Exception ex) { ex.printStackTrace(); } } }
二、SimpleAnalyzer
以非字母符来分割文本信息,并将语汇单元统一为小写形式,并去掉数字类型的字符。很明显不适用于中文环境。
三、StopAnalyzer
停顿词分析器会去除一些常有a,the,an等等,也可以自定义禁用词,不适用于中文环境
四、StandardAnalyzer
标准分析器是Lucene内置的分析器,会将语汇单元转成小写形式,并去除停用词及标点符号,很明显也是不适合于中文环境
五、CJKAnalyzer
中日韩分析器,能对中,日,韩语言进行分析的分词器,但是对中文支持效果一般,一般不用
六、SmartChineseAnalyzer
对中文支持稍好,但扩展性差,扩展词库,禁用词库和同义词库等不好处理
针对中文的分词处理,整体来说,Lucene的处理不是很好的,我同学推荐了一个分词效果好,扩展起来也很方便的开源库
http://nlp.stanford.edu/software/segmenter.shtml
现在还没有研究,运行了一个demo,发现分词效果很好
标签:分析器 future nlp except 字母 star china ide 研究
原文地址:http://www.cnblogs.com/lxl57610/p/7570083.html