2007-03-11
基于词典的最大匹配的Lucene中文分词程序
把自己之前完成的基于词典的最大匹配的中文分词程序修改成基于Lucene。其中包括了3种词典的组织形式:简单顺序存储SimpleDictionary,首字Hash词典HashDictionary,双重Hash词典;例外实现了两种分词算法:正向最大匹配MaxMatchSegment与反向最大匹配分词ReverseMaxMatchSegment;最后使用使只需根据需要配置spring的配置文件即可选择词典的组织方式与分词算法组装成为分词程序。
运行所需:spring-core.jar lucene-core.jar
希望大家能试用一下我的分词程序,指出我设计的不足,共同学习。
接下来的目标:完成1、寻找更优的词典组织 2、统计识别未登录词 3、人名识别 4、歧义消除
- 17:56
- 浏览 (8697)
- 论坛浏览 (11893)
- 评论 (12)
- 分类: 分词与索引
- 相关推荐
评论
linliangyi2007
2007-08-27
回复
修订版更新了
IKAnalyzer V2.0.2 Lucene中文分词器下载地址 : http://download.csdn.net/source/236243
IKAnalyzer V2.0.2 Lucene中文分词器下载地址 : http://download.csdn.net/source/236243
linliangyi2007 写道
http://download.csdn.net/source/227957
这个分词器也是基于正向切分算法的,跟楼主交流一下
这个分词器也是基于正向切分算法的,跟楼主交流一下
应该是我向你多学习才对,对很多算法的理解不是很透彻……
linliangyi2007
2007-08-15
回复
http://download.csdn.net/source/227957
这个分词器也是基于正向切分算法的,跟楼主交流一下
这个分词器也是基于正向切分算法的,跟楼主交流一下
delphixf 写道
DictionaryUtil<HashDictionary> util=new Dictionary<HashDictionary>();
HashDictionary dic=util.readDictionary("HashDic.stu");
dic.insertWord("非负权图");
在HashDictionary中插入新词“非负权图”,再次运用这个字典分词,结果:
基于,0,2)
(非,2,3)
(负,3,4)
(权,4,5)
(图,5,6)
(最短路径,6,10)
(算法,10,12)
(中文,12,14)
(分词的,14,17)
(研究,17,19)
楼主!请教
HashDictionary dic=util.readDictionary("HashDic.stu");
dic.insertWord("非负权图");
在HashDictionary中插入新词“非负权图”,再次运用这个字典分词,结果:
基于,0,2)
(非,2,3)
(负,3,4)
(权,4,5)
(图,5,6)
(最短路径,6,10)
(算法,10,12)
(中文,12,14)
(分词的,14,17)
(研究,17,19)
楼主!请教
我在我最新的版本上试了一下是可以识别,可能是我在发布这个版本的代码有误,对你造成不便,实在是对不起。我把我新版本的代码上传了,麻烦你更新一下,谢谢
amigobot 写道
为什么要基于字典分词呢? 难道就为了节省空间
(最短路径,6,10)
如果我查 最短 就会没有返回, 这难道对吗? 反正google不是这样的。
我还是倾向于一元分词, 更精确。
(最短路径,6,10)
如果我查 最短 就会没有返回, 这难道对吗? 反正google不是这样的。
我还是倾向于一元分词, 更精确。
楼上说的没错,基于词典的分词用于建立索引时不能很好地将所有内容都涵盖,所以后来我对算法做了一下改进,在基于词典的基础上加入了一元分词来希望把内容都涵盖进去。
PS:基于词典的分词主要是想用在对查询语句进行切分。而且中文分词不止应用在搜索引擎领域,还能用在机械翻译等方面,这样基于词典分词就有意义了
为什么要基于字典分词呢? 难道就为了节省空间
(最短路径,6,10)
如果我查 最短 就会没有返回, 这难道对吗? 反正google不是这样的。
我还是倾向于一元分词, 更精确。
(最短路径,6,10)
如果我查 最短 就会没有返回, 这难道对吗? 反正google不是这样的。
我还是倾向于一元分词, 更精确。
DictionaryUtil<HashDictionary> util=new Dictionary<HashDictionary>();
HashDictionary dic=util.readDictionary("HashDic.stu");
dic.insertWord("非负权图");
在HashDictionary中插入新词“非负权图”,再次运用这个字典分词,结果:
基于,0,2)
(非,2,3)
(负,3,4)
(权,4,5)
(图,5,6)
(最短路径,6,10)
(算法,10,12)
(中文,12,14)
(分词的,14,17)
(研究,17,19)
楼主!请教
HashDictionary dic=util.readDictionary("HashDic.stu");
dic.insertWord("非负权图");
在HashDictionary中插入新词“非负权图”,再次运用这个字典分词,结果:
基于,0,2)
(非,2,3)
(负,3,4)
(权,4,5)
(图,5,6)
(最短路径,6,10)
(算法,10,12)
(中文,12,14)
(分词的,14,17)
(研究,17,19)
楼主!请教
delphixf 写道
楼主,字典文件。您的格式为.stu。请问如何打开。
词典文件是我用Java ObjectWriter将整个词典类实例序列化后写入的文件,用户也可以使用自己自定义txt文件作为词典,使用方法如下:
DictionaryImpl dic=new HashDictionary();
dic.loadDictionary("词典.txt");
另外用户也可以使用我预先定义好的文件stu
DictionaryUtil<HashDictionary> util=new Dictionary<HashDictionary>();
HashDictionary dic=util.readDictionary("HashDic.stu");
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子
- 浏览: 31283 次
- 性别:

- 来自: 广东广州

- 详细资料
搜索本博客
我的相册
Inter
共 3 张
共 3 张
最近加入圈子
最新评论
-
初试Hibernate Search
test_root 写道如果我的数据库英字符集的,中文内容保存后都是乱码, 我该 ...
-- by billgmh -
初试Hibernate Search
如果我的数据库英字符集的,中文内容保存后都是乱码, 我该如何实例化org.apa ...
-- by test_root -
初试Hibernate Search
请问用hibernate search后,如何实现分页? 能把相关的分页代码贴出 ...
-- by test_root -
初试Hibernate Search
太缺乏项目经验了,这么多达人,看这些东西好像还有些懵懂的意思一直想做点什么,真是 ...
-- by andy54321 -
初试Hibernate Search
还是compass好一些
-- by neptune






评论排行榜