《从零开始学习自然语言处理(NLP)》-NLP Framework开源方案梳理(3)

写在最前面

在这个日新月异的信息时代,海量数据的积累,计算能力的不断提升,机器学习尤其是深度学习的蓬勃发展,使得人工智能技术在不同领域焕发出蓬勃的活力。自己经历了嵌入式开发,移动互联网开发,目前从事自然语言处理算法开发工作。从工程软件开发到自然语言处理算法开发,希望通过这个系列的文章,能够由浅入深,通俗易懂的介绍自然语言处理的领域知识,分享自己的成长,同大家一起进步。

问题描述

新的项目开启时,一般会经历如下的流程:

  • 业务需求梳理
  • 算法方案选择
  • 模型实现:选择开源方案,或自己实现
  • 模型训练:数据清洗、模型训练(使用训练集)
  • 最优模型选择:依据验证集结果,选择最优模型
  • 模型评测:依据测试集结果,对模型进行评测
  • 模型优化:本模型调优,或选择新的模型
  • 模型服务上线

而在实际的项目开发中,存在如下的问题:
1模型实现问题
模型实现一般会选择开源方案,或自己编码实现。自己编码实现开发和调试成本高。直接选择开源方案,会面临开发环境不统一,编译问题,代码结果和可靠性难以保证等问题;
2模型训练和评测问题
该阶段会设计到数据清洗,输入读入,数据迭代器设计,数据预处理,词向量训练与准备,分词,文本转索引,
标签ont-hot表示,训练集/验证集/测试集划分,训练过程最优模型选择,模型评测(准确度A、精确度P、召回率R、F1值等),数据分析(结果分析,混淆矩阵分析,ROC/AUC分析),Tensorboard结果查看等。由于该部分设计的流程和步骤较多,自己编码开发和调试工作量大,而开源方案很多步骤和组件并不全面。
3 模型优化问题
除了在现有模型的基础上进行局部优化外,还会选择新的模型。如果选择新的模型,则会重新自己编码实现或选择开源方案,会再次经历前面提到的问题1(模型实现问题)和问题2(模型训练和评测问题)。
4 模型服务上线问题
模型服务上线,同模型的训练和预测和类似,但又不完全相同。模型上线需要和模型训练一样的预处理,词向量,分词,文本转索引等步骤,但不需要模型的测评。同时,模型上线要求只能包含模型的训练文件,
而不能包括模型的代码。通常需要编写专门的代码用于模型服务上线。
一般来说,针对上面的问题,公司都会有一个统一的NLP算法框架,
一方面,统一模型的实现、评测和上线流程
另一方面,框架自身包含很多现成的模型,便于业务在算法落地方面的快速验证
大多数公司并不开源自己的NLP算法框架,但开源社区NLP开源框架还是蛮多的,这里做一个统一的梳理。

针对对话系统的Framework

1 DeepPavlov

运行依赖:TensorFlow/Keras
支持功能:

支持功能

项目地址:
https://github.com/deepmipt/DeepPavlov

2 ParlAI

运行依赖:Pytorch
支持功能:

支持功能

项目地址:https://github.com/facebookresearch/ParlAI

3 Rasa

运行依赖:Python
支持功能:纯任务型对话
项目地址:https://www.rasa.com/

4 OpenDial

运行依赖:Java
支持功能:对话系统
描述:主要基于传统方法,深度网络较少涉及。
项目地址:https://github.com/plison/opendial

通用NLP Framework

1 Intel NLP-Architect

运行依赖:TensorFlow
支持功能:

支持功能

项目地址:http://nlp_architect.nervanasys.com/

2 AllenNLP

运行依赖:Pytorch
支持功能:

支持功能

项目地址:
https://allennlp.org/

3 PyText

运行依赖:Pytorch
支持功能:

支持功能

项目地址:
https://pytext-pytext.readthedocs-hosted.com/en/latest/#

NLP基础依赖组件项目(提供pre-train模型)

1 Stanford CoreNLP

运行依赖:Java
支持功能:

支持功能

项目地址:
https://stanfordnlp.github.io/CoreNLP/index.html

2 Stanford NLP

运行依赖:Pytorch
支持功能:

支持功能

项目地址:
https://stanfordnlp.github.io/stanfordnlp/tokenize.html

3 spaCy

运行依赖:Python
支持功能:

支持功能

项目地址:
https://spacy.io/

小结

本文梳理了实际的业务算法落地开发过程,并提出了其中存在的问题,和解决方案。对当前开源的NLP框架做了整理,可以依据自身的需要开发自己的NLP算法框架,规范开发流程,提升业务落地效率。同时,也可以直接从开源方案中获取自己需求的算法实现模块。后续有新的开源框架方案,会持续整理进来。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容