
2009年8月13日
1. 基本介绍:
paoding :Lucene中文分词“庖丁解牛” Paoding Analysis
imdict :imdict智能词典所采用的智能中文分词程序
mmseg4j : 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器
ik :采用了特有的“正向迭代最细粒度切分算法“,多子处理器分析模式
2. 开发者及开发活跃度:
paoding :qieqie.wang, google code 上最后一次代码提交:2008-06-12,svn 版本号 132
imdict :XiaoPingGao, 进入了 lucene contribute,lucene trunk 中 contrib/analyzers/smartcn/ 最后一次提交:2009-07-24,
mmseg4j :chenlb2008,google code 中 2009-08-03 (昨天),版本号 57,log为:mmseg4j-1.7 创建分支
ik :linliangyi2005,google code 中 2009-07-31,版本号 41
3. 用户自定义词库:
paoding :支持不限制个数的用户自定义词库,纯文本格式,一行一词,使用后台线程检测词库的更新,自动编译更新过的词库到二进制版本,并加载
imdict :暂时不支持用户自定义词库。但 原版 ICTCLAS 支持。支持用户自定义 stop words
mmseg4j :自带sogou词库,支持名为 wordsxxx.dic, utf8文本格式的用户自定义词库,一行一词。不支持自动检测。 -Dmmseg.dic.path
ik : 支持api级的用户词库加载,和配置级的词库文件指定,无 BOM 的 UTF-8 编码,\r\n 分割。不支持自动检测。
4. 速度(基于官方介绍,非自己测试)
paoding :在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字
imdict :483.64 (字节/秒),259517(汉字/秒)
mmseg4j : complex 1200kb/s左右, simple 1900kb/s左右
ik :具有50万字/秒的高速处理能力
5. 算法和代码复杂度
paoding :svn src 目录一共1.3M,6个properties文件,48个java文件,6895 行。使用不用的 Knife 切不同类型的流,不算很复杂。
imdict :词库 6.7M(这个词库是必须的),src 目录 152k,20个java文件,2399行。使用 ICTCLAS HHMM隐马尔科夫模型,“利用大量语料库的训练来统计汉语词汇的词频和跳转概率,从而根据这些统计结果对整个汉语句子计算最似然(likelihood)的切分”
mmseg4j : svn src 目录一共 132k,23个java文件,2089行。MMSeg 算法 ,有点复杂。
ik : svn src 目录一共6.6M(词典文件也在里面),22个java文件,4217行。多子处理器分析,跟paoding类似,歧义分析算法还没有弄明白。
6. 文档
paoding :几乎无。代码里有一些注释,但因为实现比较复杂,读代码还是有一些难度的。
imdict : 几乎无。 ICTCLAS 也没有详细的文档,HHMM隐马尔科夫模型的数学性太强,不太好理解。
mmseg4j : MMSeg 算法 是英文的,但原理比较简单。实现也比较清晰。
ik : 有一个pdf使用手册,里面有使用示例和配置说明。
7. 其它
paoding :引入隐喻,设计比较合理。search 1.0 版本就用的这个。主要优势在于原生支持词库更新检测。主要劣势为作者已经不更新甚至不维护了。
imdict :进入了 lucene trunk,原版 ictclas 在各种评测中都有不错的表现,有坚实的理论基础,不是个人山寨。缺点为暂时不支持用户词库。
mmseg4j : 在complex基础上实现了最多分词(max-word),但是还不成熟,还有很多需要改进的地方。
ik : 针对Lucene全文检索优化的查询分析器IKQueryParser
8. 结论
个人觉得,可以在 mmseg4j 和 paoding 中选一个。关于这两个分词效果的对比,可以参考:
http://blog.chenlb.com/2009/04/mmseg4j-max-word-segment-compare-with-paoding-in-effect.html
或者自己再包装一下,将 paoding 的词库更新检测做一个单独的模块实现,然后就可以在所有基于词库的分词算法之间无缝切换了。
ps,对不同的 field 使用不同的分词器是一个可以考虑的方法。比如 tag 字段,就应该使用一个最简单的分词器,按空格分词就可以了。
posted @ 2009-08-13 15:55 Eric Yao 阅读(269) 评论(0)
编辑

