Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何使用Hanlp加载大字典

如何使用Hanlp加载大字典

作者头像
IT小白龙
修改于 2019-01-23 02:38:40
修改于 2019-01-23 02:38:40
8530
举报
文章被收录于专栏:hadoop学习笔记hadoop学习笔记

问题

因为需要加载一个 近 1G 的字典到Hanlp中,一开始使用了CustomDictionay.add() 方法来一条条的加载,果然到了中间,维护DoubleArraTre 的成本太高,添加一个节点,都会很长时间,本来时间长一点没有关系,只要训练出.bin 的文件,第二次加载就会很快,然而作为以空间换时间的DAT结构,内存消耗很大,预料之内的出现了

1   out of memory: heap size

的问题。后来尝试直接加载了1G 的字典,显然更不行。

思路

阅读了Hanlp的部分源码,也请教了原作者一部分问题,就打算从源码入手。初步想法大概是将原始字典 split 成多份,然后分别将多份的小字典 训练成 多个小的.bin 文件,再完整的加载到内存中,基于的原则则是:加载两个10M的字典的消耗比一个20M的要小。

然后又优化了一部分,现在加载一个大概1G的字典,占内存约3g+ ,已经可以使用了。

大概流程

1 修改 CustomDictionary.java 设置一个 hashmap 或者 一个 list 来存储所有的小Dat

2 将所有的dat加载完,这里就不再区分主副字典了。

3 修改Segment.java里面的combineByCustomDictionary 函数,源码中只有一个dat, 这里我们需要选择我们容器中其中某一个dat作为要匹配使用,之前使用的方案是,遍历所有的dat,知道有了匹配,但是这样缺陷很明显,解决不了多个字典匹配同一个词的字串的情况,这里我的考察方案是,字典中的同一个字开始的词条映射到同一个文件,这样不会出现字串问题了。

以上就是个大概的修改,可以参考。

---------------------

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HanLP代码与词典分离方案与流程
之前在spark环境中一直用的是portable版本,词条数量不是很够,且有心想把jieba,swcs词典加进来,
IT小白龙
2018/10/10
9930
HanLP代码与词典分离方案与流程
HanLP分词工具中的ViterbiSegment分词流程
本篇文章将重点讲解HanLP的ViterbiSegment分词器类,而不涉及感知机和条件随机场分词器,也不涉及基于字的分词器。因为这些分词器都不是我们在实践中常用的,而且ViterbiSegment也是作者直接封装到HanLP类中的分词器,作者也推荐使用该分词器,同时文本分类包以及其他一些自然语言处理任务包中的分词器也都间接使用了ViterbiSegment分词器。
IT小白龙
2019/08/05
1.1K0
HanLP分词工具中的ViterbiSegment分词流程
HanLP用户自定义词典源码分析详解
l 如果有些数量词、字母词需要分词,可参考:P2P和C2C这种词没有分出来,希望加到主词库
IT小白龙
2018/11/02
1.2K0
HanLP用户自定义词典源码分析详解
自然语言处理hanlp的入门基础
此文整理的基础是建立在hanlp较早版本的基础上的,虽然hanlp的最新1.7版本已经发布,但对于入门来说差别不大!分享一篇比较早的“旧文”给需要的朋友!
IT小白龙
2019/01/18
9270
自然语言处理hanlp的入门基础
自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。在Python中一种是直接调用hanlp的接口pyhanlp.还有就是导入其基于Java的原始配置文件。
学到老
2019/01/25
3.8K0
自然语言处理之hanlp,Python调用与构建,分词、关键词提取、命名主体识别
HanLP的自定义词典使用方式与注意事项
进入python安装包路径,如/usr/lib/python2.7/site-packages/pyhanlp/static/
IT小白龙
2019/01/02
2.2K0
HanLP的自定义词典使用方式与注意事项
Hanlp配置自定义词典遇到的问题与解决方法
本文是整理了部分网友在配置hanlp自定义词典时遇到的一小部分问题,同时针对这些问题,也提供另一些解决的方案以及思路。这里分享给大家学习参考。
IT小白龙
2019/06/17
1.7K0
Hanlp配置自定义词典遇到的问题与解决方法
Eclipse安装试用Hanlp
http://hanlp.linrunsoft.com/services.html
用户3492023
2018/11/09
6200
Eclipse安装试用Hanlp
pyhanlp 停用词与用户自定义词典功能详解
之前我们看了hanlp的词性标注,现在我们就要使用自定义词典与停用词功能了,首先关于HanLP的词性标注方式具体请看HanLP词性标注集。
IT小白龙
2018/11/16
1.5K0
pyhanlp 停用词与用户自定义词典功能详解
HanLP-地名识别调试方法
HanLP收词特别是实体比较多,因此特别容易造成误识别。下边举几个地名误识别的例子,需要指出的是,后边的机构名识别也以地名识别为基础,因此,如果地名识别不准确,也会导致机构名识别不准确。
IT小白龙
2019/07/19
6750
HanLP-地名识别调试方法
HanLP vs LTP 分词功能测试
文章摘自github,本次测试选用 HanLP 1.6.0 , LTP 3.4.0
IT小白龙
2019/04/19
1.1K0
HanLP vs LTP 分词功能测试
HanLP《自然语言处理入门》笔记--2.词典分词
笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP
mantch
2020/02/18
1.2K0
NLP自然语言处理中的hanlp分词实例
本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果。为何会如此,不妨一起学习一下 gladosAI 的这篇文章。
IT小白龙
2019/02/18
8170
NLP自然语言处理中的hanlp分词实例
Hanlp自然语言处理中的词典格式说明
使用过hanlp的都知道hanlp中有许多词典,它们的格式都是非常相似的,形式都是文本文档,随时可以修改。本篇文章详细介绍了hanlp中的词典格式,以满足用户自定义的需要。
IT小白龙
2019/03/15
1.4K0
Hanlp自然语言处理中的词典格式说明
自然语言处理之:搭建基于HanLP的开发环境
环境搭建比FNLP的简单,具体参考:https://github.com/hankcs/HanLP
IT小白龙
2018/11/09
7610
自然语言处理之:搭建基于HanLP的开发环境
NLP札记4-字典分词
完全切分、正向最长匹配和逆向最长匹配这三种算法的缺点就是如何判断集合中是否含有字符串。
皮大大
2021/03/02
1.2K0
HanLP二元核心词典详细解析
本文分析:HanLP版本1.5.3中二元核心词典的存储与查找。当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造start和pair数组,并基于这两个数组实现词共现频率的二分查找。当已经有缓存bin文件时,那直接读取构建start和pair数组,速度超快。
IT小白龙
2018/12/03
9130
HanLP二元核心词典详细解析
Hanlp等七种优秀的开源中文分词库推荐
中文分词是中文文本处理的基础步骤,也是中文人机自然语言交互的基础模块。由于中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词。
IT小白龙
2018/10/12
3.3K0
Hanlp等七种优秀的开源中文分词库推荐
HanLP-分类模块的分词器介绍
最近发现一个很勤快的大神在分享他的一些实操经验,看了一些他自己关于hanlp方面的文章,写的挺好的!转载过来分享给大家!以下为分享原文(无意义的内容已经做了删除)
IT小白龙
2019/06/14
4590
HanLP-分类模块的分词器介绍
【NLP】45个小众而实用的NLP开源字典和工具
随着BERT、ERNIE、XLNet等预训练模型的流行,解决NLP问题时不用上预训练模型似乎总显得自己有点过时。但是这显然是不对的。
zenRRan
2020/02/20
1.5K0
推荐阅读
相关推荐
HanLP代码与词典分离方案与流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文