对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处的修改目的在于屏蔽异常(至于有没有影响算法流程还待进一步研究,不过从目前测试结果来看,是没有影响的).
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!