共计 1028 个字符,预计需要花费 3 分钟才能阅读完成。
自然语言解决(NLP)是人工智能畛域中的一个重要方向。它钻研能实现人与计算机之间用自然语言进行无效通信的各种实践和办法。
在进行 NLP 开发的时候,NLP 工具包是不可短少的一部分,其中蕴含的数据集和预训练模型能够较大的晋升开发效率。
明天举荐的这个开源我的项目就是来自复旦大学的 NLP 团队,看看他们的 NLP 工具包有什么好玩的中央吧。
项目名称: fastNLP
我的项目作者: 复旦大学自然语言解决(NLP)团队
我的项目地址:https://gitee.com/fastnlp/fastNLP
我的项目简介
fastNLP 是一款轻量级的自然语言解决(NLP)工具包,指标是疾速实现 NLP 工作以及构建简单模型。
我的项目个性
- 对立的 Tabular 式数据容器,简化数据预处理过程;
- 内置多种数据集的 Loader 和 Pipe,省去预处理代码;
- 各种不便的 NLP 工具,例如 Embedding 加载(包含 ELMo 和 BERT)、两头数据 cache 等;
- 局部数据集与预训练模型的主动下载;
- 提供多种神经网络组件以及复现模型(涵盖中文分词、命名实体辨认、句法分析、文本分类、文本匹配、指代消解、摘要等工作);
- Trainer 提供多种内置 Callback 函数,不便试验记录、异样捕捉等。
环境依赖
- numpy>=1.14.2
- torch>=1.0.0
- tqdm>=4.28.1
- nltk>=3.4.1
- requests
- spacy
- prettytable>=0.7.2
内置组件
大部分用于的 NLP 工作神经网络都能够看做由词嵌入(embeddings)和两种模块:编码器(encoder)、解码器(decoder)组成。
以文本分类工作为例,下图展现了一个 BiLSTM+Attention 实现文本分类器的模型流程图:
fastNLP 在 embeddings 模块中内置了几种不同的 embedding:动态 embedding(GloVe、word2vec)、上下文相干 embedding(ELMo、BERT)、字符 embedding(基于 CNN 或者 LSTM 的 CharEmbedding)
与此同时,fastNLP 在 modules 模块中内置了两种模块的诸多组件,能够帮忙用户疾速搭建本人所需的网络。两种模块的性能和常见组件如下:
我的项目构造
fastNLP 的大抵工作流程如上图所示,而我的项目构造如下:
如果你想要理解我的项目的更多信息,那么就点击前面的链接返回我的项目主页看看吧:https://gitee.com/fastnlp/fastNLP