import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.index.Term; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.highlight.*; import org.wltea.analyzer.core.IKSegmenter; import org.wltea.analyzer.core.Lexeme; import org.wltea.analyzer.lucene.IKAnalyzer; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; /** * 搜索工具类 * User: Winter Lau * Date: 13-1-10 * Time: 上午11:54 */ public class SearchHelper { private final static Log log = LogFactory.getLog(SearchHelper.class); private final static IKAnalyzer analyzer = new IKAnalyzer(); private final static List<String> nowords = new ArrayList<String>(){{//可用可不用 try{ addAll(IOUtils.readLines(SearchHelper.class.getResourceAsStream("/stopword.dic"))); }catch(IOException e){ log.error("Unabled to read stopword file", e); } }}; /** * 关键字切分 * @param sentence 要分词的句子 * @return 返回分词结果 */ public static List<String> splitKeywords(String sentence) { List<String> keys = new ArrayList<String>(); if(StringUtils.isNotBlank(sentence)) { StringReader reader = new StringReader(sentence); IKSegmenter ikseg = new IKSegmenter(reader, true); try{ do{ Lexeme me = ikseg.next(); if(me == null) break; String term = me.getLexemeText(); if(StringUtils.isNumeric(StringUtils.remove(term,'.'))) continue; if(nowords.contains(term.toLowerCase())) continue; keys.add(term); }while(true); }catch(IOException e){ log.error("Unable to split keywords", e); } } return keys; } }
protected static void test_split(){ String text = "开源中国 www.oschina.net 成立于2008年8月,是目前中国最大的开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。"; long ct = System.currentTimeMillis(); for(String word : SearchHelper.splitKeywords(text)){ System.out.println(word); } System.out.printf("TIME %d\n", (System.currentTimeMillis() - ct)); }
相关推荐
**IKAnalyzer中文分词** IKAnalyzer是一款开源的、基于Java实现的中文分词工具,它在中文信息处理领域有着广泛的应用。该工具最初由尹军平(IkGuo)开发,设计目标是提供一个轻量级、高效能的中文分词引擎,用于...
从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。 从 3.0 版本开始,IK 发展为面向 Java 的公用分词...
- **IKAnalyzer中文分词器V2012使用手册.pdf**:这是一份详细的操作指南,提供了如何使用IKAnalyzer的步骤、配置说明和常见问题解答,对于初学者来说非常有用。 - **IK Analyzer 2012FF_hf1_source.rar**:这是IK...
IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。 如果使用中文分词器ik-analyzer,就需要在索引和搜索程序中使用一致的...
综合以上信息,这个基于IKAnalyzer.NET的分词工具是一个适用于.NET环境的桌面应用,它利用IKAnalyzer进行中文分词,并可能借助PowerCollections进行数据处理,用户界面基于Windows Forms设计,便于用户交互。...
ikanalyzer 对中文字符进行分词,确保了中文文本在索引和查询时的准确性和效率。 ikanalyzer-solr8.4.0 包含了与 Solr 8.4.0 版本兼容的 ikanalyzer 配置和类库。在使用这个包时,我们需要将其正确地集成到 Solr 的...
IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。 这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可
1、lucene-core-3.6.0.jar 2、IKAnalyzer2012.jar(主jar包) 3、IKAnalyzer.cfg.xml(分词器扩展配置文件) 4、stopword.dic(停止词典) 5、IkSegmentation.java(样例类)
IKAnalyzer是一款专为中文处理设计的开源分词器,它主要应用于搜索引擎、信息检索系统、文本挖掘等领域。这款工具能够高效地对中文文本进行分词,使得计算机可以更好地理解和处理中文信息。IKAnalyzer的名字来源于...
- 分词器能够准确识别并处理各种文本,例如在一段介绍IK Analyzer的文字中,它能够正确将“IKAnalyzer”拆分为“ik-analyzer”,同时处理日期、版本号等非标准格式的词汇。 - 在处理公司名称时,如“永和服装饰品...
ikanalyzer中文分词支持lucene7.1.0是一个针对Lucene搜索引擎的中文分词扩展,由林良益先生开发,旨在提供高效、精准的中文词汇拆解功能。Lucene是一个开源全文检索库,它提供了索引和搜索文本的强大工具。然而,...
在本文中,我们将深入探讨如何使用IKAnalyzer2012进行中文分词处理,这是一个针对中文的开源分词工具,特别适用于中英文混合文本的分析。IKAnalyzer2012以其高效、灵活和易用性在Java开发领域广泛应用,尤其在搜索...
IK Analyzer 是一个开源的、基于Java实现的中文分词器,专为全文检索或信息提取等任务设计。它由尹力(Wu Li)在2006年发起,最初是为了改善Lucene的中文处理能力。自那时起,IK Analyzer已经发展成为一个广泛使用的...
标题 "IKAnalyzer中文分词demo" 指的是一个基于IKAnalyzer的中文分词演示项目。IKAnalyzer是一款开源的、适用于Java平台的全文检索引擎工具,主要功能是对中文文本进行有效的分词处理,广泛应用于搜索引擎、信息检索...
**IKAnalyzer中文分词器V3.2使用详解** IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有...
IKAnalyzer是一款针对中文的开源分词器,它在处理中文词汇时表现优秀,尤其适用于搜索引擎和信息检索系统。在Solr中配置IKAnalyzer可以提升中文搜索的准确性和效率。以下是对"solr6.6的IKAnalyzer配置智能分词"的...
**IK Analyzer中文分词器详解** IK Analyzer是一个在IT领域广泛应用的开源项目,它专注于Java平台上的中文分词处理。中文分词是自然语言处理(NLP)中的基础任务,对于信息检索、文本挖掘、机器翻译等领域至关重要...
文档内容详细地介绍了IKAnalyzer中文分词器的每一个版本的特性和升级细节,对分词效果进行了示范,并提供了详尽的使用说明,对于希望在Java环境下进行中文文本分词的开发者来说,是一个不可或缺的参考资料。...
1. 《IKAnalyzer中文分词器V3.X使用手册》 2. IKAnalyzer3.X.jar(主jar包) 3. IKAnalyzer.cfg.xml(分词器扩展配置文件) 4. ext_stopword.dic(扩展的stopword词典,3.2以上版本提供) 它的安装部署十分简单,...