标签:mkt cve hapi wpc vfio srp encoding kdbg pbm
第一个 TokenFilter将大写字母变为小写,第二次分词去掉空格并换行,第三次去掉不要的 and或者标点符号
(1)lucene自带的
(2)第三方的
最终决定使用的是IKAnalyzer()分词器,支持中文扩展与停用。
1 // 查看标准分析器的分词效果 2 @Test 3 public void testTokenStream() throws Exception { 4 // 创建一个标准分析器对象 5 // Analyzer analyzer = new StandardAnalyzer(); 6 // Analyzer analyzer = new CJKAnalyzer(); 7 // Analyzer analyzer = new SmartChineseAnalyzer(); 8 Analyzer analyzer = new IKAnalyzer(); 9 // 获得tokenStream对象 10 // 第一个参数:域名,可以随便给一个 11 // 第二个参数:要分析的文本内容 12 // TokenStream tokenStream = analyzer.tokenStream("test", 13 // "The Spring Framework provides a comprehensive programming and configuration model."); 14 TokenStream tokenStream = analyzer.tokenStream("test", 15 "高富帅可以用二维表结构来逻辑表达实现的数据"); 16 // 添加一个引用,可以获得每个关键词 17 CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class); 18 // 添加一个偏移量的引用,记录了关键词的开始位置以及结束位置 19 OffsetAttribute offsetAttribute = tokenStream.addAttribute(OffsetAttribute.class); 20 // 将指针调整到列表的头部 21 tokenStream.reset(); 22 // 遍历关键词列表,通过incrementToken方法判断列表是否结束 23 while (tokenStream.incrementToken()) { 24 // 关键词的起始位置 25 System.out.println("start->" + offsetAttribute.startOffset()); 26 // 取关键词 27 System.out.println(charTermAttribute); 28 // 结束位置 29 System.out.println("end->" + offsetAttribute.endOffset()); 30 } 31 tokenStream.close(); 32 }
(1)标准分词器:StandardAnalyzer
一个一个分词
(2)中日韩分词器 CJKAnalyzer
两个两个分词
(3) 智能中文分词器 SmartChineseAnalyzer
扩展性差,不支持扩展。
(4) 最终扩展性好的分词器 IKAnalyzer
Jar包:
配置文件:
(1)ext.dic存放扩展的词汇(分词算一个,扩展新词汇),比如:
(2)stopword.dic存放停用的词汇(分词不算一个),比如:
(3) IKAnalyzer.cfg.xml 主配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict">ext.dic;</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry> </properties>
(4)效果:
对于汉字 "高富帅可以用二维表结构来逻辑表达实现的数据" 的分词效果:
加载扩展词典:ext.dic
加载扩展停止词典:stopword.dic
start->0
高富帅
end->3
start->3
可以用
end->6
start->3
可以
end->5
start->6
二维表
end->9
start->6
二维
end->8
start->9
结构
end->11
start->12
逻辑
end->14
start->14
表达
end->16
start->16
实现
end->18
start->19
数据
end->21
标签:mkt cve hapi wpc vfio srp encoding kdbg pbm
原文地址:http://www.cnblogs.com/qlqwjy/p/7291087.html