- 浏览: 316085 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
public interface SamewordContext {
public String[] getSamewords(String name);
}
public class MySameTokenFilter extends TokenFilter {
private CharTermAttribute cta = null;
private PositionIncrementAttribute pia = null;
private AttributeSource.State current;
private Stack<String> sames = null;
private final SamewordContext samewordContext;
protected MySameTokenFilter(TokenStream input, SamewordContext samewordContext) {
super(input);
cta = this.addAttribute(CharTermAttribute.class);
pia = this.addAttribute(PositionIncrementAttribute.class);
sames = new Stack<String>();
this.samewordContext = samewordContext;
}
//找到同义词,在相同的位置上叠加
@Override
public boolean incrementToken() throws IOException {
if (sames.size() > 0) {
//将元素出栈,并且获取这个同义词
String str = sames.pop();
//还原状态
restoreState(current);
cta.setEmpty();
cta.append(str);
//设置位置0
pia.setPositionIncrement(0);
return true;
}
if (!this.input.incrementToken())
return false;
if (addSames(cta.toString())) {
//如果有同义词将当前状态先保存
current = captureState();
}
return true;
}
private boolean addSames(String name) {
String[] sws = samewordContext.getSamewords(name);
if (sws != null) {
for (String str : sws) {
sames.push(str);
}
return true;
}
return false;
}
}
public class MySameAnalyzer extends Analyzer {
private final SamewordContext samewordContext;
public MySameAnalyzer(SamewordContext swc) {
samewordContext = swc;
}
@Override
public TokenStream tokenStream(String fieldName, Reader reader) {
//Dictionary dic = Dictionary.getInstance("D:\\tools\\javaTools\\lucene\\mmseg4j-1.8.5\\data");
Dictionary dic = Dictionary.getInstance();
return
new MySameTokenFilter(new MMSegTokenizer(new MaxWordSeg(dic), reader),
samewordContext);
}
}
发表评论
-
二十七、Luence在项目中运用
2012-12-26 15:03 1099public class LuceneContext { ... -
二十六、solr的基本使用
2012-12-26 10:26 962public class Message { p ... -
二十五、solr与tomcat的整合
2012-12-25 13:52 10531、solr是全文搜索服务器,专门用户管理索引的。 2 ... -
二十四、通过NRTManager和SearchManager实现近实时搜索
2012-12-21 11:35 1349是否进行实时搜索 实时搜索(近实时搜索) ... -
二十三、高亮显示
2012-12-20 09:24 1011public void lighter01() { ... -
二十二、Tika
2012-12-20 09:24 967Tika是2008年才产生的一个apache的项目,主要用于打 ... -
二十一、Luke
2012-12-20 09:24 814luke是一个查询索引的工具,使用时必须注意:版本要与luce ... -
二十、自定义过滤器
2012-12-20 09:23 874有的应用有些要求,对于某类型的内容即使满足条件了,但是也不 ... -
十七、搜索过滤
2012-12-20 09:23 637public void searcherByFilter(St ... -
十九、自定义QueryParser
2012-12-19 16:28 1224原因: 1、对于某些Quer ... -
十八、自定义评分
2012-12-19 16:18 792public class MyCustomScoreProvi ... -
十六、搜索排序
2012-12-19 12:14 1032public void searcherBySort(Stri ... -
十四、中文分词器
2012-11-28 13:49 865中文分词器 : Paoding:庖丁解牛分词器。 ... -
十三、自定义Stop分词器
2012-11-28 13:42 764import java.io.Reader; impor ... -
十二、Attribute
2012-11-28 13:20 827Attribute : ... -
十一、分词器的核心类
2012-11-28 13:12 907Analyzer : SimpleAnalyz ... -
十、分页搜索
2012-11-27 17:30 880分页查询有两种实现方式: 1、再查询 ... -
九、Queryparser
2012-11-27 17:24 1002Mike 默认域包含mike Mi ... -
八、其他搜索Query
2012-11-27 10:30 666TermRangeQuery : 字母范围搜索 ... -
七、搜索的简单实现(TermQuery)
2012-11-26 17:12 1004TermQuery只能精确匹配字符串(包括分词后的字符串,不 ...
相关推荐
本篇将聚焦于"Lucene5学习之自定义同义词分词器简单示例",通过这个主题,我们将深入探讨如何在Lucene5中自定义分词器,特别是实现同义词扩展,以提升搜索质量和用户体验。 首先,理解分词器(Analyzer)在Lucene中...
例如,以下是一个简单的示例代码片段,展示了如何构建一个同义词分析器: ```java public class SynonymAnalyzer extends Analyzer { private WordList wordList; public SynonymAnalyzer(Reader reader) throws...
5. **同义词处理**: 支持同义词扩展,可以通过配置同义词词典,使得搜索时能同时匹配到原词和其同义词,提高搜索的包容性。 6. **停用词过滤**: 可以配置停用词表,忽略常见的无实际意义的词汇,如“的”、“和”等...
- 实现模糊搜索:分词器可以帮助实现同义词搜索、近义词搜索等功能,提高用户体验。 3. **安装和使用 IK 分词器的步骤:** - 下载已构建好的 IK 分词器包。 - 将分词器解压后的文件复制到 Elasticsearch 安装...
5. **配置灵活性**:用户可以通过修改配置文件调整分词策略,如设置最大深度、是否开启同义词扩展等。 6. **与Elasticsearch集成**:IK分词器与Elasticsearch有良好的集成,安装简单,只需将解压后的`elasticsearch...
5. **扩展功能**:IK分词器还有其他高级特性,如词语位置调整、同义词扩展、远程词典加载等,可以根据实际需求进行配置和利用。 总之,IK分词器是ES处理中文文本的重要工具,它的灵活性和易用性使其成为许多项目中...
jcseg是使用Java开发的一个开源中文分词器,使用流行的mmseg算法实现,并且提供了最高版本的lucene-4.x和最高版本solr-4.x的分词接口. 1。目前最高版本:jcseg-1.9.2。兼容最高版本lucene-4.x和最高版本solr-4.x 2...
中文分词器的引入解决了英文分词相对简单,而中文以字为基本单位,需要特殊处理才能正确切分的问题。 一、Solr简介 Apache Solr是一款开源的企业级搜索平台,基于Java开发,它可以提供高效的全文检索、 faceted ...
本文将深入探讨一个以"lucene的分词的测试工程"为主题的项目,涵盖分词器的比较、扩展停用词以及同义词分词等多个关键知识点。 一、Lucene简介 Lucene是一款高性能、全文检索的开源库,它提供了索引和搜索功能,...
在“易语言同义词替换”这个主题中,我们主要探讨的是如何利用易语言编写程序来实现文本中的同义词替换功能。 同义词替换在自然语言处理领域有着广泛的应用,如文本生成、文本摘要、信息检索等。它涉及到词汇的丰富...
同时,用户可以通过插件机制扩展其功能,如停用词过滤、同义词替换等。 总的来说,IKAnalyzer作为中文分词领域的优秀工具,不仅提高了中文文本的处理效率,而且简化了开发流程,降低了系统集成的复杂度,是构建高...
2. 同义词处理:将同义词视为相同的词,扩大搜索范围。 3. 词干提取:将动词、形容词等转化为基本形式,如“跑”->“跑”,“跑步”->“跑”。 4. 模糊匹配:考虑用户可能的拼写错误或输入不规范,进行近似匹配。 ...
4. **同义词扩展**:Ik 可以集成同义词库,对同义词进行合并处理,提升搜索效果。 5. **停用词过滤**:Ik 支持停用词过滤,排除常见的无意义词汇如“的”、“是”等。 6. **自定义分析器**:用户可以根据实际需求...
4. **支持同义词扩展**:IK分词器可以结合同义词库进行扩展,提高搜索的准确性和覆盖率。 在微服务项目中,Elasticsearch的IK分词器通常用于以下场景: - **全文检索**:通过IK分词器对中文文本进行预处理,将文本...
- **研究成果**:全哈希词典结构通过多级哈希表实现了高效、快速的中文分词,同时支持同义词存储,相较于现有的词典结构具有明显的优势。 - **未来发展方向**:为进一步提高分词准确性及处理效率,可探索更先进的...
这样经过智能分词和同义词替换后,文章就初步具备了伪原创的特质。 需要注意的是,伪原创并非简单的词汇替换这么简单,它要求我们在替换过程中,确保词汇的语义连贯性,同时保持句子结构的合理性。16万词汇的同义...
同义词库通常是一个文本文件,包含多对同义词,IKAnalyzer在分词过程中会识别并处理这些同义词,使得搜索时能够匹配到更多相关的结果。 **Solr配置步骤** 1. **下载与安装**:首先,你需要下载Apache Solr的对应...
4. 为了进一步优化搜索性能,还可以考虑使用Elasticsearch的其他特性,如过滤器、n-grams、边缘n-grams、同义词等。 总之,集成IK分词器使得Elasticsearch在处理中文文本时更加得心应手,但要充分利用它的潜力,还...
3. **同义词匹配**: 对分词后的词汇进行同义词查找,匹配到合适的替代词。 4. **内容替换**: 在原文中将匹配到的词汇替换为同义词,确保语义的正确性。 5. **结果输出**: 最后,将处理后的文章返回或保存到数据库。 ...
这仅仅是Lucene分词器功能的一部分,实际应用中,还需要考虑如词性标注、自定义词典、模糊搜索、同义词处理等多种复杂情况,以满足不同场景的需求。对于大型文档海量搜索系统来说,优化分词策略和提高搜索效率至关...