`
linliangyi2007
  • 浏览: 1013046 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

发布IKAnalyzer中文分词器V3.1.3GA生日祝福版

阅读更多
生日祝福
谨以此版本献给我的老婆,今天是她的生日,在这里,要祝福她生日快乐,天天无忧无虑。
感谢她一直以来对我从事开源项目的支持和鼓励,想对她说:谢谢你,亲爱的,有你在我身边,每一天都洋溢着满满的幸福感觉!


V3.1.3GA版本变更:

1.开放了对中文停止词表的支持,用户可以通过文件配置或API来扩展自己的停止词表

类:org.wltea.analyzer.dic.Dictionary
方法:public static void loadExtendStopWords(List<String> extStopWords)

说明:加载用户扩展的停止词列表,从版本V3.1.3起
参数1:List<String> extStopWords, 扩展的停止词列表
返回值:无

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">/mydict.dic; /com/mycompany/dic/mydict2.dic;</entry> 

	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">/ext_stopword.dic</entry> 	
</properties>

注意:添加停止词可能会对部分的人名切分造成影响,如:陈忠和的“和”,胡适之的“之”,这些被认为是停止词的字通常可能是人名的一部分

2.修订了3.1.2GA中,对中文词头单字切分的bug。


下载 :IKAnalyzer3.1.3GA完整包

更多详细请参看《IKAnalyzer中文分词器V3.1.3使用手册》


分享到:
评论
25 楼 gaowenming 2010-09-16  
linliangyi2007 写道
gaowenming 写道
afi 写道
千秋万世 写道
问题解决了,问题的原因是TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
相信博主一看就明白啦

这个到底是什么地方错了,请详细解释一下谢谢!

同问?刚接触lucene,遇到此问题。


Lucene3.x的 API设计的老实说不是很好。 在tokenStream 中并不一定存在TypeAttribute.class这个属性的,Lucene并没有通过接口定义强制所有的分词器实现对应的参数接口。

哦,明白了,谢谢!
现在用的分词器就是大侠的IK,希望IK越做越强大!
24 楼 linliangyi2007 2010-09-16  
gaowenming 写道
afi 写道
千秋万世 写道
问题解决了,问题的原因是TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
相信博主一看就明白啦

这个到底是什么地方错了,请详细解释一下谢谢!

同问?刚接触lucene,遇到此问题。


Lucene3.x的 API设计的老实说不是很好。 在tokenStream 中并不一定存在TypeAttribute.class这个属性的,Lucene并没有通过接口定义强制所有的分词器实现对应的参数接口。
23 楼 gaowenming 2010-09-16  
afi 写道
千秋万世 写道
问题解决了,问题的原因是TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
相信博主一看就明白啦

这个到底是什么地方错了,请详细解释一下谢谢!

同问?刚接触lucene,遇到此问题。
22 楼 linliangyi2007 2010-05-04  
86asm 写道
  问下楼主,最近试用你的分词器,但是貌似在lucene3.0版本上不支持,在一个较老的版本上能够正确执行。 想问的是你最新的分词器支持lucene3.0吗,我看异常好像是你的分词器有什么东西没有实现。  如果不支持期待楼主尽快支持。


是你早的版本太老了,早在去年就出了3.2的IK了,上网搜索一下,je上也有
21 楼 86asm 2010-05-03  
  问下楼主,最近试用你的分词器,但是貌似在lucene3.0版本上不支持,在一个较老的版本上能够正确执行。 想问的是你最新的分词器支持lucene3.0吗,我看异常好像是你的分词器有什么东西没有实现。  如果不支持期待楼主尽快支持。
20 楼 afi 2010-05-01  
千秋万世 写道
问题解决了,问题的原因是TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
相信博主一看就明白啦

这个到底是什么地方错了,请详细解释一下谢谢!
19 楼 千秋万世 2010-04-16  
问题解决了,问题的原因是TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
相信博主一看就明白啦
18 楼 千秋万世 2010-04-14  
你好
我正使用ik的最新版进行开发,Lucene使用3.0版本,现在要得到分词的返回值,但是实在不知道什么原因,试过很多方法都取不到分词结果,万望指教。下面是代码。
StringReader reader = new StringReader(keywords);
TokenStream tokenStream = (TokenStream) analyzer.tokenStream("text",
reader);
Tokenizer tokenizer = (Tokenizer)tokenStream;
TermAttribute termAttribute = (TermAttribute) tokenStream
.getAttribute(TermAttribute.class);
TypeAttribute typeAttribute = (TypeAttribute) tokenStream
.getAttribute(TypeAttribute.class);
while (tokenStream.incrementToken()) {
System.out.print(termAttribute.term());
System.out.print(' ');
System.out.println(typeAttribute.type());
}
报的异常是:
Exception in thread "main" java.lang.IllegalArgumentException: This AttributeSource does not have the attribute 'org.apache.lucene.analysis.tokenattributes.TypeAttribute'.
at org.apache.lucene.util.AttributeSource.getAttribute(AttributeSource.java:277)
at cdt.searchEngine.util.IndexResourcesUtil.tokenizer(IndexResourcesUtil.java:125)
at cdt.searchEngine.Searcher.Searcher.searchIndex(Searcher.java:51)
at cdt.searchEngine.Searcher.Searcher.main(Searcher.java:69)
17 楼 jitabc 2009-10-19  
IK+compass效果挺好。。。
16 楼 linliangyi2007 2009-10-19  
yyq_101 写道
我想请问一下你的IkQueryParser里面是不是不支持lucene的语法,比如OR AND NOT之类的


不支持的,IKQeuryParser针对于一般用户的关键字输入进行处理的。它的主要工作是对分词中的歧义词元进行合理组合。
15 楼 yyq_101 2009-10-19  
我想请问一下你的IkQueryParser里面是不是不支持lucene的语法,比如OR AND NOT之类的
14 楼 giginet 2009-09-28  
恭喜恭喜。最近在用这个开源组件,很不错。顺便把帖子顶起。
13 楼 linliangyi2007 2009-09-26  
josephlong 写道
成功了
但是现在的问题是
我添加了这样的一条文档
<add>
<doc>
<field name="id">4564456</field>
<field name="kw">浏阳模式</field>
<field name="desc">浏阳模式浏阳模式浏阳模式浏阳模式</field>
</doc>
</add>

<lst name="topTerms">
<int name="浏阳">1</int>
<int name="模式">1</int>
</lst>
分词成功
可是我在solr1.3中用浏阳或模式搜不出来,只能用”浏阳模式“模式可以搜出来
这是为什么呀
我本想用:  
本报讯 据《南方都市报》报道,9月21日起,湖南浏阳拟提职的75名领导干部在浏阳党风廉政网上公布他们的年收入、房产、投资、车辆等所有财产,预示着酝酿半年的浏阳官员财产公示制度终于出台。浏阳模式,广告因其公开资料最齐全、公开方式最大众,而被称为“最彻底”模式。

  打开浏阳党风廉政网廉情公示栏目,75名拟任职领导干部的寸照立即映入眼帘。
这搜出 “浏阳模式”
可以做到吗
谢谢



这个应该就不是分词器的问题了,不知道你的搜索逻辑出了什么问题,还是你之前建立索引的时候就不对了,你的要的效果是最基本的搜索结果,可以尝试重建索引吧,并且建索引时用的分词器最好和搜索时的一致。

更多的solr搜索应用,建议你查询网络上的参考文章,毕竟这个不是本帖的主要内容。谢谢啦。

12 楼 josephlong 2009-09-26  
成功了
但是现在的问题是
我添加了这样的一条文档
<add>
<doc>
<field name="id">4564456</field>
<field name="kw">浏阳模式</field>
<field name="desc">浏阳模式浏阳模式浏阳模式浏阳模式</field>
</doc>
</add>

<lst name="topTerms">
<int name="浏阳">1</int>
<int name="模式">1</int>
</lst>
分词成功
可是我在solr1.3中用浏阳或模式搜不出来,只能用”浏阳模式“模式可以搜出来
这是为什么呀
我本想用:  
本报讯 据《南方都市报》报道,9月21日起,湖南浏阳拟提职的75名领导干部在浏阳党风廉政网上公布他们的年收入、房产、投资、车辆等所有财产,预示着酝酿半年的浏阳官员财产公示制度终于出台。浏阳模式,广告因其公开资料最齐全、公开方式最大众,而被称为“最彻底”模式。

  打开浏阳党风廉政网廉情公示栏目,75名拟任职领导干部的寸照立即映入眼帘。
这搜出 “浏阳模式”
可以做到吗
谢谢


linliangyi2007 写道
josephlong 写道
晕,
我已经说了

solr1.3用Tokenizer做为返回类型 ,而例子是TokenStream 所以报错呀,明白了吗!



帮你看了solr的源码了,你的用法根本是不对的,ChineseTokenizerFactory是专门对Lucene自带的ChineseAnalyzer使用的,你不能这么用,返回的Tokenizer类型都不对啊。

直接实现org.apache.solr.analysis.Interface.TokenizerFactory接口写个IKTokenizerFactory吧,如下:
public class IKTokenizerFactory extends BaseTokenizerFactory {  
  
 @Override  
 public Tokenizer create(Reader reader) {  
 return (Tokenizer) (new IKAnalyzer().tokenStream("text", reader));  
 }  


你也真够懒的,问我这么多来回的时间,早就能写完这个代码了。

11 楼 josephlong 2009-09-26  
我试试

linliangyi2007 写道
josephlong 写道
晕,
我已经说了

solr1.3用Tokenizer做为返回类型 ,而例子是TokenStream 所以报错呀,明白了吗!



帮你看了solr的源码了,你的用法根本是不对的,ChineseTokenizerFactory是专门对Lucene自带的ChineseAnalyzer使用的,你不能这么用,返回的Tokenizer类型都不对啊。

直接实现org.apache.solr.analysis.Interface.TokenizerFactory接口写个IKTokenizerFactory吧,如下:
public class IKTokenizerFactory extends BaseTokenizerFactory {  
  
 @Override  
 public Tokenizer create(Reader reader) {  
 return (Tokenizer) (new IKAnalyzer().tokenStream("text", reader));  
 }  


你也真够懒的,问我这么多来回的时间,早就能写完这个代码了。

10 楼 linliangyi2007 2009-09-26  
josephlong 写道
晕,
我已经说了

solr1.3用Tokenizer做为返回类型 ,而例子是TokenStream 所以报错呀,明白了吗!



帮你看了solr的源码了,你的用法根本是不对的,ChineseTokenizerFactory是专门对Lucene自带的ChineseAnalyzer使用的,你不能这么用,返回的Tokenizer类型都不对啊。

直接实现org.apache.solr.analysis.Interface.TokenizerFactory接口写个IKTokenizerFactory吧,如下:
public class IKTokenizerFactory extends BaseTokenizerFactory {  
  
 @Override  
 public Tokenizer create(Reader reader) {  
 return (Tokenizer) (new IKAnalyzer().tokenStream("text", reader));  
 }  


你也真够懒的,问我这么多来回的时间,早就能写完这个代码了。
9 楼 josephlong 2009-09-26  
晕,
我已经说了

solr1.3用Tokenizer做为返回类型 ,而例子是TokenStream 所以报错呀,明白了吗!


linliangyi2007 写道
josephlong 写道
关键是这个代码都没有编译过去呀,
他们的不是一个对象类型,所以无法编译
明白了吗

linliangyi2007 写道
josephlong 写道
这个就是详细的呀,我是在网上看到ik和solr整合的我也照着做了,出现下面说的情况,你有官方的整合方案吗?



晕死!

请你把程序执行时抛出的异常发给我好吧,我要的不是你的代码啊,而是执行后抛的异常。



你的JDK版本不对,class loader没法载入,用JDK6.0的吧。或者下载IK的源码,在本地进行重新编译。

8 楼 linliangyi2007 2009-09-25  
josephlong 写道
关键是这个代码都没有编译过去呀,
他们的不是一个对象类型,所以无法编译
明白了吗

linliangyi2007 写道
josephlong 写道
这个就是详细的呀,我是在网上看到ik和solr整合的我也照着做了,出现下面说的情况,你有官方的整合方案吗?



晕死!

请你把程序执行时抛出的异常发给我好吧,我要的不是你的代码啊,而是执行后抛的异常。



你的JDK版本不对,class loader没法载入,用JDK6.0的吧。或者下载IK的源码,在本地进行重新编译。
7 楼 josephlong 2009-09-25  
关键是这个代码都没有编译过去呀,
他们的不是一个对象类型,所以无法编译
明白了吗

linliangyi2007 写道
josephlong 写道
这个就是详细的呀,我是在网上看到ik和solr整合的我也照着做了,出现下面说的情况,你有官方的整合方案吗?



晕死!

请你把程序执行时抛出的异常发给我好吧,我要的不是你的代码啊,而是执行后抛的异常。

6 楼 linliangyi2007 2009-09-25  
josephlong 写道
这个就是详细的呀,我是在网上看到ik和solr整合的我也照着做了,出现下面说的情况,你有官方的整合方案吗?



晕死!

请你把程序执行时抛出的异常发给我好吧,我要的不是你的代码啊,而是执行后抛的异常。

相关推荐

    \IKAnalyzer中文分词器V3.1.3使用手册.pdf

    ### IKAnalyzer中文分词器V3.1.3使用手册概览 #### 1. IKAnalyzer3.0介绍 IKAnalyzer是一款专为中文文本处理设计的高性能分词工具包,自2006年首次发布以来,已历经多次迭代升级至V3.1.3版本。最初作为Lucene项目...

    IKAnalyzer中文分词器V2012使用手册_20190806.pdf

    IKAnalyzer是一个开源的中文分词器,基于Java语言开发,它是一个轻量级的中文分词工具包。IKAnalyzer自2006年12月推出1.0版本以来,已经发展到了2012版本。这个分词器最初是基于开源项目Lucene的词典分词和文法分析...

    IKAnalyzer中文分词器v2012使用手册.pdf

    标题:"IKAnalyzer中文分词器v2012使用手册" 所述的知识点包括: IKAnalyzer是一款开源的基于Java语言开发的轻量级中文分词工具包,最早版本于2006年12月发布。作为一个文本分析组件,它最初是作为开源项目Lucene的...

    IKAnalyzer中文分词器V3.2使用

    **IKAnalyzer中文分词器V3.2使用详解** IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有...

    IKAnalyzer中文分词器

    IKAnalyzer是一款专为中文处理设计的开源分词器,它主要应用于搜索引擎、信息检索系统、文本挖掘等领域。这款工具能够高效地对中文文本进行分词,使得计算机可以更好地理解和处理中文信息。IKAnalyzer的名字来源于...

    IKAnalyzer中文分词器V2012_U5使用手册

    ### IKAnalyzer中文分词器V2012_U5使用手册关键知识点解析 #### 1. IKAnalyzer2012介绍 IKAnalyzer是一款基于Java语言开发的开源中文分词工具包,自2006年12月发布1.0版以来,已历经多次重大升级。最初作为Lucene...

    IKAnalyzer中文分词计算句子相似度

    **IKAnalyzer中文分词** IKAnalyzer是一款开源的、基于Java实现的中文分词工具,它在中文信息处理领域有着广泛的应用。该工具最初由尹军平(IkGuo)开发,设计目标是提供一个轻量级、高效能的中文分词引擎,用于...

    IKAnalyzer中文分词器V2012使用手册

    ### IKAnalyzer中文分词器V2012使用手册知识点详解 #### 1. IKAnalyzer2012介绍 IKAnalyzer是一款开源的、基于Java语言开发的轻量级中文分词工具包。自2006年12月发布1.0版以来,已历经多次迭代,至2012版本时,它...

    IKAnalyzer中文分词器V3.2.0

    **IKAnalyzer中文分词器V3.2.0详解** IKAnalyzer是一款专为中文处理设计的开源分词器,广泛应用于搜索引擎、信息检索系统、文本挖掘等领域。它以高效、灵活和准确的特性,在Java开发的中文应用中占有重要地位。V...

    IKAnalyzer中文分词器V3.1.1使用手册

    ### IKAnalyzer中文分词器V3.1.1使用手册 #### 1. IKAnalyzer 3.1.1 介绍 IKAnalyzer是一个基于Java语言开发的开源轻量级中文分词工具包。自2006年12月发布1.0版本以来,IKAnalyzer已经经历了多个版本的迭代,不断...

    IK Analyzer中文分词器

    **IK Analyzer中文分词器详解** IK Analyzer是一个在IT领域广泛应用的开源项目,它专注于Java平台上的中文分词处理。中文分词是自然语言处理(NLP)中的基础任务,对于信息检索、文本挖掘、机器翻译等领域至关重要...

    IK Analyzer 中文分词器下载

    IK Analyzer 是一个开源的、基于Java实现的中文分词器,专为全文检索或信息提取等任务设计。它由尹力(Wu Li)在2006年发起,最初是为了改善Lucene的中文处理能力。自那时起,IK Analyzer已经发展成为一个广泛使用的...

    IKAnalyzer中文分词器 java

    - **IKAnalyzer中文分词器V2012使用手册.pdf**:这是一份详细的操作指南,提供了如何使用IKAnalyzer的步骤、配置说明和常见问题解答,对于初学者来说非常有用。 - **IK Analyzer 2012FF_hf1_source.rar**:这是IK...

    IKAnalyzer中文分词器 v3.2.0 源码包

    IKAnalyzer是一款广泛应用于Java环境中的开源中文分词器,它主要设计用于提高搜索引擎的性能,同时也适用于其他需要中文处理的领域。v3.2.0是该分词器的一个稳定版本,提供了良好的分词效果和较高的性能。在这个版本...

    Java IKAnalyzer 中文分词器

    IK-Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,也就是可以将一串中文字符分割成一个个的词组或者字词 文件中包含分词工具 ikanalyzer-2012_u6.jar 中文分词配置 IKAnalyzer.cfg..xml

    ikanalyzer中文分词支持lucene7.1.0

    总的来说,ikanalyzer中文分词支持lucene7.1.0是为了解决旧版ikanalyzer与新Lucene版本的兼容性问题而推出的,它使得开发者能够充分利用Lucene的最新特性,同时保持ikanalyzer的优秀分词性能,对于处理中文内容的...

    IKAnalyzer中文分词器支持Lucene6.0以上

    提示:IKAnalyzer中文分词器支持Lucene6.0以上,IKAnalyzer中文分词器支持Lucene6.0以上。

    IKAnalyzer 中文分词 完整java项目demo

    IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。 这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可

Global site tag (gtag.js) - Google Analytics