肥宅钓鱼网
当前位置: 首页 钓鱼百科

开源nlp 平台(最新中文NLP开源工具箱来了)

时间:2023-07-29 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

铜灵发自凹非寺量子位出品|公众号QbitAI对于开发者来说,又有一个新的NLP工具箱可以使用了,代号PaddleNLP,目前已开源。这个工具箱里的工具全面,共支持的6大NLP任务,包括文本分类、文本匹配、序列标注、文本生成、语义表示与语言模型和其他复杂任务等。ERNIEBI-LSTM,基于ERNIE语义表示对接上层BI-LSTM模型,并基于此在情感倾向分类数据集上进行Fine-tune获得。基于自建的数据集上对分词、词性标注、专名识别进行整体的评估

铜灵 发自 凹非寺

量子位 出品 | 公众号 QbitAI

对于开发者来说,又有一个新的NLP工具箱可以使用了,代号PaddleNLP,目前已开源。

在这个基于百度深度学习平台飞桨(PaddlePaddle)开发的工具箱里,装有大量工业级中文NLP开源工具与预训练模型。

这个工具箱里的工具全面,共支持的6大NLP任务,包括文本分类、文本匹配、序列标注、文本生成、语义表示与语言模型和其他复杂任务等。

除了全面,PaddleNLP的效果也还不错。比如基于百度海量搜索数据,PaddleNLP训练了的语义匹配模型在真实FAQ问答场景中,比基于字面的相似度方法AUC提升5%以上。

无论你在聊天机器人、智能客服、新闻推荐、信息检索、阅读理解还是机器翻译等场景,PaddleNLP都能一次性满足你的需求。

飞桨表示,手握PaddleNLP,就能将NLP领域的多种模型用一套共享骨架代码实现,减少开发者在开发过程中的重复工作。能方便开发者灵活插拔尝试多种网络结构,并且让应用最快速达到工业级效果。

具体来看用法。

1、文本分类

文本情感分析

情感是人类的一种高级智能行为,为了识别文本的情感倾向,需要深入的语义建模。另外,不同领域(如餐饮、体育)在情感的表达各不相同,因而需要有大规模覆盖各个领域的数据进行模型训练。为此,可以通过基于深度学习的语义模型和大规模数据挖掘解决上述两个问题。

百度研发的中文特色情感倾向分析模型(Sentiment Classification,简称Senta)针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。

情感类型分为积极、消极。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有利的决策支持。

基于开源情感倾向分类数据集ChnSentiCorp评测结果如下表所示,此外,PaddleNLP还开源了百度基于海量数据训练好的模型,该模型在ChnSentiCorp数据集上fine-tune之后(基于开源模型进行Finetune的方法详见Github),可以得到更好的效果。

  • BOW(Bag Of Words)模型,是一个非序列模型,使用基本的全连接结构。
  • CNN(Convolutional Neural Networks),是一个基础的序列模型,能处理变长序列输入,提取局部区域之内的特征。
  • GRU(Gated Recurrent Unit),序列模型,能够较好地解决序列文本中长距离依赖的问题。
  • LSTM(Long Short Term Memory),序列模型,能够较好地解决序列文本中长距离依赖的问题。
  • BI-LSTM(Bidirectional Long Short Term Memory),序列模型,采用双向LSTM结构,更好地捕获句子中的语义特征。
  • ERNIE(Enhanced Representation through kNowledge IntEgration),百度自研基于海量数据和先验知识训练的通用文本语义表示模型,并基于此在情感倾向分类数据集上进行fine-tune获得。
  • ERNIE BI-LSTM,基于ERNIE语义表示对接上层BI-LSTM模型,并基于此在情感倾向分类数据集上进行Fine-tune获得。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/sentiment_classification

对话情绪识别

对话情绪识别适用于聊天、客服等多个场景,能够帮助企业更好地把握对话质量、改善产品的用户交互体验,也能分析客服服务质量、降低人工质检成本。

对话情绪识别(Emotion Detection,简称EmoTect),专注于识别智能对话场景中用户的情绪,针对智能对话场景中的用户文本,自动判断该文本的情绪类别并给出相应的置信度,情绪类型分为积极、消极、中性。

基于百度自建测试集(包含闲聊、客服)和nlpcc2014微博情绪数据集评测效果如下表所示,此外,PaddleNLP还开源了百度基于海量数据训练好的模型,该模型在聊天对话语料上fine-tune之后,可以得到更好的效果。

  • BOW:Bag Of Words,是一个非序列模型,使用基本的全连接结构。
  • CNN:浅层CNN模型,能够处理变长的序列输入,提取一个局部区域之内的特征。
  • TextCNN:多卷积核CNN模型,能够更好地捕捉句子局部相关性。
  • LSTM:单层LSTM模型,能够较好地解决序列文本中长距离依赖的问题。
  • BI-LSTM:双向单层LSTM模型,采用双向LSTM结构,更好地捕获句子中的语义特征。
  • ERNIE:百度自研基于海量数据和先验知识训练的通用文本语义表示模型,并基于此在对话情绪分类数据集上进行fine-tune获得。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/emotion_detection

2、文本匹配

短文本语义匹配

百度自主研发的短文本语义匹配语义匹配框架(SimilarityNet, SimNet)是一个计算短文本相似度的框架,可以根据用户输入的两个文本,计算出相似度得分。

SimNet 在语义表示上沿袭了隐式连续向量表示的方式,但对语义匹配问题在深度学习框架下进行了 End-to-End 的建模,将point-wise与 pair-wise两种有监督学习方式全部统一在一个整体框架内。

在实际应用场景下,将海量的用户点击行为数据转化为大规模的弱标记数据,在网页搜索任务上的初次使用即展现出极大威力,带来了相关性的提升。

SimNet框架在百度各产品上广泛应用,主要包括BOW、CNN、RNN、MMDNN等核心网络结构形式,提供语义相似度计算训练和预测框架,适用于信息检索、新闻推荐、智能客服等多个应用场景,帮助企业解决语义匹配问题。

基于百度海量搜索数据,PaddleNLP训练了一个SimNet-BOW-Pairwise语义匹配模型,在一些真实的FAQ问答场景中,该模型效果比基于字面的相似度方法AUC提升5%以上。

基于百度自建测试集(包含聊天、客服等数据集)和语义匹配数据集(LCQMC)进行评测,效果如下表所示。

LCQMC数据集以Accuracy为评测指标,而Pairwise模型的输出为相似度,因此采用0.958作为分类阈值,相比于基线模型中网络结构同等复杂的CBOW模型(准确率为0.737),BOW_Pairwise的准确率提升为0.7532。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/similarity_net

3、序列标注

词法分析

百度自主研发中文特色模型词法分析任务(Lexical Analysis of Chinese),输入是一个字符串,而输出是句子中的词边界和词性、实体类别。

序列标注是词法分析的经典建模方式。LAC使用基于 GRU 的网络结构学习特征,将学习到的特征接入 CRF 解码层完成序列标注。

CRF解码层本质上是将传统 CRF 中的线性模型换成了非线性神经网络,基于句子级别的似然概率,因而能够更好的解决标记偏置问题。LAC能整体性地完成中文分词、词性标注、专名识别任务。

基于自建的数据集上对分词、词性标注、专名识别进行整体的评估效果,效果如下表所示。此外,在飞桨开放的语义表示模型 ERNIE 上 finetune,并对比基线模型、BERT finetuned 和 ERNIE finetuned 的效果,可以看出会有显著的提升。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/lexical_analysis

4、文本生成

机器翻译

机器翻译(machine translation, MT)是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程,输入为源语言句子,输出为相应的目标语言的句子。

Transformer 是论文 「Attention Is All You Need 」中提出的用以完成机器翻译(machine translation, MT)等序列到序列(sequence to sequence, Seq2Seq)学习任务的一种全新网络结构。

其同样使用了 Seq2Seq 任务中典型的编码器-解码器(Encoder-Decoder)的框架结构,但相较于此前广泛使用的循环神经网络(Recurrent Neural Network, RNN),其完全使用注意力(Attention)机制来实现序列到序列的建模。

基于公开的 WMT’16 EN-DE 数据集训练 Base、Big 两种配置的Transformer 模型后,在相应的测试集上进行评测,效果如下表所示。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/neural_machine_translation/transformer

5、语义表示与语言模型

语言表示工具箱

BERT 是一个迁移能力很强的通用语义表示模型, 以 Transformer 为网络基本组件,以双向 Masked Language Model和 Next Sentence Prediction 为训练目标,通过预训练得到通用语义表示,再结合简单的输出层,应用到下游的 NLP 任务,在多个任务上取得了 SOTA 的结果。

ELMo(Embeddings from Language Models) 是重要的通用语义表示模型之一,以双向 LSTM 为网路基本组件,以 Language Model 为训练目标,通过预训练得到通用的语义表示,将通用的语义表示作为 Feature 迁移到下游 NLP 任务中,会显著提升下游任务的模型性能。

PaddleNLP发布了基于百科类数据训练的预训练模型。

百度自研的语义表示模型ERNIE 通过建模海量数据中的词、实体及实体关系,学习真实世界的语义知识。相较于 BERT 学习原始语言信号,ERNIE直接对先验语义知识单元进行建模,增强了模型语义表示能力。

这里举个例子:

Learnt by BERT :哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城。

Learnt by ERNIE:[mask] [mask] [mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城。

在 BERT 模型中,我们通过『哈』与『滨』的局部共现,即可判断出『尔』字,模型没有学习与『哈尔滨』相关的任何知识。而 ERNIE 通过学习词与实体的表达,使模型能够建模出『哈尔滨』与『黑龙江』的关系,学到『哈尔滨』是 『黑龙江』的省会以及『哈尔滨』是个冰雪城市。

训练数据方面,除百科类、资讯类中文语料外,ERNIE 还引入了论坛对话类数据,利用 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话 Pair 对作为输入,引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss 学习对话的隐式关系,进一步提升模型的语义表示能力。

ERNIE在自然语言推断,语义相似度,命名实体识别,情感分析,问答匹配多项NLP中文任务上效果领先。

项目地址:

https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE

https://github.com/PaddlePaddle/LARK/tree/develop/BERT

https://github.com/PaddlePaddle/LARK/tree/develop/ELMo

语言模型

基于LSTM的语言模型任务是给定一个输入词序列(中文分词、英文tokenize),计算其PPL(语言模型困惑度,用户表示句子的流利程度),基于循环神经网络语言模型的介绍可以参阅论文「Recurrent Neural Network Regularization」。

相对于传统的方法,基于循环神经网络的方法能够更好的解决稀疏词的问题。此任务采用了序列任务常用的RNN网络,实现了一个两层的LSTM网络,然后LSTM的结果去预测下一个词出现的概率。

在small、meidum、large三个不同配置情况的ppl对比如下表所示。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/language_model

6、复杂任务

对话模型工具箱

Auto Dialogue Evaluation

对话自动评估模块主要用于评估开放领域对话系统的回复质量,能够帮助企业或个人快速评估对话系统的回复质量,减少人工评估成本。

1)在无标注数据的情况下,利用负采样训练匹配模型作为评估工具,实现对多个对话系统回复质量排序;

2)利用少量标注数据(特定对话系统或场景的人工打分),在匹配模型基础上进行微调,可以显著提高该对话系统或场景的评估效果。

以四个不同的对话系统(seq2seq_naive/seq2seq_att/keywords/human)为例,使用对话自动评估工具进行自动评估。

1)无标注数据情况下,直接使用预训练好的评估工具进行评估; 在四个对话系统上,自动评估打分和人工评估打分spearman相关系数,如下表所示。

2)对四个系统平均得分排序:

3)利用少量标注数据微调后,自动评估打分和人工打分spearman相关系数,如下表所示。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation

Deep Attention Matching Network

深度注意力机制模型是开放领域多轮对话匹配模型。根据多轮对话历史和候选回复内容,排序出最合适的回复。

多轮对话匹配任务输入是多轮对话历史和候选回复,输出是回复匹配得分,根据匹配得分排序,更多内容请参阅论文Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network。

两个公开数据集上评测效果如下表所示。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/deep_attention_matching

对话通用理解模型DGU

