论坛首页 Java企业应用论坛

发布IK Analyzer 3.0 中文分词器

浏览 64794 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-07-28  
希望楼主考虑下和谐的问题。比如“24口交换机”
0 请登录后投票
   发表时间:2009-07-28   最后修改:2009-07-28
powerbear 写道
希望楼主考虑下和谐的问题。比如“24口交换机”


这个考虑过了,如果要处理这个,应该在搜索的时候,对部分词语进行搜索时屏蔽,但不建议在建索引时屏蔽。

再说了,我不能限制使用者的目的啊,说不定人家就是一个成×人×网×站哩,吼吼
0 请登录后投票
   发表时间:2009-07-29  
不知道噪音词是不是添加到stopword.dic呢?
我在stopword.dic中添加了“的”这个字,然后对“明朝的那些事儿”进行分词,分次的结果是:

明朝   --------
的   --------
那些   --------
事儿   --------

怎样能够把“的”这个噪音字过虑掉呢?
0 请登录后投票
   发表时间:2009-07-29  
CodeDestiny 写道
不知道噪音词是不是添加到stopword.dic呢?
我在stopword.dic中添加了“的”这个字,然后对“明朝的那些事儿”进行分词,分次的结果是:

明朝   --------
的   --------
那些   --------
事儿   --------

怎样能够把“的”这个噪音字过虑掉呢?


添加stopword是没有用的,那个只对英文单词起作用。

如果你需要顾虑stopword,需要直接应用IKSegmentor,并加入自己stopfilter,构造一个新的Analyzer。你可以看一看lucene自带的standardAnalyzer的源代码,就知道了
0 请登录后投票
   发表时间:2009-07-29  
解释一下,IK3.0为啥不对汉字进行stopword过滤。

1。IK的核心分词类IKSegmentor的功能是最细化的识别所有的词汇,包括敏感词汇。

2.对未知的姓名,地面,专有名词,采用单字切分,这样有利于搜索。

3.对任何的汉字切分结果,IK3.0不做任何“无用词”的假设。如:在佛经中出现的梵文可能被单字切分出大量的拟声词。这些都不能被做为“无用词”过滤。

4.IK推荐用户在各种的专有领域建立自己的停止词库,并建立自己的analyzer实例。
0 请登录后投票
   发表时间:2009-08-04  
大侠,我之前用过2.0的版本,好像当时的词库文件是GBK编码的,我刚才下了3.0,发现现在的词库是utf-8的,我的问题是
1.我现在想自己添加词库,请问我应该怎么对我的单词列表进行排序呢?呵呵,来段程序最好了,java编码转换比较令人头大啊!
2.如果我想继续使用2.0作为分词器的话,请问我需要把我的词库文件的编码格式从utf-8转换为gb2312么?
多谢哈
0 请登录后投票
   发表时间:2009-08-04  
diddyrock 写道
大侠,我之前用过2.0的版本,好像当时的词库文件是GBK编码的,我刚才下了3.0,发现现在的词库是utf-8的,我的问题是
1.我现在想自己添加词库,请问我应该怎么对我的单词列表进行排序呢?呵呵,来段程序最好了,java编码转换比较令人头大啊!
2.如果我想继续使用2.0作为分词器的话,请问我需要把我的词库文件的编码格式从utf-8转换为gb2312么?
多谢哈


1.你自己添加的词库没有必要排序啊,对IK而言不论那个版本都不需要将字典排序,也不需要去除重复的词。
2.如果你想使用3.0的词库在2.0上,你可以有两种选择:A.将3.0词库转换为GBK;B.修改2.0的词典加载器,将其中的GBK改为UTF-8.网上有篇文章就有提到在linux系统下使用IK2.0如何修改字典编码的问题,可以google一下。
0 请登录后投票
   发表时间:2009-08-04  
刚才看了下代码,好像里面用了treeset,我去试试看b方案,呵呵,多谢啦!不排序是最好啦
0 请登录后投票
   发表时间:2009-08-05  
真是好东西,
lz,能不能把源码打个包,svn下不下来啊,谢谢!
0 请登录后投票
   发表时间:2009-08-08  
能不能做到这样:一次搜索两个词,把同时包含两个词的结果放在最前面,只包含一个的结果放在后面?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics