PaddleNLP:中文NLP开源工具集

PaddleNLP

中文NLP开源工具集

基于PaddlePaddle深度学习框架打造的领先、全面、易用的NLP开源工具集与预训练模型集

覆盖工业应用和学术研究需求领域

PaddleNLP工业版

提供全面、灵活、高效的中文应用任务和基础模型;

同类型任务的不同网络可以实现灵活插拔和快速替换,方便开发者快速针对应用场景做适应性迁移

强大的百度NLP工具集
核心优势

全面丰富的能力

提供全面丰富的中文处理任务,涵盖了文本分类、序列标注、语义表示、语义匹配等多种NLP任务,可根据业务需求或实验需求快速选择合适的预训练模型进行使用。

灵活插拔的网络

基于PaddlePaddle深度学习框架构建的基础NLP网络和NLP应用任务的灵活解耦,网络可灵活调整,场景可高效迁移,真正高效易用。

工业级应用效果

拥有当前业内效果最好的中文语义表示模型和基于用户大数据训练的应⽤任务模型,模型效果调整机制源于产业实践,效果更突出。

中文应用任务
全面 易用 高效 准确

词法分析

LexicalAnalysis

词法分析是一个联合的词法分析模型,能够整体性地完成中文分词、词性标注、专名识别的任务。百度词法分析基于一个堆叠的双向GRU结构,在长文本上准确复刻了百度AI开放平台上的词法分析算法。适用于语音指令解析、多轮交互式搜索、实体数据库构建等场景。

文本情感分类基于PaddleHub更新

SentimentClassification

基于PaddleHub更新

文本情感分类是目前最好的中文情感分析模型,可自动判断中文文本的情感极性类别并给出相应的置信度。情感类型分为积极、消极、 中性。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有力的决策支持。

对话情绪识别基于PaddleHub更新

EmotionDetection

基于PaddleHub更新

对话情绪识别专注于识别智能对话场景中用户的情绪,针对智能对话场景中的用户文本自动判断该文本的情绪类别并给出相应的置信度,情绪类型分为积极、消极、中性。对话情绪识别适用于聊天、客服等多个场景,能够帮助企业更好地把握对话质量、改善产品的用户交互体验。

短文本语义匹配

SimilarityNet

短文本语义匹配是一个计算短文本相似度的框架,可以根据用户输入的两个文本,计算出相似度得分。该框架主要包括BOW、CNN、RNN等核心网络结构形式,已在百度各产品上得到广泛应用,适用于信息检索、新闻推荐、智能客服等多个应用场景,帮助企业解决语义匹配问题。

语言模型

LanguageModel

对话模型工具箱

DialogueModelToolKit

阅读理解

ReadingComprehension

机器翻译

Transformer

语言表示工具箱

LAnguageRepresentationsKit

知识驱动对话

knowledge-driven-dialogue

中文基础模型
技术领先 灵活插拔 高效使用
分类组网集
语义表示组网集
语义匹配组网集
序列化标注组网集
语言模型组网集
复杂模型组网集

分类组网集

可用于文本分类的深度学习网络结构,输入为文本中每个字、词的ID,输出为文本属于各个类别的概率。包括:BOW、CNN、GRU、LSTM、BiLSTM。

BOW
CNN
GRU
LSTM
BiLSTM
Bow(Bag Of Words)模型,是一个非序列模型。该模型忽略掉文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文档。
分类组网集

分类组网集

可用于文本分类的深度学习网络结构,输入为文本中每个字、词的ID,输出为文本属于各个类别的概率。包括:BOW、CNN、GRU、LSTM、BiLSTM。

BOW

Bow(Bag Of Words)模型,是一个非序列模型。该模型忽略掉文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文档。

查看代码

CNN

浅层CNN模型,是一个基础的序列模型,能够处理变长的序列输入,提取一个局部区域之内的特征。

查看代码

GRU

单层GRU模型,序列模型,能够较好地解序列文本中长距离依赖的问题。

查看代码

LSTM

单层LSTM模型,序列模型,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

查看代码

BiLSTM

双向单层LSTM模型,序列模型,通过采用双向LSTM结构,更好地捕获句子中的语义特征。

查看代码

语义表示组网集

语义表示组网集

可用于文本表示的深度学习网络结构,输入为文本中每个字、词的ID,输出为文本中每个字词的embedding。包括:BERT、ELMo、ERNIE。

