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

应网友需求发布IKAnalyzer3.1.1GA2

阅读更多
3.1.1GA2版本变更:
1.修订了大文本处理时,缓冲区边界指针位置不正确的异常
2.添加“正向最大切分算法”
新增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时,分词器进行最细粒度切分。


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

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


分享到:
评论
46 楼 linliangyi2007 2009-08-18  
xyf_84 写道
楼主啊,包中没有说明,系统需求啊!

系统需求? 没什么系统需求啊,你的服务器内存不至于小于64M吧
45 楼 xyf_84 2009-08-18  
楼主啊,包中没有说明,系统需求啊!
44 楼 linliangyi2007 2009-08-17  
rongxh7 写道
楼主,有没有试过,把词典记录保存在数据库中,用读数据库来代码读文件,两者速度怎么样?


没试过,不用应该不会太慢,再说了,在服务器启动时,花上10秒中读取词典,应该是能够忍受的问题
43 楼 rongxh7 2009-08-17  
楼主,有没有试过,把词典记录保存在数据库中,用读数据库来代码读文件,两者速度怎么样?
42 楼 linliangyi2007 2009-08-15  
poppk 写道
linliangyi2007 写道
poppk 写道
目前带词性分析标注的只有中科院ictclas衍生出来的几个开源版本,java的只有ictclas4j,ictclas4j还是半拉子工程,bug很多,貌似作者也小一年不更新了。
楼主可以考虑把这个加入进来,就可以在目前几个主流的开源中文分词包中脱颖而出了。


老兄看了一直很关心分词啊,居然被你发现有一年没更新了,呵呵


最近在做搜索这块的工作,所以比较关心。 

很多场合需要对关键字进行词性分析,所以对这个功能点比较关注了。

否则你这个和庖丁有什么区别呢?  效率,速度,准确率?


要声明一下,IKAnalyzer是比paoding更早问世的一个中文分词器,因为它的存在不需要和paoding做比较吧,何况特性还是很明显的。
41 楼 linliangyi2007 2009-08-14  
rongxh7 写道
IK3的词典真丰富,几乎包含了汉语中所有的词和习语,我有点好奇:楼主的词典应该不是自己一个一个写上去的,那从哪里得来的?


词典的来源有n个地方,多是朋友从不同渠道搜集的,因此良莠不齐,需要整理的,而且相当的辛苦啊。整理起来比写分词器本身痛苦多了
40 楼 rongxh7 2009-08-14  
IK3的词典真丰富,几乎包含了汉语中所有的词和习语,我有点好奇:楼主的词典应该不是自己一个一个写上去的,那从哪里得来的?
39 楼 poppk 2009-08-14  
基于ictclas的分词

如何观测日全食
如何/r 观测/vn 日全食/n

r 代词
vn 名动词
n 名词

大概就是这样
38 楼 poppk 2009-08-14  
上面的"而不是,"应该是
而不是 如何观测。
37 楼 poppk 2009-08-14  
linliangyi2007 写道
poppk 写道
linliangyi2007 写道
poppk 写道
目前带词性分析标注的只有中科院ictclas衍生出来的几个开源版本,java的只有ictclas4j,ictclas4j还是半拉子工程,bug很多,貌似作者也小一年不更新了。
楼主可以考虑把这个加入进来,就可以在目前几个主流的开源中文分词包中脱颖而出了。


老兄看了一直很关心分词啊,居然被你发现有一年没更新了,呵呵


最近在做搜索这块的工作,所以比较关心。 

很多场合需要对关键字进行词性分析,所以对这个功能点比较关注了。

否则你这个和庖丁有什么区别呢?  效率,速度,准确率?


说说你对词性的用途吧,我好有的放矢。
IK跟paoding的区别还是很多的,呵呵,这在搜索过程中(尤其使用IKQueryParser后)是能感受到的


比如:"如何观测日全食","我想买一个好的橱柜"

搜索引擎可以分析出来,关键字真正包含的侧重点在哪,毕竟这种傻瓜式的输入,要求整句命中不太现实
但是第一个,搜索引擎该知道,用户想搜 "观测日全食" 相关,而不是,第二个,用户想搜的是 "橱柜" 相关,而不是  "买 好的"

