自然语言
文章平均质量分 65
sinboy
http://hi.csdn.net/sinboy
展开
-
ICTCLAS分词系统研究(一)
ICTClAS分词系统是由中科院计算所的张华平、刘群所开发的一套获得广泛好评的分词系统,难能可贵的是该版的Free版开放了源代码,为我们很多初学者提供了宝贵的学习材料。 但有一点不完美的是,该源代码没有配套的文档,阅读起来可能有一定的障碍,尤其是对C/C++不熟的人来说.本人就一直用Java/VB作为主要的开发语言,C/C++上大学时倒是学过,不过工作之后一直没有再使原创 2006-03-12 21:56:00 · 27359 阅读 · 30 评论 -
ICTCLAS分词系统研究(八)--生成最终分词结果
经过人名、地名等未登陆词的识别之后,再次生成二叉分词图表,求取N-最短路径。为何再次执行这样的循环,是因为在得到初分结果后又增加了新的节点(比如:人名或地名)到结果链表中,需要再次求取最短路径:经过优化后的二叉分词图表: 1 2 3原创 2007-06-04 14:07:00 · 7043 阅读 · 2 评论 -
ICTCLAS分词系统研究(六)--得到初分结果
仍然以“他说的确实在理”为例,经过NshortPath的处理后,我们可以得到N条最短二叉分词路径,如下:初次生成的分词图表: 1 2 3 4 5 6原创 2007-06-04 11:55:00 · 7729 阅读 · 0 评论 -
ICTCLAS分词系统研究(九)--对最终结果做优化调整
在研究(八)中,我们得到了最终的分词结果了,好兴奋呀。不过,还有临门一脚不能忘了,对一些特殊情况做处理。主要是对叠词(相邻的两个字或词一样)及个别词性进行合并处理。比如,以“一片片的白云很好看”,他的最终分词结果是: 经过优化后的分词结果: 序号 分词结果原创 2007-06-04 14:17:00 · 5950 阅读 · 0 评论 -
Lucene In Depth(1)--介绍
摘要Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎原创 2007-08-15 20:34:00 · 3780 阅读 · 4 评论 -
重拾ICTCLAS,继续学习
从去年3月份开始,经过一段时间的认真研究学习ICTCLAS,把学习的心得发表在我的BLOG上,引起我很多爱好者的关注,也不断有朋友和我联系,希望共同探讨。自从去年七月份之后,一方面工作忙的原因,二方面自己也有很多的杂事,渐渐把此事抛诸了脑后,时间一长更是不想再深入,心浮气躁也深入不进去。常常想起此事会有诸多遗憾,ICTCLAS4J的程序大体上我已完成,可以进行分词测试了,但还有相当的BUG以及原创 2007-03-15 14:57:00 · 4745 阅读 · 4 评论 -
ICTCLAS4J源代码示例(-)
题记:经过几个月断断续续的学习,终于把ICTCLAS的源代码搞清楚了一部分,关试着用JAVA按原作者的意图实现了一个,目前已经可以实现分词的第一步,但人名、地名和未登录词的处理以及词性标记还没有彻底搞清楚。本来想早点拿出来和大家分享,但又怕太丑陋不敢见人。近几个星期工作一直特别忙,也无暇照顾它并做进一步的实现。思付良久,还是决心先把自已的理解和实现拿出来和大家共享,欢迎各位指正拍砖!原创 2006-07-21 14:37:00 · 8404 阅读 · 10 评论 -
分词终于有点进展啦
ICTCLAS研究了几个月,加了N个晚班之后,现在终于有点眉目啦,ICTCLAS4J有也一定的雏形了。 用Java实现分词的第一大步,断句和分词,下一步就是词性标记了。感觉最复杂的地方就是NShortPath(N-最短路径)这里,虽然源代码里只实现了1-最短路径,但来来回回的复杂处理搞的我有点头晕眼花。好在认真分析之后,搞清楚了其中的实现过程,用Java实现起来,至少在代码是要简练的多了。但过原创 2006-06-27 22:49:00 · 4949 阅读 · 2 评论 -
ICTCLAS分词系统研究(五)--N最短路径
ICTCLAS和别的分司系统不一样的地方就是于--N最短路径分词算法。所谓N最短路径其实就是最短路径和最大路径的折中,保留前N个最优路径。这样做的目的就是对这两种方法取长补短,既能达到一个比较理解的分词不达意效果,又能保证分词不达意速度。在此处,我们中国人的中庸思想被完美体现:)。在N-最短路径求解之前,ICTCLAS首先通过二叉分词图表(邻接表,如下图一所示)表示出了每个词组之间的耦合原创 2006-05-19 13:43:00 · 16318 阅读 · 2 评论 -
ICTCLAS分词系统研究(四)--初次切分
经过原子分词后,源字符串成了一个个独立的最小语素单位。下面的初次切分,就是把原子之间所有可能的组合都先找出来。算法是用两个循环来实现,第一层遍历整个原子单位,第二层是当找到一个原子时,不断把后面相邻的原子和该原子组合到一起,访问词典库看它能否构成一个有意义有词组。用数学方法可以做如下描述:有一个原子序列:A(n)(0用伪码表示:for(int I=0;I Stri原创 2006-04-14 11:52:00 · 13706 阅读 · 9 评论 -
ICTCLAS分词系统研究(三)--原子切分
ICTCLAS分词的第一步就是原子分词。但在进行原子切分之前,首先要进行断句处理。所谓断句,就是根据分隔符、回车换行符等语句的分隔标志,把源字符串分隔成多个稍微简单一点的短句,再进行分词处理,最后再把各个分词结果合起来,形成最终的分词结果。分成短句之后,即可进行原子分词,所谓原子,是指该短句中不可分割的最小语素单位。一个汉字、短句前后的开始结束标识字段、全角标点符号、连在一起的数字字母单字节原创 2006-03-15 11:27:00 · 10927 阅读 · 2 评论 -
ICTCLAS分词系统研究(二)--词典结构
ICTCLAS的词典结构是理解分词的重要依据,通过这么一个数据结构设计合理访问速度高效的词典才能达到快速准备的分词的目的。通过阅读和分析源代码,我们可以知道,是程序运行初,先把词典加载到内存中,以提高访问的速度。源代码在Result.cpp的构造函数CResult()内实现了词典和分词规则库的加载。如下代码所示:CResult::CResult(){ …… m_dictCore.Loa原创 2006-03-15 11:06:00 · 23669 阅读 · 16 评论 -
ICTCLAS分词系统研究(十)--后记
FreeICTCLAS中文分词系统从2006年3月就开始接触,之后通过研读相关论文和源代码,写了一系列的学习笔记,给很多同样的中文分词爱好者提供了一个可参考的文档资料。但因为工作及其它原因(嘿嘿,说白就了就是比较偷懒,没有坚持下去),把该项目做成一个java版的原始想法一度中断。之后,也曾多次尝试重新拾起,完成我的一个心愿,但复杂的工作都让我半途而费。 4月份的时候,一个原创 2007-06-04 14:25:00 · 7876 阅读 · 6 评论