ITPub博客

首页 > 大数据 > 数据分析 > hanlp源码解读之字符正规化CharTable

hanlp源码解读之字符正规化CharTable

数据分析 作者:lanlantian123456 时间:2018-10-26 11:38:27 0 删除 编辑

概述:字符正规化是指在分词之前把繁体转成简体、大写转成小写等,在自然语言处理中这是必不可以的一个步骤!在hanlp中的实现方法是基于词典的,也就是正规则字符对照表。就是“data/dictionary/other/CharTable.txt” 这个词典,打开后是下面这个样子的!

在java程序中如何实现呢,相信大部分人会想用到用HashMap缓存起来不就可以了吗!当然,这个方法是可行的,但是HashMap在数据量比较大时,时间复杂度是接近O(n)的。这也是为什么加载词典用trie树,而不是直接用HashMap的原因了,当然内存也是一个方面,本篇文章不会讨论!下面我们来看下hanlp代码里的具体实现。


在hanlp中,是采用一维数据实现的,下面一步步来看源码的实现!源码位于com.hankcs.hanlp.HanLP包下的CharTable类中,这个类主是要加把 CharTable.txt加载到一维数组中。为了方便阅读,下面直接在代码中加入注释!


在分词之前会首化调用正规化接口(在启用正规化的情况下)

下面来看下CharTable.normalization(text);这个函数的实现:这个函数极其简单,就是对text中的每个字符查询一维数据COVERT,看到这里应该就能明白,正规化最重要的就是加载txt文件到CONVERT数组中

下面看具本的代码,敝人在代码中都加入了注释,此处不再另行讲解


文章来源于亚当-adam的博客



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31557723/viewspace-2217615/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-10

  • 博文量
    65
  • 访问量
    38584