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

应网友需求发布IKAnalyzer3.1.1GA

阅读更多
应网友要求,在IK3.1.1中添加“正向最大切分算法”。

新增API更新如下:

 类org.wltea.analyzer.lucene.IKAnalyzer
 public IKAnalyzer(boolean isMaxWordLength)
说明:新构造函数,从版本V3.1.1起
参数1 :boolean isMaxWordLength , 当为true时,分词器进行最大词长切分  ;当为false时,分词器进行最细粒度切分。


 类org.wltea.analyzer.IKSegmentation

 public IKSegmentation(Reader input , boolean isMaxWordLength)
说明:IK主分词器新构造函数,从版本V3.1.1起
参数1:Reader input , 字符输入读取
参数2:boolean isMaxWordLength , 当为true时,分词器进行最大词长切分  ;当为false时,分词器进行最细粒度切分。


下载主页:http://code.google.com/p/ik-analyzer/downloads/list


下载 :IKAnalyzer3.1.1稳定版完整包.rar

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


分享到:
评论
22 楼 linliangyi2007 2009-08-11  
weh51422 写道
太感谢了!


3.1.1GA2已经发布了,请使用最新版本吧!
21 楼 weh51422 2009-08-11  
太感谢了!
20 楼 952222 2009-08-04  
linliangyi2007 写道
952222 写道
linliangyi2007 写道
952222 写道
我主要是想解决上面的那个错误的。只要分词里有交叉,NUTCH就出错,郁闷死。能帮忙看看么?


不应该吧,那CJK分词也不能用?

不管用什么分词,只要出现交叉,就有这个错误,我让别人也试了下,也是这个错误,不知道别人做的时候为什么不会有错误。我用的是NUTCH-1.0的版本。比如说搜索“互联网”,全切分成“互联”“联网”“互联网”就会有这个错误,如果用最大匹配,直接切成“互联网”就不要紧,你的那个最大匹配可以解决不少问题,但还是有少量的不好整,比如“腾讯网站”,它还是会切成“腾讯网”“网站”,于是这个错误又出来了,值得一提的是,如果结果里没有“腾讯网”的结果,也没有“网站”的结果,就不会有错,就是说找不到结果,估计是获取摘要的时候出的错。 。这个错误应该是每个人都会有的吧,难道就我有这个问题吗?难道是JDK版本?我的是jdk1.6.0_11


nutch我没用过,我猜想你是不是做高亮转换时出错了

应该不是吧,我刚把它去掉了,它也还是这个错误。唉。先放一放吧,以后再说吧。
19 楼 linliangyi2007 2009-08-04  
952222 写道
linliangyi2007 写道
952222 写道
我主要是想解决上面的那个错误的。只要分词里有交叉,NUTCH就出错,郁闷死。能帮忙看看么?


不应该吧,那CJK分词也不能用?

不管用什么分词,只要出现交叉,就有这个错误,我让别人也试了下,也是这个错误,不知道别人做的时候为什么不会有错误。我用的是NUTCH-1.0的版本。比如说搜索“互联网”,全切分成“互联”“联网”“互联网”就会有这个错误,如果用最大匹配,直接切成“互联网”就不要紧,你的那个最大匹配可以解决不少问题,但还是有少量的不好整,比如“腾讯网站”,它还是会切成“腾讯网”“网站”,于是这个错误又出来了,值得一提的是,如果结果里没有“腾讯网”的结果,也没有“网站”的结果,就不会有错,就是说找不到结果,估计是获取摘要的时候出的错。 。这个错误应该是每个人都会有的吧,难道就我有这个问题吗?难道是JDK版本?我的是jdk1.6.0_11


nutch我没用过,我猜想你是不是做高亮转换时出错了
18 楼 952222 2009-08-04  
linliangyi2007 写道
952222 写道
我主要是想解决上面的那个错误的。只要分词里有交叉,NUTCH就出错,郁闷死。能帮忙看看么?


不应该吧,那CJK分词也不能用?

