- 浏览: 1014468 次
- 性别:
- 来自: 福州
最新评论
-
guanxin2012:
大神,您好。非常感谢您贡献了IKExpression。我们现在 ...
分享开源表达式解析器IK-Expression2.0 -
qqgigas:
LZ,public boolean createUser(LD ...
Sun Directory Server/LDAP学习笔记(二)——API说明及代码样例 -
gao_shengxian:
Hibernate: update T_GX_TEST set ...
优雅Java编程 之 使用Hibernate存储Oracle Spatial对象 -
a78113534:
感谢大神,在安卓里面调用成功了。
发布IK Expression开源表达式解析器 V2.1.0 -
majiedota:
加油
来自开源支持者的第一笔捐赠
应网友要求,修订3.1.1对字母窜的切分策略,强化对英文单词的切分。
如:
window2000 将切分为 | window2000 | window | 2000;
readme.txt 将切分为 | readme.txt | readme | txt;
linliangyi2005@gmail.com 将切分为 | linliangyi2005@gmail.com | linliangyi | 2005 | gmail | com ;
下载 :IKAnalyzer3.1.2稳定版完整包.rar
更多详细请参看《IKAnalyzer中文分词器V3.1.1使用手册.pdf》
或访问本人Blog:http://linliangyi2007.iteye.com/blog/429960
项目地址:http://code.google.com/p/ik-analyzer/ 。
这个是好事,不是坏事啊。
代码罗嗦是偶滴习惯性缺点,不应该提倡的,呵呵。
好吧,我承认繁琐。但有时候,真的是代码习惯问题啊,改过来怪怪的,请各位容忍一下下啦
难道不能这么写
;
呵呵,这个纯属代码风格问题。如果这个要讨论下去,又会引起争论了。事实上,对于分词器而言,两段代码没有本质区别,不是吗?既不影响效率,也不影响算法。
如果需要讨论代码编写的话,建议学习ruby吧,哪里有比java好的多的魔法代码哦,这跟本贴的中心就相去甚远了,还是就此打住吧。
难道不能这么写
;
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
如:
window2000 将切分为 | window2000 | window | 2000;
readme.txt 将切分为 | readme.txt | readme | txt;
linliangyi2005@gmail.com 将切分为 | linliangyi2005@gmail.com | linliangyi | 2005 | gmail | com ;
下载 :IKAnalyzer3.1.2稳定版完整包.rar
更多详细请参看《IKAnalyzer中文分词器V3.1.1使用手册.pdf》
或访问本人Blog:http://linliangyi2007.iteye.com/blog/429960
项目地址:http://code.google.com/p/ik-analyzer/ 。
评论
12 楼
linliangyi2007
2009-10-14
joachimz 写道
@linliangyi2007 不好意思,我都觉得自己有点讨厌
不过自从开始使用ruby,学习scala这样的语言后,对代码简洁的追求几乎称得上痴迷。有机会就会重构,删代码。
不过自从开始使用ruby,学习scala这样的语言后,对代码简洁的追求几乎称得上痴迷。有机会就会重构,删代码。
这个是好事,不是坏事啊。
代码罗嗦是偶滴习惯性缺点,不应该提倡的,呵呵。
11 楼
joachimz
2009-10-14
@linliangyi2007 不好意思,我都觉得自己有点讨厌
不过自从开始使用ruby,学习scala这样的语言后,对代码简洁的追求几乎称得上痴迷。有机会就会重构,删代码。
不过自从开始使用ruby,学习scala这样的语言后,对代码简洁的追求几乎称得上痴迷。有机会就会重构,删代码。
10 楼
linliangyi2007
2009-10-14
joachimz 写道
尽管在工作中主要使用java,也接受java的繁琐,但对类似
的写法非常反感。不能因为java的繁琐,我们就不去追求代码的简洁。potian的建议还是很中肯的。
if (true) { return true; } else { return false; }
的写法非常反感。不能因为java的繁琐,我们就不去追求代码的简洁。potian的建议还是很中肯的。
好吧,我承认繁琐。但有时候,真的是代码习惯问题啊,改过来怪怪的,请各位容忍一下下啦
9 楼
joachimz
2009-10-14
尽管在工作中主要使用java,也接受java的繁琐,但对类似
的写法非常反感。不能因为java的繁琐,我们就不去追求代码的简洁。potian的建议还是很中肯的。
if (true) { return true; } else { return false; }
的写法非常反感。不能因为java的繁琐,我们就不去追求代码的简洁。potian的建议还是很中肯的。
8 楼
gtman
2009-10-14
强烈建议发布基于1。5版的。。。
7 楼
potian
2009-09-14
因为最近想了解分词,所以找了Javaeye推荐的IK。我发帖的主要原因就是有一些不理解的地方,从一开始就没有想要说你的代码什么不好,只不过有点疑问,当然有可能是引起了你的误会
咱们到此打住吧
咱们到此打住吧
6 楼
linliangyi2007
2009-09-14
potian 写道
linliangyi2007 写道
potian 写道
刚刚打开你的程序看了一下,看到一个类:
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
/** * 判断词元是否彼此包含 * @param other * @return boolean true 完全包含 , false 可能不相交 或者 相交但不包含 */ public boolean isOverlap(Lexeme other){ if(other != null){ if(this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()){ return true; }else if(this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition()){ return true; }else { return false; } } return false; }
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
难道不能这么写
if(other == null) return false; return (this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()) || (this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition())
呵呵,这个纯属代码风格问题。如果这个要讨论下去,又会引起争论了。事实上,对于分词器而言,两段代码没有本质区别,不是吗?既不影响效率,也不影响算法。
如果需要讨论代码编写的话,建议学习ruby吧,哪里有比java好的多的魔法代码哦,这跟本贴的中心就相去甚远了,还是就此打住吧。
5 楼
potian
2009-09-13
linliangyi2007 写道
potian 写道
刚刚打开你的程序看了一下,看到一个类:
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
/** * 判断词元是否彼此包含 * @param other * @return boolean true 完全包含 , false 可能不相交 或者 相交但不包含 */ public boolean isOverlap(Lexeme other){ if(other != null){ if(this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()){ return true; }else if(this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition()){ return true; }else { return false; } } return false; }
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
难道不能这么写
if(other == null) return false; return (this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()) || (this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition())
4 楼
linliangyi2007
2009-09-13
potian 写道
刚刚打开你的程序看了一下,看到一个类:
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
/** * 判断词元是否彼此包含 * @param other * @return boolean true 完全包含 , false 可能不相交 或者 相交但不包含 */ public boolean isOverlap(Lexeme other){ if(other != null){ if(this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()){ return true; }else if(this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition()){ return true; }else { return false; } } return false; }
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
我想说的是,不要把这段代码等同于两个Lexeme对象的相等判断。代码没有错,也没有多余。
不判断文本内容是考虑到效率问题,对于明确的一段文字,相同位置上的字符是一样的
当然如果将begin改为getBeginPosition会更利于程序的阅读,这个会进行修改。
3 楼
infante_yin
2009-09-13
你好,可以问你个问题吗?看你写了关于很多CAS的,我出了个这样的问题,可以给我点帮助吗?java.security.cert.CertificateException: No subject alternative names present
2 楼
potian
2009-09-13
刚刚打开你的程序看了一下,看到一个类:
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
/** * 判断词元是否彼此包含 * @param other * @return boolean true 完全包含 , false 可能不相交 或者 相交但不包含 */ public boolean isOverlap(Lexeme other){ if(other != null){ if(this.begin <= other.begin && this.getEndPosition() >= other.getEndPosition()){ return true; }else if(this.begin >= other.begin && this.getEndPosition() <= other.getEndPosition()){ return true; }else { return false; } } return false; }
这个地方为什么判断begin,然后是 getEndPosition之间的关系,是不是应该同样判断getBeginPosition? 还有写得代码太复杂了,两个条件变成一个或不就可以了吗?
另外hashcode和equal都没有判断文本的内容,这个也挺奇怪的
当然我还没看其他的代码,可能你的本意就需要这样?
1 楼
IceWee
2009-09-11
支持一个。
发表评论
-
来自开源支持者的第一笔捐赠
2013-01-09 21:15 57862013年1月9号,一个平凡而又不平常的日子! IK中文分词 ... -
发布 IK Analyzer 2012 FF 版本
2012-10-23 17:50 25141首先感谢大家对IK分词器的关注。 最近一段时间正式公司事务最 ... -
发布 IK Analyzer 2012 版本
2012-03-08 11:23 36237新版本改进: 支持分词歧义处理 支持数量词合并 词典支持中英 ... -
CSDN发生严重用户账号泄密事件
2011-12-21 19:21 2570之前有在CSDN注册过的兄弟们,注意了。。。 如果你的邮箱, ... -
一个隐形的java int溢出
2011-08-30 09:44 7566故事的背景: 笔者最近在做一个类SNS的项目,其中 ... -
雷军 :互联网创业的葵花宝典
2011-05-04 10:35 3599博主评: 这片博客很短 ... -
Luci-mint站内搜索实测
2011-04-02 16:18 4154关于Luci-mint 服务器硬 ... -
发布 IK Analyzer 3.2.8 for Lucene3.X
2011-03-04 17:49 14274IK Analyzer 3.2.8版本修订 ... -
TIPS - XML CDATA中的非法字符处理
2011-02-17 15:03 3326XML解析过程中,常遇见CDATA中存在非法字符,尤其在火星文 ... -
对Cassandra的初体验
2010-10-13 17:58 9164作为“云计算”时代的架构设计人员而言,不懂K-V库会被 ... -
Spring + iBatis 的多库横向切分简易解决思路
2010-10-11 13:43 94151.引言 笔者最近在做一个互联网的“类SNS”应用,应用 ... -
发布 IK Analyzer 3.2.5 稳定版 for Lucene3.0
2010-09-08 14:43 5831新版本IKAnnlyzer3.2.8已发布! 地址: http ... -
关于Lucene3.0.1 QueryParser的一个错误
2010-05-21 21:33 2134表达式1: 引用 id:"1231231" ... -
发布 IK Analyzer 3.2.3 稳定版 for Lucene3.0
2010-05-15 14:13 6739IK Analyzer 3.2.3版本修订 在3.2.0版 ... -
windows平台上的nginx使用
2010-01-28 17:13 3414转载自:http://nginx.org/en/docs/wi ... -
发布IKAnnlyzer3.2.0稳定版 for Lucene3.0
2009-12-07 09:27 9605最新3.2.5版本已经推出,http://linliangyi ... -
在Tomcat下以JNDI方式发布JbossCache
2009-12-04 10:57 3858前言: 看过JbossCache的开发手册,发现在Jb ... -
Spring AOP小例子
2009-11-16 10:35 3411PS: 要注明一下,这个是转载滴,之前漏了说鸟,汗死 这里给 ... -
ActiveMQ 5.X 与 Tomcat 集成一(JNDI部署)
2009-11-10 15:15 5655原文地址:http://activemq.apache.org ... -
发布IKAnalyzer中文分词器V3.1.6GA
2009-11-08 23:10 11870IKAnalyzer3.2.0稳定版已经发布,支持Lucene ...
相关推荐
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词...
IKAnalyzer3.1.6GA.jar IKAnalyzer3.1.6GA.jar
IK Analyzer 是一个开源的,基于java 语言开发的轻量级的中文分词工具包。从2006 年12 月推出1.0 版开始, IKAnalyzer 已经推出了3 个大版本。最初,它是以开源项目 Luence 为应用主体的,结合词典分词和文法分析...
IKAnalyzer的设计理念是易于扩展和配置,可以根据实际需求定制词典,支持热更新,使得在运行时可以动态添加或修改词典内容。它的核心特点是支持多种分词模式,包括精确模式、全模式、快速模式以及智能模糊模式,能...
IK Analyzer安装包包含: 1. 《IKAnalyzer中文分词器V2012使用手册》(即本文档) 2. IKAnalyzer2012.jar(主jar包) 3. IKAnalyzer.cfg.xml(分词器扩展配置文件) 4. stopword.dic(停止词典) 5. LICENSE....
IK Analyzer的名字来源于“Intelligent Keyword”(智能关键词),它的设计理念是通过灵活的配置来满足不同场景下的分词需求。 IK Analyzer的6.5.0版本是其发展过程中的一个重要里程碑,它在前一版本的基础上进行了...
1. **词典管理**:IKAnalyzer的性能很大程度上取决于词典的质量,因此定期更新词典或根据需求自定义词典是必要的。 2. **分词模式**:IKAnalyzer提供了两种分词模式——“精确模式”和“全模式”,前者尽可能保证...
IKAnalyzer3.1.2 是该分词器的一个稳定版本,提供了良好的性能和可靠性。 在Java开发中,分词器扮演着关键角色,它能够将连续的汉字序列分解成有意义的词语,这对于理解和处理中文文本至关重要。IKAnalyzer 使用了...
- 使用IKAnalyzer配合Solr,可以构建企业级的搜索应用,满足大规模数据的高效检索需求。 5. **安装和使用IKAnalyzer**: - 将IKAnalyzer的jar包添加到项目的类路径中,然后在配置文件中指定使用IKAnalyzer作为...
IKAnalyzer是一款广泛应用于Java环境中的中文分词器,它的全称是"Intelligent Chinese Analyzer for Java"。这个压缩包文件包含的是IKAnalyzer的配置文件、扩展词典和停用词词典,这些组件对于优化IKAnalyzer的性能...
标题中的"IKAnalyzer2012FF_hf1.zip"指的是IK Analyzer的2012年最终版(Final)的高频率更新1(Hot Fix 1)。IK Analyzer是一款开源的、基于Java语言开发的轻量级中文分词器,主要用于Java环境下对中文文本的分词...
ikanalyzer 提供了丰富的扩展性,用户可以根据自己的需求定制词典,支持自定义停用词、同义词等,以满足不同场景的分词需求。同时,ikanalyzer 还提供了全模式和最细粒度模式两种分词策略,全模式尽可能切出更多的词...
在实际应用中,用户可能需要配置Solr的schema.xml文件,指定使用IKAnalyzer作为默认的字段分析器,同时根据需求选择合适的分词策略。同时,通过solr-analyzer-extra-5.3.jar,用户还可以集成更多的文本处理功能,如...
"2012FF_hf1.7z" 是IK Analyzer的一个特定版本,可能包含了优化和改进,适应了2012年及之后的技术需求。 在Solr中,分词器扮演着至关重要的角色。它们负责将输入的中文文本分解成一系列的词汇单元,这些单元通常被...
IKAnalyzer提供了动态自定义词库的方法,使得开发者可以根据不同的应用场景和需求,灵活地配置分词器的词库。 动态自定义词库的方法主要通过自定义Configuration类来实现。Configuration类是IKAnalyzer的核心配置类...
IK Analyzer 2012FF_hf1 版本是该分词器的一个特定版本,"2012FF"可能表示发布于2012年,而"hf1"可能是_hotfix1_的缩写,意味着这是一个修复了一些问题的小版本更新。这个版本可能包含性能优化、错误修复或者增加了...
- 安装过程简单,只需将IKAnalyzer3.0GA.jar添加到项目的lib目录,配置文件IKAnalyzer.cfg.xml则应放在代码根目录或WEB-INF/classes目录下。 - 对于Lucene用户,可以快速入门通过Java代码示例进行索引和查询操作,...
IK Analyzer就是为此目的设计的,它采用了基于词典的分词方法,同时结合了动态词典和智能词组策略,能够适应不同场景下的分词需求。 IK Analyzer的核心特性包括: 1. **灵活的词典管理**:IK提供了丰富的词典管理...
IKAnalyzer2012_u6中文分词器以及手册正式版 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2017/10/29 1:41 doc -a---- 2017/10/29 1:41 414 IKAnalyzer.cfg.xml -a---- 2017/10/29 1...
IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包 IKAnalyzer2012_u6中文分词器jar包