一种新的中文分词词典结构.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种新的中文分词词典结构 [ 摘要 ] 汉语自动分词是汉语信息处理的前提, 词典是 汉语自动分词的基础,分词词典机制的优劣直接影响到中文 分词的速度和效率。本文首先分析了已有的几种典型词典结 构,并在此基础上提出了一种新的分词词典结构一全字哈希 词典,提高了中文分词的速度和效率。 [关键词 ] 分词词典中文分词全哈希 一、引言 汉语自动分词是汉语信息处理的前提,广泛应用于中文 全文检索、中文自动全文翻译、中文文语转换等领域。自动 分词的基本算法主要分为两大类:基于词典的分词方法和基 于频度统计的分词方法。具体应用时的不同算法则是二者不 同程度的组合。 针对词典分词方式,前人做了大量工作,并形成了许多 汉语词典的组织结构。这些组织结构大体上分成树形结构和 表格形结构:文献 [1] 介绍了树形结构的构造方法,文献 [2] 提出了三数组 Trie 索引树结构,文献 [3]提出一种更加优化 PATRICIA 树;而典型的表格结构有整词二分的和逐字二分 的两种, 文献[4] 详细阐述了这两种表格结构, 并与 Trie 树词 表在分词效率和空间消费方面作了对比, 文献 [5]使用了分层 存储词条的表格结构,使其对于优先切分专有名词效率更 佳。文献 [6] 综合了树形和表格形结构的优点,提出了双字哈 希机制的词典结构。对于切分二字词表现出色,采用的是传 统 Hash 方法。总结下来树形结构和表格形结构各有优劣, 表格结构词典构造相对简单, 占用空间少, 容易更新和维护, 但是查找词条效率相对较慢;而树形结构构造复杂,占用空 间大,难以更改,但是查找词条效率较高。无论哪种结构, 基本的词条查找过程都使用了二分查找,某些词典甚至需要 多次二分查找,这种方式受数据集范围的影响,当在一个大 数据集上进行二分查找其效率难以令人满意,当需要多次二 分查找时,其效率甚至难以预测。 本文提出一种全哈希机制的词典结构,既有较高的查找 速度(总能以常数级的时间复杂度完成任务)又容易维护。 而且与上述任何一种词典都不同的地方是它具有了同义词 的存储结构。 二、全哈希词典结构 该词典包含三级索引,每级索引都用哈希方法实现,其 结构下图所示: 图 1 全哈希词典结构 本结构用三层哈希表嵌套,每层哈希表的键( Key )域 存储该层级索引值。一级索引 I1 是所有词条的首字哈希值, 存储于外层哈希表的键域,每个单元对应一个首字的哈希 值,外层哈希表的值(Value)域存放以字CO为首的所有词 条。二级索引将以 C0 为首的所有词条按照词长分类,一种 长度的词存储在中层哈希表的一个单元中,该单元键域存放 词长,值域存放所有该长度的词条。每个词条经过特定的哈 希函数计算,得到唯一的哈希值(一般是整数) ,这些哈希 值构成了第三级索引,存储于内层哈希表的键域;而内层哈 希表值域存放的是哈希值相同的词条列表。为了能够将每个 词条的同义词合理的植入词典,本文定义了一种特殊结构用 来承载每个词条(Wi),该结构包含了词条的文本值,该词 条的同义词指针等内容,有关同义词部分将在下一章详细介 绍。 查找速度快是哈希表固有的优势,根据哈希值直接匹配 的时间复杂度几乎是 O ( 1) ,这是其它任何算法不能比拟的。 而查找词条的主要时间消耗是计算哈希值的过程,哈希算法 的优劣是影响查找最重要的因素。 三、哈希算法设计 哈希算法设计应该兼顾以下几个原则: ( 1)计算速度快,便于实现。查找词条的过程主要时 间消耗在哈希值计算上,哈希算法应尽量减少这一过程的时 间复杂度。 散列均匀,尽可能少产生冲突。哈希算法一定为 同一个对象产生唯一的哈希值,但不一定为不同的对象产生 不同的哈希值,也就是一个哈希值有可能对应多个对象。哈 希算法设计应该尽量使哈希值均匀分布在哈希表单元中,即 使不能完全避免冲突,也应该使尽量少的对象对应同一个哈 希值。 提高桶利用率,节省哈希表占用空间。我们将哈 希值相同的对象放在同一个桶中,每个桶对应一个哈希值, 所谓桶利用率是指哈希表中已占用的桶数和已分配的桶数 之比。当这个比值超过装载因子时,应该为哈希表分配若干 新的单元,哈希算法应该尽量使空桶数较小,提高存储空间 利用率。 适用于本词典的分词算法是一种最大正向匹配法,该算 法的匹配过程是从左至右读取句子 S=C0C1C2C3……中的汉 字,在词典中依次查找 C0, C0C1 , C0C1C2 ,……直到找到 能够匹配的最长词条,每个汉字只需比较一次,先比较 C0, 接下来比较 C1 依此类推,而传统的做法是先比较 [C0..Ci] , 若不成功再比较 [C0..Ci-1] 依此类推, 这个词条中的前缀子串 重复比较了多次,影响效率。为了避免重复比较,哈希函数 设计还应考虑哈希值可累加, 即子串 S1=C0C1,has

文档评论(0)

497721292 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档