您的位置:首页 > 编程语言 > C#

C# 一个简单分词程序的思路和代码(七) 后记

2007-10-29 19:43 681 查看
这个分词程序在六的时候已经结束我,原来不怎么想写后记的,因为看的人也不是很多,不过竟然放出来共享了,也希望给大家一些提示去优化他,也希望有优化好的朋友可以公开他的优化代码。

分词系统网上有几个小例子,一种是使用hashtable来保存字典,一种是使用数组来保存字典。

首先使用hashtable来保存字典的话,确实查询,插入都比较方便,全部工作都交给语言做了,技术上没什么难度,速度也很快,代码也很少。不过缺点也是很明显的,hashtable来保存字典的话,字典的词越多,hashtable内部导致的冲突越多,速度也就越慢

其二使用 数组来保存字典的话,保存起来很方便,查询需要自己写,相对来说可能还不如hashtable,缺点是也是当字典的词达到几十万的级别的时候,内存就出现问题了,你不可能分配几十万个数组去保存字典内容

以上两个思路最致命的问题在于,如果你使用了上述的两种方法来实现你的分词系统,你将没办法对他进行优化,这一点也就是说是不可以延续开发的,相当于一次性就没办法再进步了。反过来看现在这个简单分词系统,是有很多方面可以优化的,我的10w字/秒也是通过这个基础的东西优化出来的。首先可以优化的是加载,原来我的代码是已经优化了字典加载的,不过我估计把这个优化去掉,目的希望大家可以自己去实践和思考,毕竟抄来的东西最好还是自己消化掉的好。

如果您将开始优化,想想您的老师在数据结构中告诉你的一件事情,搜寻前需要对结构做什么。。。

思路我已经提示了,后面的就靠大家了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