对话相关的任务中,Dialogue System常常需要根据场景的变化去解决多种多样的任务。任务的多样性(意图识别、槽位解析、DA识别、DST等等),以及领域训练数据的稀少,给Dialogue System的研究和应用带来了巨大的困难和挑战,要使得dialogue system得到更好的发展,需要开发一个通用的对话理解模型。基于BERT的对话通用理解模块(DGU:Dialogue General Understanding),通过实验表明,使用base-model(BERT)并结合常见的学习范式,在几乎全部对话理解任务上取得比肩甚至超越各个领域业内最好的模型的效果,展现了学习一个通用对话理解模型的巨大潜力。

DGU针对数据集开发了相关的模型训练过程,支持分类,多标签分类,序列标注等任务,用户可针对自己的数据集,进行相关的模型定制

基于对话相关的业内公开数据集进行评测,效果如下表所示。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/dialogue_general_understanding

知识驱动对话

人机对话是人工智能(AI)中最重要的话题之一,近年来受到学术界和工业界的广泛关注。目前,对话系统仍然处于起步阶段,通常是被动地进行交谈,并且更多地将他们的言论作为回应而不是他们自己的倡议,这与人与人的谈话不同。

因此, 百度在一个名为知识驱动对话的新对话任务上设置了这个竞赛,其中机器基于构建的知识图与人交谈。它旨在测试机器进行类似人类对话的能力。

这是提供基于检索和基于生成的基线系统。 这两个系统都是由PaddlePaddle(百度深度学习框架)和Pytorch(Facebook深度学习框架)实现的。 两个系统的性能如下表所示。

项目地址:

https://github.com/baidu/knowledge-driven-dialogue/tree/master

阅读理解

在机器阅读理解(MRC)任务中,会给定一个问题(Q)以及一个或多个段落(P)/文档(D),然后利用机器在给定的段落中寻找正确答案(A),即QP or D => A. 机器阅读理解(MRC)是自然语言处理(NLP)中的关键任务之一,需要机器对语言有深刻的理解才能找到正确的答案。

基于PaddlePaddle的阅读理解升级了经典的阅读理解BiDAF模型,去掉了char级别的embedding,在预测层中使用了pointer network,并且参考了R-NET中的一些网络结构,效果上有了提升(在DuReader2.0验证集、测试集的表现见下表)。

DuReader是一个大规模、面向真实应用、由人类生成的中文阅读理解数据集。DuReader聚焦于真实世界中的不限定领域的问答任务。相较于其他阅读理解数据集,DuReader的优势包括:

问题来自于真实的搜索日志

文章内容来自于真实网页

答案由人类生成

面向真实应用场景