36 楼 poppk 2009-08-14  
tangfl 写道
compareAnalyzers: (skey) : Y550A-TSI(H)(灰白蓝红)
paoding: (0 ms)
y | 550 | tsi | a-tsi | 550a-tsi | y550a-tsi | h | 灰白 | 蓝红 |
-imdict: (1 ms)
y | 550 | a | tsi | h | 灰白 | 蓝 | 红 |
-ik-max: (0 ms)
y550a-tsi | 550 | h | 灰白 | 白 | 蓝 | 红 |
-ikmost: (0 ms)
y550a-tsi | 550 | h | 灰白 | 白 | 蓝 | 红 |
-mmseg4j: (1 ms)
y | 550 | a | tsi | h | 灰白 | 蓝 | 红 |

关于单词之间的连接符,是不是可以考虑单独处理一下?


Y550A-TSI(H)(灰白蓝红)
ictclas4j:
Y550A-TSI/nx (/w H/nx )/w (/w 灰白/z 蓝/a 红/a )/w

个人感觉对这种  产品型号 的处理,庖丁做的最好,尤其在用户只记得部分型号,试探性输入时
35 楼 linliangyi2007 2009-08-14  
poppk 写道
linliangyi2007 写道
poppk 写道
目前带词性分析标注的只有中科院ictclas衍生出来的几个开源版本,java的只有ictclas4j,ictclas4j还是半拉子工程,bug很多,貌似作者也小一年不更新了。
楼主可以考虑把这个加入进来,就可以在目前几个主流的开源中文分词包中脱颖而出了。


老兄看了一直很关心分词啊,居然被你发现有一年没更新了,呵呵


最近在做搜索这块的工作,所以比较关心。 

很多场合需要对关键字进行词性分析,所以对这个功能点比较关注了。

否则你这个和庖丁有什么区别呢?  效率,速度,准确率?


说说你对词性的用途吧,我好有的放矢。
IK跟paoding的区别还是很多的,呵呵,这在搜索过程中(尤其使用IKQueryParser后)是能感受到的
34 楼 poppk 2009-08-14  
linliangyi2007 写道
poppk 写道
目前带词性分析标注的只有中科院ictclas衍生出来的几个开源版本,java的只有ictclas4j,ictclas4j还是半拉子工程,bug很多,貌似作者也小一年不更新了。
楼主可以考虑把这个加入进来,就可以在目前几个主流的开源中文分词包中脱颖而出了。


老兄看了一直很关心分词啊,居然被你发现有一年没更新了,呵呵


最近在做搜索这块的工作,所以比较关心。 

很多场合需要对关键字进行词性分析,所以对这个功能点比较关注了。

否则你这个和庖丁有什么区别呢?  效率,速度,准确率?
33 楼 andylau8250 2009-08-13  
原來這是大家的困擾= ="
感謝你分享的經驗!
32 楼 linliangyi2007 2009-08-13  
andylau8250 写道
你好!
可否根你請教一下關於lucene的相關問題!

我在建立索引及合併上有幾個問題!
1.假設我每增加一篇文章,我會去增加索引,然後再合併(原本的索引檔)!
在修改文章上的處理方式為,先刪除該文章的索引,再將其建立及合併一次!
但是這樣似乎效率上是不太好的! 所以我改成將這些新的文章或修改的文章,
先記錄到資料庫!要搜尋時,再去將這些文章建立索引及合併!

2.我找了一下lucene的api似乎不能直接對索引檔增加一筆索引!
只能利用合併的方式!所以我用上述方式,記在資料庫中,如果資料太多,
好像在效率上也不是太好!

想請問你,對於建立索引這方面有什麼看法!
或是我的理解有錯! lucene可以增加單筆索引?

如果您知道有什麼好方法,請您指教一下! 謝謝!


这个问题是困扰了很多lucene使用者。目前,在我设计的网站中,采用定时批量更新方式,即,将新增或修改的数据加入一个待处理的队列,而后在固定时间间隔进行更新,固定时间可以根据应用的时效性定为 5分钟-10分钟-30分钟-1个小时。
并在每天的凌晨1点进行索引的合并整理。