2008年8月28日
获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;
获取值:
文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio: $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//填充内容
多选框checkbox: $("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select: $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
posted @ 2008-08-28 15:51 Eric Yao 阅读(115) 评论(1)
编辑

2008年8月19日
1. Snippet Compiler:用来编写、编译和运行代码的基于Windows的小型应用程序
2. Microsoft Source Analysis for C#:是一款C#代码规范检查工具
3.GhostDoc:Visual Studio的一个免费插件
4.Sandcastle:帮助文档生成工具
5.Nunit:开放源代码单元测试框架
6.MyGeneration :代码生成工具
7.Reflector for .NET:类浏览器和反编译器
8.The Regulator:生成和测试正则表达式
9.LINQPad:集成在.NET编程语言中的一种特性
10.NAnt:基于 .NET 的生成工具
posted @ 2008-08-19 10:56 Eric Yao 阅读(93) 评论(0)
编辑

2008年3月22日
摘要: 经过微软.net Framework 2.0的革新,.net平台的开发越来越精彩。收集了一些基于.net开发的n个项目,一方面为新手提供有价值学习资源,培养起软件开发的乐趣,另一方面共勉已从事.net领域工作多年并有明确发展目标的同仁,提高自己,更上一层楼。
阅读全文
posted @ 2008-03-22 14:55 Eric Yao 阅读(223) 评论(0)
编辑
摘要: 目需要在线HTML编辑器,就选择了FCKeditor,目前最新是2.5Bate,不过稳定点定还是选了2.4.3,而.net的控件还是2.2没变过 ,大概如何使用见我之前的“FCKeditor 2.3 在ASP.NET中文件上传路径的设置”.
阅读全文
posted @ 2008-03-22 12:34 Eric Yao 阅读(2165) 评论(0)
编辑

2007年11月29日
摘要: CMS 系统在网站建设中的重要性越来越不容人忽视,全球知名和非知名 CMS 系统多不胜数,而 CMS 系统的优与劣往往并不象厂商宣传的那样,好的 CMS 系统并不一定功能繁多,你最终需要根据自己网站的实际需求选定 CMS,比如,如果你是一个小型的企业网站,选择 Plone 就不合适,虽然 Plone 很优秀,但想想看,网易是基于 Plone 的,就应该知道 Plone 的部署与配置肯定简单不了。
阅读全文
posted @ 2007-11-29 16:25 Eric Yao 阅读(895) 评论(0)
编辑

2007年11月24日
摘要: 现在很多网站都自以为掌握了网站优化技巧,用了些很简单的优化方法就以为万事大吉了,而在2-3个月后发现网站在搜索引擎中更本无法找到了,也就是被屏蔽了,这时候才想起来找原因,可整个网站检查下来发现根本没有什么问题,实在看不出问题出来哪里,其实很多人忘了多域名指向这个网站优化中容易忽视的问题.
现在注册一个域名都很便宜,有些网站只需要58元/年即可注册一个国际顶级域名,实在算是低成本了,于是有些网站主就会注册大量和自己网站主域名相关的域名,可是又没有精力制作如此多版本的网站,最后一般的解决方案基本就是全部指向一个网站,觉得这样既省事有能增加被搜索到的机会,就像一个人有了很多个名字一样.
阅读全文
posted @ 2007-11-24 15:38 Eric Yao 阅读(160) 评论(0)
编辑

2007年11月22日
摘要: 默认情况下,Windows有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这些端口连上你的电脑。 为了让你的系统变为铜墙铁壁,应该封闭这些端口,
阅读全文
posted @ 2007-11-22 10:43 Eric Yao 阅读(333) 评论(0)
编辑

2007年10月31日
摘要: 虽然自己一直都是做网站开发的,没做过什么软件开发,但使用过的软件也不算少。渐渐的发现有些软件真的功能强大,操作性太复杂,于是该软件真的变成了所谓的专业软件,只有经过专业培训的人才能使用。问题是如果不是有很特别的需要,又有多少人真的肯或觉得值得为使用该软件而去花时间。
阅读全文
posted @ 2007-10-31 18:05 Eric Yao 阅读(103) 评论(1)
编辑