不管用什么分词,只要出现交叉,就有这个错误,我让别人也试了下,也是这个错误,不知道别人做的时候为什么不会有错误。我用的是NUTCH-1.0的版本。比如说搜索“互联网”,全切分成“互联”“联网”“互联网”就会有这个错误,如果用最大匹配,直接切成“互联网”就不要紧,你的那个最大匹配可以解决不少问题,但还是有少量的不好整,比如“腾讯网站”,它还是会切成“腾讯网”“网站”,于是这个错误又出来了,值得一提的是,如果结果里没有“腾讯网”的结果,也没有“网站”的结果,就不会有错,就是说找不到结果,估计是获取摘要的时候出的错。 。这个错误应该是每个人都会有的吧,难道就我有这个问题吗?难道是JDK版本?我的是jdk1.6.0_11
17 楼 linliangyi2007 2009-08-03  
952222 写道
我主要是想解决上面的那个错误的。只要分词里有交叉,NUTCH就出错,郁闷死。能帮忙看看么?


不应该吧,那CJK分词也不能用?
16 楼 952222 2009-08-03  
我主要是想解决上面的那个错误的。只要分词里有交叉,NUTCH就出错,郁闷死。能帮忙看看么?
15 楼 linliangyi2007 2009-08-03  
952222 写道
有交叉时就有这个错误:所以我很期待你的最大匹配分词的,可还是有交叉,不过已经解决了百分之八九十的问题了,还是非常感谢呀 
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
org.apache.nutch.searcher.FetchedSegments.getSummary(FetchedSegments.java:285)
org.apache.nutch.searcher.NutchBean.getSummary(NutchBean.java:325)
org.apache.jsp.searchs_jsp._jspService(searchs_jsp.java:292)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



交叉是没有办法的,中文歧义问题目前为止都没有一个绝对有效的处理方案。

目前所有的排歧义算法都是在多个歧义结果中,根据某种算法(如;隐码模型)进行“猜测”,选出其中可能性大的,作为结果输出。这样固然结果好看了,但不利于实际的搜索匹配了。

IK的初衷是面向互联网搜索的,如果你希望分词器为你判断并输出唯一结果的,我强烈推荐
je-analyzer1.5.2,他也是正向最大切分的,而且有唯一的输出结果,应该是你想要的那种了,而且排歧义的准确率还挺高,你应该会喜欢的。
14 楼 952222 2009-08-03  
有交叉时就有这个错误:所以我很期待你的最大匹配分词的,可还是有交叉,不过已经解决了百分之八九十的问题了,还是非常感谢呀 
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
org.apache.nutch.searcher.FetchedSegments.getSummary(FetchedSegments.java:285)
org.apache.nutch.searcher.NutchBean.getSummary(NutchBean.java:325)
org.apache.jsp.searchs_jsp._jspService(searchs_jsp.java:292)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

13 楼 linliangyi2007 2009-08-03  
952222 写道

我又仔细想了下,觉得还不对。正向与反向是有很大区别的,反向明显比正向切的准,就算IK是都切出来,最后去掉被长词包含的词语,可是如果两个小词共享一个字的时候呢?比如说“和服务”,在词库里没有“和服务”这个大词的时候,如果正向切,分切成是“和服”与“务”的,如果反向切,会切成“和”与“服务”,不是这样的吗?我觉得正向切和反向切,还是有很大区别的。
除非,你的分词是用如果大两个词语共享一个字时,就都把它当成词语,比如“和服务”被拆成“和服”与“服务”,但是如果这样的话,好像又不是最大匹配切分了。

我是非常喜欢你的分词的,所以很想多了解它,更方便用它,所有问题多了,蛮不好意思的。呵呵。 


你说的没错,IK就是会分出“和服”“服务”两个词,但符合最大切分。只不过是多重的最大切分。传统的最大切分是不会管反向切分的结果的,IK的最大全切分通过正向的迭代方式,来模拟反向切分的效果。所谓“最大切分”,是指切分处理的词元以大的为准,如“中华人民共和国”中就含有“中华”“人民”“共和”“共和国”等词语,在最大切分中不会被输出。

关于“和服”“服务”的歧义,IK的无法在分词阶段解决它;目前的补偿是使用IKQueryParser在搜索阶段来弥补的。
12 楼 952222 2009-08-03  
我现在理解你说的啦。就是“和服务”这类词就拆成“和服”与“服务”。只有一个词语被另外一个词语完成包含的时候才被过滤掉。

我做NUTCH的时候,如果两个词语有交错部分,最大切分不过滤掉就会产生错误,所以我很想把它过滤掉, 。虽然这样有失什么东西。郁闷,不知道别人在做NUTCH的时候有没有这个错误。不能有交叉词,我晕。也不知道是什么原因,不知道是不是NUTCH的BUG,哈哈哈哈。
11 楼 952222 2009-08-03  
952222 写道
linliangyi2007 写道
952222 写道
我提个小建议,有空再出个版本,逆向最大匹配。传说它比正向最大匹配正确度高很多。嘿嘿。希望大哥能搞下,非常期待!!!!!


