- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于散列的中文分词研究与实现
基于散列的中文分词研究与实现
冯小川
北京邮电大学电信工程学院,100876
E-mail :fexch@163.com
摘 要: 本文介绍了中文分词的原理以及实现过程。在查找词汇的过程中引入了散列表这
种数据结构使分词速度和准确性达到一个很好的平衡,在此基础上提出了一种准确性和速度
都比较高的分词方法并编程实现。最后针对不同的词库做了全方位的测评和仿真。
关键词:中文分词,hash 表,delphi 设计
1. 引 言
搜索引擎技术的研究,国外比中国要早近十年,在许多领域,都是国外的产品和技术一
统天下,特别是当某种技术在国外研究多年而国内才开始的情况下。例如操作系统、字处理
软件、浏览器等等,但搜索引擎却是个例外。虽然在国外搜索引擎技术早就开始研究,但在
国内还是陆续涌现出优秀的搜索引擎,像百度()、中搜
()等。目前在中文搜索引擎领域,国内的搜索引擎已经和国外
的搜索引擎效果上相差不远。之所以能形成这样的局面,有一个重要的原因就在于中文和英
文两种语言自身的书写方式不同,这其中对于计算机涉及的技术就是中文分词。
2. 中文分词概述
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句
子中所有的字连起来才能描述一个意思。例如,英文句子 I am a student,用中文则为:“我
是一个学生”。计算机可以很简单通过空格知道 student 是一个单词,但是不能很容易明白
[学]、[生]两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分
词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。
2.1 什么是中文分词
[1]
中文分词技术属于自然语言处理技术范畴 ,对于一句话,人可以通过自己的知识来明
白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。
2.2 中文分词的应用
中文分词是其他中文信息处理的基础,搜索引擎只是中文分词的一个应用。其他的比如
机器翻译(MT )、语音合成、自动分类、自动摘要、自动校对等等,都需要用到分词技术。
3. 基于字符串匹配的分词的实现
分词准确性对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再高,对于搜
- 1 -
索引擎来说也是不可用的,因为搜索引擎需要处理数以亿计的网页,如果分词耗用的时间过
长,会严重影响搜索引擎内容更新的速度。因此对于搜索引擎来说,分词的准确性和速度,
二者都需要达到很高的要求。综合考虑分词的准确性和速度,采用了数据结构中的 hash 结
构(散列)算法。其中最重要的是 hash 函数,这个函数把集合 A 的元素映射到集合 B ,并
且集合 B 的元素的个数比集合 A 的元素个数少,如果这个映射是均匀的,寻找元素的效率
就可以提高很多。
3.1 散列结构查找
如果必须依赖于比较函数来识别某个元素,那么在这方面没有比二分查找更优的做法
了。不过,如果能够将索引与某一元素唯一地加以关联,那么仅需一次访问就可以找到所要
元素,这是一个关键字索引查找的例子,在这里,元素的关键字要转换为一个索引,这样使
用该索引即可在数组中访问相应元素。这种方法与二分查找全然不同,元素的关键字要用于
在数据结构中定位。
[2] ,这是通过一个散列函数(hash
由元素关键字到索引值的转换称为散列 (hashing )
function )实现的。用于保存元素的数组则称为散列表(hash table )。
通过使用散列来完成查找需要两个算法,第一个为散列处理,在此要把一个元素的关键
字转换为数组索引值。在最佳状态下,不同的关键字将散列为不同的索引值,但
文档评论(0)