初试身手—融入自己的中文分词器
现在准备着手写一个真正意义上的聚类搜素了。一开始担心老外的carrot2对中文会进行“歧视”,后来发现原
来carrot2还是比较重视中文的,在有一个
org.carrot2.filter.lingo.local.ChineseLingoLocalFilterComponent的类,专门用来为中文提供分词操作。
再次往下细看,底层的分词造作在org.carrot2.util.tokenizer.parser.jflex.JeZHWordSplit中实现的,采用
的是基于lucene的MMAnalyer 。我没有使用过这种分词器,不知道它的消歧机制和切分效率如何,于是想拿经
常使用的分词器来做个比较。于是,必须建立一个自己的中文filter组建。 以往经常使用的是中科院的java
改良版(还是很慢)和c++版本的mmseg,由于使用的是自己家是windows平台的,所以只好用中科院的java改良
版。
1. 首先在org.carrot2.util.tokenizer.parser中新加一个分析器就叫KellyWordSplit:
package org.carrot2.util.tokenizer.parser;
import org.apache.lucene.analysis.ictcals.FMNM;
import org.carrot2.util.tokenizer.parser.jflex.PreprocessedJFlexWordBasedParserBase;
public class KellyWordSplit extends PreprocessedJFlexWordBasedParserBase {
//public Segment seg = null;
public KellyWordSplit() {
// try {
// seg = new Segment(1, new File(".").getCanonicalPath()
// + File.separator+"dic"+File.separator);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
@Override
public String preprocess(String input) {
System.out.println("cut:"+input);
return FMNM.ICTCLASCut(input) ;
}
}
然后再在这个包中建立一个解析工厂:ICTCALWordBasedParserFactory
package org.carrot2.util.tokenizer.parser;
import org.apache.commons.pool.BasePoolableObjectFactory;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.SoftReferenceObjectPool;
public class ICTCALWordBasedParserFactory {
/** Chinese tokenizer factory */
public static final ICTCALWordBasedParserFactory ChineseSimplified = new
KellyICTCALWordBasedParserFactory();
/** Parser pool */
protected ObjectPool parserPool;
/** No public constructor */
private ICTCALWordBasedParserFactory() {
// No public constructor
}
public WordBasedParserBase borrowParser() {
try {
parserPool.returnObject(parser);
} catch (Exception e) {
throw new RuntimeException("Cannot return a parser", e);
}
}
/**
* @author Stanislaw Osinski
* @version $Revision: 2122 $
*/
private static class KellyICTCALWordBasedParserFactory extends
ICTCALWordBasedParserFactory {
public KellyICTCALWordBasedParserFactory() {
parserPool = new SoftReferenceObjectPool(
new BasePoolableObjectFactory() {
public Object makeObject() throws Exception {
return new KellyWordSplit();
}
});
}
}
}
分享到:
相关推荐
Carrot2是一款强大的文本聚类和排序工具,它能够帮助用户从大量的文档集合中提取出关键主题和概念。Carrot2提供了多种API,方便开发者在不同的编程语言环境中使用,其中包括C# API。本文将深入探讨"carrot2c#api",...
它的Java API允许开发者在自己的应用程序中集成Carrot2的功能,以实现智能的信息检索和处理。"carrot2-java-api-3.6.0"是Carrot2的Java API的一个特定版本,提供了更新和优化的功能。 该API的核心概念包括以下几个...
这是一个学习Carrot2的极好的书籍,通俗易懂
通过这些 JAR 文件,ElasticSearch-carrot2 插件能够将 Carrot2 的聚类能力无缝集成到 ElasticSearch 中,为用户提供高效、准确的搜索结果聚类。在实际应用中,开发者可以通过配置插件参数,选择合适的聚类算法(如 ...
"elasticsearch-carrot2-7.6.0.jar"是专门为Elasticsearch定制的插件实现,它将Carrot2的功能与Elasticsearch的API无缝对接。"plugin-security.policy"是插件的安全策略文件,用于限制插件的权限,确保系统安全。...
最新可用已配置好solr的carrot2插件,tomcat里面需配置好solr具体到http://carrot2.github.io/solr-integration-strategies/carrot2-3.8.0/index.html查看
7. elasticsearch-carrot2-7.5.0.jar:这是 Elasticsearch Carrot2 插件的主要实现,包含了与 Elasticsearch 的集成代码以及 Carrot2 聚类算法的适配逻辑。 8. jackson-annotations-2.8.11.jar:Jackson 注解库,...
Carrot2是用于对文本进行聚类的编程库。 它可以自动发现相关文档组,并用短关键字或短语标记它们。 例如,Carrot2可以将搜索结果标题和代码片段分为以下几类: 安装 Carrot2是一个软件组件,通常作为库依赖项与...
项目移至 GitHub! https://github.com/carrot2/carrot2 Carrot2 是一个开源搜索结果聚类引擎。 它可以自动将小型文档集合(例如搜索结果)组织到主题类别中。 Carrot2 与开源和专有搜索引擎集成得很好。
bin/elasticsearch-plugin install org.carrot2:elasticsearch-carrot2:7.12.0 要从源代码安装(主分支),请运行: ./gradlew clean build 然后安装(使用完整路径): Linux: bin/elasticsearch-plugin install...
carrot2是开源的用于聚类搜索和文档聚类的工具,可用于google,yahoo等大型搜索引擎
solr的carrot2需要用到的文件solr-integration-strategies-gh-pages carrot3.9webapp,还有tomcat还有solr4.81请自己下载
路径跟随算法follow the carrot算法,在ros环境下已经调试好的,可以直接编译运行的程序,需要给程序发布话题/amcl_pose 消息格式为geometry_msgs/PoseWithCovarianceStamped,算法经过计算发布速度到话题/cmd_vel
存档中这些被清空,意味着玩家在使用这些资源时没有留下任何遗憾,为新玩家提供了一个干净的起点,让他们可以根据自己的策略来收集和使用这些资源。 存档文件“com.carrot.carrotfantasy.zip”是通过压缩技术打包的...
2. **轻量级**:与Celery相比,Python-carrot可能更小、更精简,这使得它在资源消耗和学习成本上更具优势,对于小型项目或者对性能要求不那么高的应用来说,可能是一个更好的选择。 3. **API友好**:Python-carrot...
Django是Python的一个著名Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发安全且可维护的网站。本文将深入探讨与“django-carrot-1.4.0a2.tar.gz”相关的知识点。 首先,`django-carrot` 是一个针对...
Carrot增强了Codeforces的排名。 对于进行中的竞赛:当您打开排名列表时,Carrot会根据当前排名计算评分变化,并将其显示在新列中。 Carrot还添加了一个列,该列显示了升级所需的增量。 增量计算是实时a̶n̶d̶i̶s...
资源分类:Python库 所属语言:Python 资源全名:carrot_rcc-0.4.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
**Laravel 开发与 Carrot RabbitMQ 基础库详解** 在 Laravel 框架中,Carrot 是一个用于处理 RabbitMQ 消息队列的流行库,它提供了丰富的功能,使得开发者能够轻松地集成 RabbitMQ 进行异步任务处理。本文将深入...