要注意,每次查询lucene的时候,必须使用新的IndexSearcher实例,这样才能把新增的文章包括进来。
31 楼 andylau8250 2009-08-13  
你好!
可否根你請教一下關於lucene的相關問題!

我在建立索引及合併上有幾個問題!
1.假設我每增加一篇文章,我會去增加索引,然後再合併(原本的索引檔)!
在修改文章上的處理方式為,先刪除該文章的索引,再將其建立及合併一次!
但是這樣似乎效率上是不太好的! 所以我改成將這些新的文章或修改的文章,
先記錄到資料庫!要搜尋時,再去將這些文章建立索引及合併!

2.我找了一下lucene的api似乎不能直接對索引檔增加一筆索引!
只能利用合併的方式!所以我用上述方式,記在資料庫中,如果資料太多,
好像在效率上也不是太好!

想請問你,對於建立索引這方面有什麼看法!
或是我的理解有錯! lucene可以增加單筆索引?

如果您知道有什麼好方法,請您指教一下! 謝謝!
30 楼 linliangyi2007 2009-08-13  
tangfl 写道


当字母连续出现超过一定的阈值,比如3个字母的时候,看起来像是一个英文单词了,不知道是否可以也单独切分出一个结果来呢?


实际上,之所以连续切分,是按照英文的使用习惯来进行的,我们不应该去假设某种特定的短语模型。分词器要处理的是针对现实中,人们的语言习惯。

分词器是一种自然语言处理过程,同机器语言处理有一定的类型之处。在机器语言上,我们会限制语言的语法,如在Java中
你只能像这样 “int count = 0;”去申明变量,如果你要写成“ count : int ”那么Java编译器将报错。自然语言则相对要求的比较宽松,但也必须遵循一定的日常用语规范。

要分离字母和数字是简单的,你可以参考IKAnalyzer2.0.2,它就是这么做的。

29 楼 tangfl 2009-08-13  
compareAnalyzers: (skey) : Y550A-TSI(H)(灰白蓝红)
paoding: (0 ms)
y | 550 | tsi | a-tsi | 550a-tsi | y550a-tsi | h | 灰白 | 蓝红 |
-imdict: (1 ms)
y | 550 | a | tsi | h | 灰白 | 蓝 | 红 |
-ik-max: (0 ms)
y550a-tsi | 550 | h | 灰白 | 白 | 蓝 | 红 |
-ikmost: (0 ms)
y550a-tsi | 550 | h | 灰白 | 白 | 蓝 | 红 |
-mmseg4j: (1 ms)
y | 550 | a | tsi | h | 灰白 | 蓝 | 红 |

关于单词之间的连接符,是不是可以考虑单独处理一下?
28 楼 tangfl 2009-08-13  
linliangyi2007 写道
tangfl 写道
compareAnalyzers: (skey) : A236Kitty
paoding: (0 ms)
236 | kitty | 236kitty | a236kitty |
-imdict: (0 ms)
a | 236 | kitti |
-ik-max: (1 ms)
a236kitty | 236 |
-ikmost: (0 ms)
a236kitty | 236 |
-mmseg4j: (0 ms)
a | 236 | kitty |

在字母和数字混排的时候(品牌,型号等等,比较常见),ik 的处理逻辑是怎样的?我觉得 paoding 的结果似乎更接近搜索引擎的需求一些


IK的处理分为两个部分;
1.对英文的处理,这部分完成是采用了Lucene的 StandardAnalyzer 的分词策略,将数字和字母连接一起。
2.对数词的处理,则是会将数词单独切分。
因此就出现了 a236kitty | 236 |


当字母连续出现超过一定的阈值,比如3个字母的时候,看起来像是一个英文单词了,不知道是否可以也单独切分出一个结果来呢?
27 楼 linliangyi2007 2009-08-12  
andylau8250 写道
你好! 想請問個問題!
在自訂的辭典中,
是不是英文部份會沒有效果!
因為我在自己的英文辭典中,加入了 "absolute expression"
但是斷詞器還是把它拆成 "absolute" 、 "expression" 兩個了!

想請問,是否斷詞系統沒有特別對英文作匹配處理!
還是你有提供什麼api輔助?


是的,对英文处理不采用词典,而采用分隔符识别,因此添加词典是无效的

相关推荐

Global site tag (gtag.js) - Google Analytics