对IK而言,实际上正方向效果是一样的,因为它能切分出所有的词汇啊。

最大匹配只是在原有的切分上,过滤掉那些长度较小的、已经被更长的词完全覆盖的词语;
如果两个词语有交错部分,最大切分是不会过滤掉的,因此不需要做反向的最大匹配。

原来是这样呀。Good!真有创意。支持...

我又仔细想了下,觉得还不对。正向与反向是有很大区别的,反向明显比正向切的准,就算IK是都切出来,最后去掉被长词包含的词语,可是如果两个小词共享一个字的时候呢?比如说“和服务”,在词库里没有“和服务”这个大词的时候,如果正向切,分切成是“和服”与“务”的,如果反向切,会切成“和”与“服务”,不是这样的吗?我觉得正向切和反向切,还是有很大区别的。
除非,你的分词是用如果大两个词语共享一个字时,就都把它当成词语,比如“和服务”被拆成“和服”与“服务”,但是如果这样的话,好像又不是最大匹配切分了。

我是非常喜欢你的分词的,所以很想多了解它,更方便用它,所有问题多了,蛮不好意思的。呵呵。 
10 楼 linliangyi2007 2009-08-02  
952222 写道
还有一个问题,我的词典有相同的词,需要去掉吗?还是IK会处理的。好难去呀,麻烦死了。      


没关系的,IK在词典载入的时候,会排除重复的词语。
9 楼 952222 2009-08-02  
还有一个问题,我的词典有相同的词,需要去掉吗?还是IK会处理的。好难去呀,麻烦死了。      
8 楼 952222 2009-08-02  
linliangyi2007 写道
952222 写道
我提个小建议,有空再出个版本,逆向最大匹配。传说它比正向最大匹配正确度高很多。嘿嘿。希望大哥能搞下,非常期待!!!!!


对IK而言,实际上正方向效果是一样的,因为它能切分出所有的词汇啊。

最大匹配只是在原有的切分上,过滤掉那些长度较小的、已经被更长的词完全覆盖的词语;
如果两个词语有交错部分,最大切分是不会过滤掉的,因此不需要做反向的最大匹配。

原来是这样呀。Good!真有创意。支持...
7 楼 xugq035 2009-08-02  
暂时没用上,不过感觉迟早会用,呵呵
6 楼 linliangyi2007 2009-08-01  
952222 写道
我提个小建议,有空再出个版本,逆向最大匹配。传说它比正向最大匹配正确度高很多。嘿嘿。希望大哥能搞下,非常期待!!!!!


对IK而言,实际上正方向效果是一样的,因为它能切分出所有的词汇啊。

最大匹配只是在原有的切分上,过滤掉那些长度较小的、已经被更长的词完全覆盖的词语;
如果两个词语有交错部分,最大切分是不会过滤掉的,因此不需要做反向的最大匹配。
5 楼 952222 2009-08-01  
我提个小建议,有空再出个版本,逆向最大匹配。传说它比正向最大匹配正确度高很多。嘿嘿。希望大哥能搞下,非常期待!!!!!
4 楼 952222 2009-08-01  
我成功用上了,再次来谢恩。谢谢谢谢谢谢谢!!!
3 楼 952222 2009-08-01  
已经出来啦!!!好快呀。谢谢啦。我急需要这东西呢

