欢迎访问个人博客站点: 配置啦
随笔 - 109  文章 - 2  评论 - 20  阅读 - 54424

对SharpICTCLAS 1.0的一点小小的修改记录

             最近研究Lucene搜索这一块,经过慎重考虑,最后选用了吕震宇吕大侠的SharpICTCLAS分词组件.这真是天降神器,在这里再次谢过张华平博士和吕大侠.
             测试分词的过程中,发现分词器对有些特殊的汉字或者日文会抛出一些异常,跳到中断的代码位置,却也暂时没有时间去研究ICTCLAS本身的算法,为了应急,更改了一小部 分的代码,这部分修改当然不会改变算法流程了,因为这只是弥补了先前可能被作者无意忽略的语法层面的问题,为了谨慎起见,我也对大量的文档进行了分词测试,目前来看不但分词质量很不错,也很稳定.
      1.在Tag/span.cs中719行中for循环的判断条件中加上了两个与判断: &&i<m_sWords.Length && i < m_nWordPosition.Length-1
      2.屏蔽了SharpICTCLAS\Utility\WordDictionary.GetMaxMatch方法中indexTable索引小于0的异常,加上了如果索引为0则返回false的处理.
      3.屏蔽了SharpICTCLAS\Utility\WordDictionary.FindInOriginalTable方法中indexTable索引小于0的异常,加上了如果索引为0则返回false的处理.
      4.屏蔽了SharpICTCLAS\Utility\WordDictionary.FindFirstMatchItemInOrgTbl方法中indexTable索引小于0的异常,加上了如果索引为0则返回false的处理.
      注:上述1的修改是语法层面的修改,而2,3,4处的修改目的在于屏蔽异常(至于有没有影响算法流程还待进一步研究,不过从目前测试结果来看,是没有影响的).

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
< 2012年9月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

点击右上角即可分享
微信分享提示