最新中文NLP開源工具箱來了!支持6大任務,面向工業應用|資源

2021-01-10 量子位

銅靈 發自 凹非寺量子位 出品 | 公眾號 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/ERNIEhttps://github.com/PaddlePaddle/LARK/tree/develop/BERThttps://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),即Q + P 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

相關焦點

  • 斯坦福發布重磅NLP工具包StanfordNLP,支持中文等53種語言
    新智元報導 來源:stanfordnlp.github.io編輯:肖琴【新智元導讀】斯坦福團隊最新發布一個NLP任務的軟體包StanfordNLP,通過Python接口為53種語言提供標記、依存句法分析等NLP任務的重要工具
  • 百度ERNIE語義理解開源套件重磅升級 零基礎也能秒變NLP達人
    藉助國產深度學習框架飛槳動態圖優勢,本次升級實現了「動態圖」與「靜態圖」的完美結合,即「一套代碼,兩種運行方式」,使得開發者更加高效、方便的使用ERNIE解決工業生產中的各類NLP問題,達到簡單幾行代碼即可實現基於ERNIE的文本分類、情感分析等經典NLP任務。
  • Android 9.0重磅新功能:原生支持虹膜識別
    中關村在線消息:昨天,谷歌已經正式公布了Google I/O 2018開發者大會日程安排,大會將於5月7日-10日舉行,屆時將會帶來Google Pay、Android即時應用、Android KTX、Android Kotlin開發和入門,以及Android、Android apps for
  • 2019自然語言處理前沿論壇 五大議題全面解析NLP技術前沿
    5月26日,由百度與中國計算機學會中文信息技術專委會、中國中文信息學會青工委聯合舉辦的「2019自然語言處理前沿論壇」正式召開。本屆論壇主題為「機器之『讀、寫、說、譯』—— 探尋NLP未來之路」。論壇圍繞語義計算、自動問答、語言生成、人機對話及機器翻譯五大議題,與學術界、工業界一線青年專家學者共同探討NLP領域的最新技術進展、產業應用及發展趨勢。
  • 這套1600贊的NLP課程已開放,面向實戰,視頻代碼都有丨資源
    銅靈 發自 凹非寺量子位 出品 | 公眾號 QbitAI紙上得來終覺淺,決勝NLP要躬行。一套面向實戰、號稱「代碼優先」的NLP課程來了,名字為A Code-First Introduction to Natural Language Processing,fast.ai出品,全程免費學習。不到半天點讚超過1600,轉發近500。
  • GitHub手機App已支持簡體中文;華為畢昇正式發布上線
    GitHub 手機 App 現已支持簡體中文當地時間 9 月 29 日,GitHub 官方宣布,GitHub 移動版新增支持包括簡體中文在內的多種語言。GitHub App 現已支持簡體中文、巴西葡萄牙語、日語和西班牙語。GitHub 表示:「現在,更多的開發人員可以隨時使用自己選擇的語言來管理任務、提供反饋、回應問題以及審查與合併拉取請求。」
  • 中文NLP福利!大規模中文自然語言處理語料
    新智元推薦來源:AINLP作者:徐亮【新智元導讀】本文介紹一個中文自然語言處理語料庫項目:nlp_chinese_corpus ,初步貢獻了幾個已經預處理好的中文語料,包括維基、新聞和百科語料,可直接下載使用。
  • 11 個開源的面向文檔資料庫
    本文介紹 11 個開源的面向文檔的資料庫系統: 1. MongoDB MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。他支持的數據結構非常鬆散,是類似 json的bjson格式,因此可以存儲比較複雜的數據類型。
  • 港中文開源視頻動作分析庫MMAction,目標檢測庫算法大更新
    2018 年 10 月,在 OpenMMLab 的首期計劃中,商湯和港中文正式開源了 mmdetection,這是一個基於 PyTorch 的開源目標檢測工具包。該工具包支持 Mask RCNN 等多種流行的檢測框架,讀者可在 PyTorch 環境下測試不同的預訓練模型及訓練新的檢測分割模型。
  • 百度開源2020年度報告:兩大開源平臺、九個捐贈項目
    03累計向4大基金會捐贈了九個開源項目1、超級鏈(XuperChain)2019年5月,百度基於持續多年在區塊鏈技術與應用領域的研究與探索,推出了完全自主智慧財產權的區塊鏈底層技術——超級鏈(XuperChain)並正式開源,現已成為國內最具影響力的區塊鏈開源技術之一,其具有四大核心技術亮點,如下:1)高度易用:多語言智能合約支持、多語言sdk+
  • 你所不知道的 EMC 開源的那些事
    前一段時間去參加 EMC World 2016大會[1],在大會上的見聞了種種新技術,也第一時間聽到了不少最新披露的消息。這期間,令筆者非常吃驚的是,EMC 在開源方面的步伐之大,遠在很多同儕之上。這個名字代表著一句他們的開源戰略:COMMUNITY ONRAMP for DEVELOPER ENABLEMENT,這句願景似的標語如果用中文來描述,可以解釋為:「讓開發者進入高速通道的社區之路」。EMC {code} 建立兩年來,目前已經發布了多達48 個開源項目——哦不, 49 個了,就在寫作這篇隨筆的時間裡又增加了一個。
  • 國內自然語言處理(NLP)研究組
    小編第一次講技術了,希望大家多多支持,啥都不說了,先把重要實驗室奉上。中科院自動化研究所語音語言技術研究組中文信息處理組nlpr-web.ia.ac.cn中國科學院軟體研究所中文信息處理實驗室中科院軟體所中文信息處理實驗室www.icip.org.cn清華大學自然語言處理與社會人文計算實驗室歡迎來到清華大學自然語言處理與社會人文計算實驗室nlp.csai.tsinghua.edu.cn清華大學交互式人工智慧(CoAI
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    另外,雷鋒網 AI 研習社在原文的基礎上補充了部分開源項目,為 AI 開發者提供更加詳細的 AI 項目和資源。機器學習是用數據來學習、概括、預測的研究。近幾年,隨著數據的開發、算法的改進以及硬體計算能力的提升,機器學習技術得以快速發展,不斷延伸至新的領域。
  • 一行命令跑評測,港中文MMLab開源自監督表徵學習代碼庫
    近日,香港中文大學多媒體實驗室(MMLab)和南洋理工大學的研究者開源了一套統一的自監督學習代碼庫 OpenSelfSup。前言近幾個月來自監督表徵學習領域獲得了顯著突破,特別是隨著 Rotation Prediction、DeepCluster、MoCo、SimCLR 等簡單有效的方法的誕生,自監督表徵學習大有超越有監督表徵學習的趨勢。
  • 百度NLP主任架構師全面講解百度語義表示技術及最新進展
    本文主要介紹百度在語義表示方向的技術發展和最新的研究成果艾尼(ERNIE),同時也會介紹工業應用價值很大、百度積累多年的語義匹配SimNet的相關內容,最後再談談未來的重點工作。一、語義表示計算機理解語言是一個具有很大挑戰的問題。
  • 盤點面向物聯網的21個開源軟體項目
    Eclipse物聯網子項目包括Paho消息傳送協議框架、面向輕量級伺服器的Mosquitto MQTT架構和Eclipse SmartHome框架。還有一個基於Java、實現受限制的應用協議(CoAP)的項目,名為Californium。
  • NeuralNLP-NeuralClassifier:騰訊開源深度學習文本分類工具
    NeuralClassifier旨在通過良好的架構設計,集成業界主流的文本分類模型和各種優化機制,支持儘可能廣泛的文本分類任務,如多標籤分類,層次分類等,並方便用戶在工具基礎上自定義模型和進行更靈活的擴展。
  • 973計劃項目「面向三元空間的網際網路中文信息處理理論與方法」啟動
    973計劃項目「面向三元空間的網際網路中文信息處理理論與方法」啟動    清華新聞網2月27日電 2月25日,國家「973計劃」項目「面向三元空間的網際網路中文信息處理理論與方法」啟動會在清華大學召開。  啟動會由該項目首席科學家、計算機系教授孫茂松主持。
  • 《PyTorch中文手冊》來了
    PyTorch書籍 —— PyTorch 中文手冊,並附上試讀。本書提供PyTorch快速入門指南並與最新版本保持一致,其中包含的 Pytorch 教程全部通過測試保證可以成功運行。PyTorch 是一個深度學習框架,旨在實現簡單靈活的實驗。
  • 資源| 史丹福大學NLP組開放神經機器翻譯代碼庫(附論文)
    在 WMT' 15 英語-捷克語的翻譯任務上,這種混合方法還實現了一個額外的+ 2.1 BLEU 分的提升——超過已經能處理未知單詞的模型 11.4 BLEU 分。我們的最佳系統在這個任務上達到了新的最佳表現:20.7 BLEU 分。我們證明了我們的字符模型不僅能成功地學習生成形式很好的捷克語詞(這是一種詞彙複雜高度屈折的語言),還能為英語源詞建立了正確的表徵。