APP下载

HanLP2.0

2019-10-08汤连杰

软件和集成电路 2019年8期
关键词:调用底层语料库

汤连杰

大快搜索是一个相对年轻的公司,组建时间不算很长,我们公司主要是聚焦大数据底层软件、大数据开发框架、人工智能这几个方向。在大数据底层软件方面,有DKH大数据分析处理平台,在人工智能方面的主要产品就是HanLP。HanLP从2015年开始进行研发,目前,我们已经开源了全部源代码。

由于HanLP1.x的开发主要以传统方式进行,我们可以直接在工程里面进行调用。从HanLP2.0开始,我们走入深度学习技术路线,把以前的算法重新用C++进行打造。由于深度学习、神经网络时代的到来,HanLP2.0全面拥抱深度学习,采用Python作为主要开发语言,以前的对外接口是Java,现在可以提供多种语言支持。以前的C语言开发模块,通过这个接口传送出来,或者用Python来进行调用,其他开发语言也一样可以调用。因为都是开源的,大家可以尽情地使用,都是不收费的。

HanLP2.0里面利用C++实现了高速算法,用SWIG实现Python语言的接口。双数组字典树/AC自动机词典匹配是HanLP1.x的优良传统,在HanLP2.0会继续保持,大家还可以继续使用这个。

在多语言这个方面,我们用Python重新写了外部框架。以前我们要把一段话进行分词处理,也要建立一个工程,HanLP2.0支持直接向服务端发送一个请求,可以直接返回分词结果,这个就非常方便了。我说多语言指的是自然语言,比如英文、日文、韩文和西班牙文,在底层框架的设计上,不在一个编码体系里,我们底层的架构跟语言无关,你可以使用任何语言,只要提供语料库就可以处理语言,不论是什么语言。语料库决定了HanLP最后所支持的语言,如果是西班牙语,将西班牙语语料库放在里面训练,建立训练模型,最后调用模型就可以了。所以说,HanLP2.0充分体现了这么一个人工智能和神经网络机器学习编程的思路。HanLP预先存放的模型有繁体中文、简体中文、英文、日文,如果有更好的语料库也可以进行训练。

与国际接軌,HanLP2.0的代码库、文档还有OA都采用英文,文档采用Sphinx工具,大家使用起来更加方便。HanLP2.0对底层框架是有依赖的,主要是依靠TensorFlow。Keras就是TensorFlow2.0提供的官方高级API,应用特别方便,比其他框架快得多。

有人问HanLP1.0很好,HanLP2.0怎么用呢?很多模型通过神经网络训练,为了提高速度,我们公司本身提供一个GPU集群,可以免费使用,但如果为了提高效率,可以自己另行搭建GPU集群,可以把你的语料库放在GPU上进行训练。HanLP的各个组件都是基于模型的,任何组件都可以实现模型的加载、保存、解码、训练、评测等。组件和组件接口都是以文档为标准的,传入的是文档,输出的也是文档,各个组件很容易构成流水线,各种不同功能的模块把组件搭建起来以后,迅速领取自己的任务。这样说起来,可能还是有点抽象,但是真正使用的时候,HanLP是一个非常好用的工具,加载速度非常快,从加载到启动,基本上只需要200毫秒。(根据演讲内容整理,未经本人审核)

猜你喜欢

调用底层语料库
农民建筑工
基于语料库翻译学的广告翻译平行语料库问题研究
运用语料库辅助高中英语写作
写给厌学的你:不读书,换来的是一生的底层!家长也读读!
基于Android Broadcast的短信安全监听系统的设计和实现
“底层文学”向何处去?
利用RFC技术实现SAP系统接口通信
略论“底层”
语料库与译者培养探索
C++语言中函数参数传递方式剖析