IKanalyzer分词器,有两种分词模式:
l 细粒度切分
l 智能分词
1 /** 2 * 使用分词器对字符串分词 3 */ 4 private static void IKanalyzer8() throws ParseException, IOException { 5 String words = "五月天创建的人生有限公司举报了一场演唱会,唱了一首do you ever shine"; 6 // 细粒度切分 7 try (Analyzer ik = new IKAnalyzer8();) { 8 TokenStream ts = ik.tokenStream("content", words); 9 System.out.println("IKAnalyzer中文分词器 智能切分,英文分词效果:"); 10 doToken(ts); 11 ts = ik.tokenStream("content", words); 12 System.out.println("IKAnalyzer中文分词器 智能切分,中文分词效果:"); 13 doToken(ts); 14 } 15 16 // IKAnalyzer 智能切分 17 try (Analyzer ik = new IKAnalyzer8(true);) { 18 TokenStream ts = ik.tokenStream("content", words); 19 System.out.println("IKAnalyzer中文分词器 智能切分,英文分词效果:"); 20 doToken(ts); 21 ts = ik.tokenStream("content", words); 22 System.out.println("IKAnalyzer中文分词器 智能切分,中文分词效果:"); 23 doToken(ts); 24 } 25 }
运行结果如下:
加载扩展词典:ext.dic
加载扩展停止词典:stopword.dic
IKAnalyzer中文分词器 智能切分,英文分词效果:
五月天|五月|五|月|天|创建|的人|人生|有限公司|有限|有|限|公司|举报|报了|一场|一|场|演唱会|演唱|会|唱了|一首|一|首|do|you|ever|shine|
IKAnalyzer中文分词器 智能切分,中文分词效果:
五月天|五月|五|月|天|创建|的人|人生|有限公司|有限|有|限|公司|举报|报了|一场|一|场|演唱会|演唱|会|唱了|一首|一|首|do|you|ever|shine|
IKAnalyzer中文分词器 智能切分,英文分词效果:
五月天|创建|人生|有限公司|举|报了|一场|演唱会|唱了|一首|do|you|ever|shine|
IKAnalyzer中文分词器 智能切分,中文分词效果:
五月天|创建|人生|有限公司|举|报了|一场|演唱会|唱了|一首|do|you|ever|shine|
Process finished with exit code 0
jcseg-analyzer-2.5.0.jar
jcseg-core-2.5.0.jar
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>jcseg-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>jcseg-analyzer</artifactId>
<version>2.5.0</version>
</dependency>
1 import org.apache.lucene.analysis.Analyzer; 2 import org.apache.lucene.queryparser.classic.QueryParser; 3 import org.apache.lucene.search.Query; 4 import org.lionsoul.jcseg.analyzer.JcsegAnalyzer; 5 import org.lionsoul.jcseg.tokenizer.core.JcsegTaskConfig; 6 7 /** 8 * JcsegAnalyzerTest 9 * 1.JcsegTaskConfig.COMPLEX_MODE 为复杂模式: 10 * 特点:四种过滤算法。 11 * 2.JcsegTaskConfig.SIMPLE_MODE 为简易模式 特点:只使用了最大化过滤算法,其他的同复杂模式。 12 * @author limingcheng 13 * @Date 2019/11/26 14 */ 15 public class JcsegAnalyzerTest { 16 17 public static void main(String[] args) throws Exception { 18 Analyzer analyzer = new JcsegAnalyzer(JcsegTaskConfig.NLP_MODE); 19 //available constructor: 20 //1, JcsegAnalyzer(int mode) 21 //2, JcsegAnalyzer(int mode, String proFile) 22 //3, JcsegAnalyzer(int mode, JcsegTaskConfig config) 23 //4, JcsegAnalyzer(int mode, JcsegTaskConfig config, ADictionary dic) 24 25 // 非必须(用于修改默认配置): 获取分词任务配置实例 26 JcsegAnalyzer jcseg = (JcsegAnalyzer) analyzer; 27 JcsegTaskConfig config = jcseg.getTaskConfig(); 28 // 追加同义词到分词结果中, 需要在 jcseg.properties 中配置 jcseg.loadsyn=1 29 config.setAppendCJKSyn(true); 30 // 追加拼音到分词结果中, 需要在 jcseg.properties 中配置 jcseg.loadpinyin=1 31 config.setAppendCJKPinyin(true); 32 // 更多配置, 请查看 com.webssky.jcseg.core.JcsegTaskConfig 类 33 config.setICnName(true); 34 // 分词内容 35 String keyword = "孙悟空,杨超越"; 36 37 // 使用QueryParser查询分析器构造Query对象 38 QueryParser qp = new QueryParser("text", analyzer); 39 qp.setDefaultOperator(QueryParser.AND_OPERATOR); 40 Query query = qp.parse(keyword); 41 System.out.println("Query = " + query); 42 } 43 44 45 46 }
jcseg分词器支持六种切分模式:
1 import org.apache.lucene.analysis.Analyzer; 2 import org.apache.lucene.queryparser.classic.QueryParser; 3 import org.apache.lucene.search.Query; 4 import org.lionsoul.jcseg.analyzer.JcsegAnalyzer; 5 import org.lionsoul.jcseg.tokenizer.core.JcsegTaskConfig; 6 7 /** 8 * JcsegAnalyzerTest 9 * 1.JcsegTaskConfig.COMPLEX_MODE 为复杂模式: 10 * 特点:四种过滤算法。 11 * 2.JcsegTaskConfig.SIMPLE_MODE 为简易模式 特点:只使用了最大化过滤算法,其他的同复杂模式。 12 * @author limingcheng 13 * @Date 2019/11/26 14 */ 15 public class JcsegAnalyzerTest { 16 17 public static void main(String[] args) throws Exception { 18 Analyzer analyzer = new JcsegAnalyzer(JcsegTaskConfig.NLP_MODE); 19 //available constructor: 20 //1, JcsegAnalyzer(int mode) 21 //2, JcsegAnalyzer(int mode, String proFile) 22 //3, JcsegAnalyzer(int mode, JcsegTaskConfig config) 23 //4, JcsegAnalyzer(int mode, JcsegTaskConfig config, ADictionary dic) 24 25 // 非必须(用于修改默认配置): 获取分词任务配置实例 26 JcsegAnalyzer jcseg = (JcsegAnalyzer) analyzer; 27 JcsegTaskConfig config = jcseg.getTaskConfig(); 28 // 追加同义词到分词结果中, 需要在 jcseg.properties 中配置 jcseg.loadsyn=1 29 config.setAppendCJKSyn(true); 30 // 追加拼音到分词结果中, 需要在 jcseg.properties 中配置 jcseg.loadpinyin=1 31 config.setAppendCJKPinyin(true); 32 // 更多配置, 请查看 com.webssky.jcseg.core.JcsegTaskConfig 类 33 config.setICnName(true); 34 // 分词内容 35 String keyword = "华为腾讯阿里巴巴 0101304471127J"; 36 37 // 使用QueryParser查询分析器构造Query对象 38 QueryParser qp = new QueryParser("text", analyzer); 39 qp.setDefaultOperator(QueryParser.AND_OPERATOR); 40 Query query = qp.parse(keyword); 41 System.out.println("Query = " + query); 42 } 43 44 45 46 }
原文:https://www.cnblogs.com/bestlmc/p/12304393.html