BERT

基于Transformer的Encoder,进行双向语言模型建模,能够充分描述字级、句子级甚至句间关系特征。

查看代码

ELMo

基于LSTM建模双向语言模型,能够描述句子中词语的上下文关系。

查看代码

ERNIE

基于Transformer的Encoder,能够通过建模海量数据中的词、实体及实体关系,学习真实世界的语义知识。

查看代码

语义匹配组网集

语义匹配组网集

可用于计算短文本相似度的深度学习网络结构,输入为两个文本中每个词的ID,输出为二者的相似度得分。包括:BOW、CNN、GRU、LSTM、MMDNN。

BOW

Bow(Bag Of Words)模型,是一个非序列模型。该模型忽略掉文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文档。

查看代码

CNN

浅层CNN模型,是一个基础的序列模型,能够处理变长的序列输入,提取一个局部区域之内的特征。

查看代码

GRU

单层GRU模型,序列模型,能够较好地解序列文本中长距离依赖的问题。

查看代码

LSTM

单层LSTM模型,序列模型,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

查看代码

MMDNN

匹配矩阵深度神经网络,通过匹配矩阵方法去得到文本之间的相似性。

查看代码

序列化标注组网集

序列化标注组网集

可用于计算序列标注的深度学习网络结构,输入为文本中每个字的ID,输出为文本中每个字所属各个标注的概率。目前主要有BiGRU-CRF。

BiGRU-CRF

双层GRU是双向序列模型,能够对文本深层信息进行特征提取。CRF输出层主要用于序列标注问题,能够考虑上下文关联信息的进行模型学习。

查看代码

语言模型组网集

语言模型组网集

可以用于计算句子概率的深度学习网络结构,目前主要有LSTM。

LSTM

单层LSTM模型,序列模型,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

查看代码

复杂模型组网集

复杂模型组网集

可以处理复杂任务的深度学习网络结构,包括阅读理解、对话等任务。

BERT

基于Transformer的Encoder,进行双向语言模型建模,能够充分描述字级、句子级甚至句间关系特征。

查看代码

BiDAF

BiDAF模型是一个利用双向注意力流,得到一个问题感知的上下文表征的神经网络,通常用在阅读理解领域。更深层的讲,问题感知的上下文表征是所给段落和问题之间的交互,可以理解为将问题嵌入段落中去。相比于Match-LSTM,BiDAF增加了Question中关注Passage的哪些单词更重要。

查看代码

用NLP工具集开始一次模型训练
源于工业实践的多任务模型,快速落地业务应用
1 准备工作
2 模型训练
3 快速验证

PaddlePaddle的安装与配置

请您在PaddlePaddle官方网站,找到“快速安装”部分,根据您机器环境情况,选择对应的配置选项,然后按照PaddlePaddle官网的安装教程,安装PaddlePaddle。

前往PaddlePaddle官网

NLP工具集的安装与配置

克隆GitHub上的工具集到本地,然后进入到任务所在路径。

1 准备工作

PaddlePaddle的安装与配置

请您在PaddlePaddle官方网站,找到“快速安装”部分,根据您机器环境情况,选择对应的配置选项,然后按照PaddlePaddle官网的安装教程,安装PaddlePaddle。

前往PaddlePaddle官网

NLP工具集的安装与配置

克隆GitHub上的工具集到本地,然后进入到任务所在路径。

2 模型训练

下载并解压数据

按照文档中的命令下载并解压数据,以文本情感分类为例,运行该数据脚本之后,data目录下会存在训练数据(train.tsv)、开发集数据(dev.tsv)、测试集数据(test.tsv)以及对应的词典(word_dict.txt)。

下载模型并开始训练

按照文档中的命令下载模型并开启训练,以文本情感分类为例,开源了基于ChnSentiCorp数据训练的情感倾向性分类模型(基于BOW、CNN、LSTM、ERNIE多种模型训练),您可以直接使用进行训练。

3 快速验证

模型评估

按照文档中的命令进行模型评估,以文本情感分类为例,您可以直接查看预训练模型在开发集(dev.tsv)上的评估效果。

模型预测

按照文档中的命令进行模型预测,以文本情感分类为例,您可以直接使用未知label的数据(test.tsv)进行模型预测。