标注更加丰富细致

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/reading_comprehension

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

    推荐阅读
  • 为什么水会沿着墙壁往楼下渗透(水会沿着墙壁往楼下渗透是为什么)

    为什么水会沿着墙壁往楼下渗透?下面内容希望能帮助到你,我们来一起看看吧!为什么水会沿着墙壁往楼下渗透首先因为万有引力的作用,水自然是向下流;其次是因为水的吸附力、表面张力等特性的原因,表面张力使水被限制在墙壁表面附近,由于地球引力的作用会顺着表面向下流淌;还有就是渗透原理,水分子会向密度比较大的物质那一方流动,再加上引力因素,所以会有水沿着墙壁往楼下渗透的现象。

  • 老鸭功效与作用及禁忌(吃鸭肉的好处和禁忌)

    老鸭功效与作用及禁忌益气补虚:其肉性味甘、寒,入肺胃肾经,有大补虚劳、滋五脏之阴、清虚劳之热、补血行水、养胃生津、止咳自惊、消螺蛳积、清热健脾、虚弱浮肿等功效;治身体虚弱、病后体虚、营养不良性水肿。用老而肥大之鸭同海参炖食,具有很大的滋补功效,炖出的鸭汁,善补五脏之阴和虚痨之热。禁忌,胃部冷痛、腹泻清稀、腰痛及寒性痛经以及肥胖、动脉硬化、慢性肠炎应少食;感冒患者不宜食用。

  • steam公开新一周销量排行(Steam一周销量榜口碑大崩)

    《战地2042》—排名第一、第二、第三作为年度FPS游戏,本作上榜拿冠军无可厚非。但没想到解禁才刚刚两天,《战地2042》的口碑便断崖式下跌,目前Steam好评率仅仅只有26%。而且从网络数据显示,虽然《战地2042》不仅在Steam销量排行中屠榜了,但因为游戏质量的缘故,同时在Steam十大最差排行榜中也名列前茅。之所以会如此,是因为《战地2042》游戏的优化问题过于严重。游戏虽然有《英雄联盟》的授权,但其实在游戏内容上两者差别很多。

  • 迪士尼动画电影灰姑娘(迪士尼最受欢迎的真人翻拍电影灰姑娘排第一)

    迪士尼最受欢迎的真人翻拍电影灰姑娘排第一改编自迪士尼经典动画的“真狮版”电影《狮子王》正在热映,片中的视觉效果令人叹为观止,但也有一些观众认为剧情有缺陷,不能入戏,感觉像在看纪录片这些年来迪士尼拍了不少基于经典动画的真人版电影,哪些电影的口。

  • 世界杯足球赛几年举办一次(世界杯足球赛时间)

    以下内容希望对你有帮助!世界杯足球赛几年举办一次世界杯每四年举办一次。世界杯每四年举办一次,任何国际足联会员国(地区)都可以派出代表队报名参加这项赛事。

  • 东坡肉要不要焯水(东坡肉属于什么菜系)

    东坡肉要不要焯水东坡肉用的是肥瘦相间的五花肉。在做之前五花肉需要先焯水,焯水的目的是为了方便刮除肉皮的细毛等。东坡肉又名滚肉、红烧肉是江南地区汉族传统名菜,属于浙菜系,以猪肉为主要食材。东坡肉的主料和造型大同小异,主料都是半肥半瘦的猪肉,成品菜都是码得整整齐齐的麻将块儿,红得透亮,色如玛瑙,夹起一块尝尝,软而不烂,肥而不腻。

  • 肛门外有个小肉疙瘩很痒怎么回事 肛门外有个小肉疙瘩痒痒的怎么回事

    尖锐湿疣患者肛门周围的小疙瘩常为乳头状、菜花状或鸡冠状的肉质赘生物,根部常有蒂,红色或污灰色,非常容易破溃出血,有恶臭肝,易感染。

  • 紫花苜蓿的种植管理技术,紫花苜蓿种植方法总结

    近年来,苜蓿种植面积迅速增加。土地选择和准备虽然紫花苜蓿对土壤没有严格的要求,但为了提高种植的产量和质量,建议选择的种植小区应平坦,不低洼、不积水,土层应深厚肥沃,碱度不宜过大。紫花苜蓿种子可浸泡50-60分钟℃加水30分钟,然后取出晾干,晾干后再播种。适时播种紫花苜蓿可在春、夏、秋三季种植,但以春、秋两季播种为佳。一般来说,紫花苜蓿是我国广泛应用的优质牧草,种植难度不大。

  • 行李箱子忘记了密码怎么办(如果你的箱子忘记密码了该怎么办)

    对于经常外出的人来说,选购一个安全易携带的拉杆箱非常重要,尤其是拉杆箱的密码锁,让很多人大伤脑筋,到底拉杆箱密码锁怎么用,拉杆箱密码锁怎么修改呢?现在市场上的拉杆箱密码锁都是由三个数字滚轮设计的三个数字分别由三个轮子组合而成的,三个塑料的齿轮同时穿在一根塑料柱子上,塑料齿轮转到合适的地方锁头正好对准就可以打开箱子。

  • 讲人心经典句子(说明人心的句子)

    世界上最恶心的事情,就是你看见了一个人虚伪的一面,可是其他人没看见,他们以为他就是表面上的那么美好。永远不要瞧不起那些现在看起来很俗的人。若干年以后,他们或许就是最不俗的人。贫在闹市无人问,富在深山有远亲。只要有人的地方就有是非;只要人家有嘴巴,就会有意见和批评。再者,太在意别人想法的人,不仅不能快乐,也容易失去自己的特色和个性,更没办法发挥自己的潜能。