相关推荐

    IKAnalyzer3.1.1中文分词器

    IKAnalyzer3.1.1中文分词器是针对中文文本处理的一款强大工具,主要用于中文文本的分词。在自然语言处理、搜索引擎构建、信息检索等领域,分词是基础且关键的一步,因为中文没有明显的空格来区分单词,所以需要通过...

    IKAnalyzer3.1.1Stable_AllInOne

    IKAnalyzer3.1.1Stable_AllInOne是一款流行的中文分词工具,广泛应用于信息检索、文本挖掘等领域。它是基于Java开发的,旨在提供高效、灵活的中文分词解决方案。这款分词器以其稳定性、准确性和易用性而受到开发者们...

    IKAnalyzer3.1.6GA完整包

    IK Analyzer 是一个开源的,基于java 语言开发的轻量级的中文分词工具包。从2006 年12 月推出1.0 版开始, IKAnalyzer 已经推出了3 个大版本。最初,它是以开源项目 Luence 为应用主体的,结合词典分词和文法分析...

    IKAnalyzer3.2.5Stable.jar

    IKAnalyzer的设计理念是易于扩展和配置,可以根据实际需求定制词典,支持热更新,使得在运行时可以动态添加或修改词典内容。它的核心特点是支持多种分词模式,包括精确模式、全模式、快速模式以及智能模糊模式,能...

    IKAnalyzer3.1.6GA.jar下载

    IKAnalyzer3.1.6GA.jar IKAnalyzer3.1.6GA.jar

    IKAnalyzer3.1.2GA_AllInOne

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词...

    IKAnalyzer2012完整分发包

    IK Analyzer安装包包含: 1. 《IKAnalyzer中文分词器V2012使用手册》(即本文档) 2. IKAnalyzer2012.jar(主jar包) 3. IKAnalyzer.cfg.xml(分词器扩展配置文件) 4. stopword.dic(停止词典) 5. LICENSE....

    IKAnalyzer6.5.0.jar

    IK Analyzer的名字来源于“Intelligent Keyword”(智能关键词),它的设计理念是通过灵活的配置来满足不同场景下的分词需求。 IK Analyzer的6.5.0版本是其发展过程中的一个重要里程碑,它在前一版本的基础上进行了...

    IKAnalyzer 支持高版本最新Lucene 5.x、6.x、7.x

    - 使用IKAnalyzer配合Solr,可以构建企业级的搜索应用,满足大规模数据的高效检索需求。 5. **安装和使用IKAnalyzer**: - 将IKAnalyzer的jar包添加到项目的类路径中,然后在配置文件中指定使用IKAnalyzer作为...

    IKAnalyzer配置文件、扩展词典和停用词词典.zip

    IKAnalyzer是一款广泛应用于Java环境中的中文分词器,它的全称是"Intelligent Chinese Analyzer for Java"。这个压缩包文件包含的是IKAnalyzer的配置文件、扩展词典和停用词词典,这些组件对于优化IKAnalyzer的性能...

    IKAnalyzer2012FF_hf1.zip

    标题中的"IKAnalyzer2012FF_hf1.zip"指的是IK Analyzer的2012年最终版(Final)的高频率更新1(Hot Fix 1)。IK Analyzer是一款开源的、基于Java语言开发的轻量级中文分词器,主要用于Java环境下对中文文本的分词...

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    ikanalyzer 提供了丰富的扩展性,用户可以根据自己的需求定制词典,支持自定义停用词、同义词等,以满足不同场景的分词需求。同时,ikanalyzer 还提供了全模式和最细粒度模式两种分词策略,全模式尽可能切出更多的词...

    IKAnalyzer-5.0.jar及solr-analyzer-extra-5.3.jar

    在实际应用中,用户可能需要配置Solr的schema.xml文件,指定使用IKAnalyzer作为默认的字段分析器,同时根据需求选择合适的分词策略。同时,通过solr-analyzer-extra-5.3.jar,用户还可以集成更多的文本处理功能,如...

    IK Analyzer 2012FF_hf1.7z

    "2012FF_hf1.7z" 是IK Analyzer的一个特定版本,可能包含了优化和改进,适应了2012年及之后的技术需求。 在Solr中,分词器扮演着至关重要的角色。它们负责将输入的中文文本分解成一系列的词汇单元,这些单元通常被...

    Lucene的IK Analyzer 3.0 中文分词器 全解

    - 安装过程简单,只需将IKAnalyzer3.0GA.jar添加到项目的lib目录,配置文件IKAnalyzer.cfg.xml则应放在代码根目录或WEB-INF/classes目录下。 - 对于Lucene用户,可以快速入门通过Java代码示例进行索引和查询操作,...

    IKAnalyzer2012FF_u1.jar下载

    IK Analyzer就是为此目的设计的,它采用了基于词典的分词方法,同时结合了动态词典和智能词组策略,能够适应不同场景下的分词需求。 IK Analyzer的核心特性包括: 1. **灵活的词典管理**:IK提供了丰富的词典管理...

    IKAnalyzer2012_u6中文分词器以及手册正式版.zip

    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...

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

    1. **灵活的词典管理**:IKAnalyzer支持动态词典加载,用户可以根据实际需求自定义词典,增加或删除词汇。 2. **智能的词语识别**:采用了正向最大匹配(MaxMatch)和逆向最大匹配(Reverse MaxMatch)两种策略,...

Global site tag (gtag.js) - Google Analytics