Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何在程序中重新加载自定义的词典 #689

Closed
1 task done
kjdongzh opened this issue Nov 23, 2017 · 2 comments
Closed
1 task done

如何在程序中重新加载自定义的词典 #689

kjdongzh opened this issue Nov 23, 2017 · 2 comments
Labels

Comments

@kjdongzh
Copy link

kjdongzh commented Nov 23, 2017

注意事项

请确认下列注意事项:

  • 我已仔细阅读下列文档,都没有找到答案:
  • 我已经通过Googleissue区检索功能搜索了我的问题,也没有找到答案。
  • 我明白开源社区是出于兴趣爱好聚集起来的自由社区,不承担任何责任或义务。我会礼貌发言,向每一个帮助我的人表示感谢。
  • 我在此括号内输入x打钩,代表上述事项确认完毕。

版本号

当前最新版本号是:
我使用的版本是:hanlp-1.3.2-portable.jar 、 hanlp-lucene-plugin-1.1.2.jar

实际场景

一个web容器中有两个webapp,一个是webappA,另一个是solr,solr使用hanlp为中文分词器,并配置了用户词典(即customDictionaryPath属性),webappA有一个在线编辑词典的功能,希望编辑完字典,solr能够看到效果而不需要重启tomcat容器。

解决思路

在hanlp solr插件中的HanLPTokenizerFactory开启一个守护线程,每隔一段时间去检查字典的校检码,如果发生变化就删掉.bin缓存文件,并重新加载字典。

我的问题

1、我目前在CustomDictionary添加了如下一个静态方法,但是这样会把所有的自定义词典重新加载一遍,有没有只加载某个文件的方法呢

  public static void reloadDic(){
    	trie = null;
    	dat = new DoubleArrayTrie<CoreDictionary.Attribute>();
    	loadMainDictionary(path[0]);
    }

2、执行CustomDictionary.insert()方法后,为什么新词典已经产生效果,但dat.size()没有发生变化

@kjdongzh kjdongzh changed the title 如何在jvm中重新加载自定义的词典 如何在程序中重新加载自定义的词典 Nov 23, 2017
@hankcs
Copy link
Owner

hankcs commented Nov 25, 2017

  1. 没有只加载某个文件的方法,为了效率考虑,从文件加载的所有词语构造为一棵dat。
  2. 动态插入的词语储存在trie里面。

@hankcs
Copy link
Owner

hankcs commented Jan 1, 2020

感谢您对HanLP1.x的支持,我一直为没有时间回复所有issue感到抱歉,希望您提的问题已经解决。或者,您可以从《自然语言处理入门》中找到答案。

时光飞逝,HanLP1.x感谢您的一路相伴。我于东部标准时间2019年12月31日发布了HanLP1.x在上一个十年最后一个版本,代号为最后的武士。此后1.x分支将提供稳定性维护,但不是未来开发的焦点。

值此2020新年之际,我很高兴地宣布,HanLP2.0发布了。HanLP2.0的愿景是下一个十年的前沿NLP技术。为此,HanLP2.0采用TensorFlow2.0实现了最前沿的深度学习模型,通过精心设计的框架支撑下游NLP任务,在海量语料库上取得了最前沿的准确率。作为第一个alpha版本,HanLP 2.0.0a0支持分词、词性标注、命名实体识别、依存句法分析、语义依存分析以及文本分类。而且,这些功能并不仅限中文,而是面向全人类语种设计。HanLP2.0提供许多预训练模型,而终端用户仅需两行代码即可部署,深度学习落地不再困难。更多详情,欢迎观看HanLP2.0的介绍视频,或参与论坛讨论

展望未来,HanLP2.0将集成1.x时代继承下来的高效率务实风范,同时冲刺前沿研究,做工业界和学术界的两栖战舰,请诸君继续多多指教,谢谢。

@hankcs hankcs closed this as completed Jan 1, 2020
@hankcs hankcs added ignored and removed question labels Jan 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants