NeuralNLP-NeuralClassifier:騰訊開源深度學習文本分類工具

2021-01-14 機器學習算法與自然語言處理

點擊上方「MLNLP」,選擇「星標」公眾號

重磅乾貨,第一時間送達


推薦一下騰訊的開源NLP項目:NeuralNLP-NeuralClassifier

NeuralClassifier: An Open-source Neural Hierarchical Multi-label Text Classification Toolkit

Github連結,點擊閱讀原文可以直達:

https://github.com/Tencent/NeuralNLP-NeuralClassifier

以下是來自騰訊開源的官方報導

NeuralNLP是騰訊廣告(Tencent Marketing Solution,TMS)(https://e.qq.com/)數據算法團隊搭建的一個基於PyTorch的深度學習NLP公共實驗平臺,主要涵蓋文本分類、序列標註、語義匹配、BERT微調和文本生成等,目前已經廣泛應用於騰訊廣告業務文本相關的需求場景中,如廣告定向、相關性計算、LookAlike、動態創意、點擊率/轉化率預估等。

NeuralClassifier是NeuralNLP的一個子項目,是一款基於PyTorch開發的深度學習文本分類工具。NeuralClassifier旨在通過良好的架構設計,集成業界主流的文本分類模型和各種優化機制,支持儘可能廣泛的文本分類任務,如多標籤分類,層次分類等,並方便用戶在工具基礎上自定義模型和進行更靈活的擴展。

NeuralClassifier的功能匯總如下:

支持大部分的分類任務:二分類、多分類、多標籤分類、層次分類

支持眾多模型:主流模型如FastText、TextCNN、TextRNN(Bi-GRU/LSTM)等,還支持最新的state-of-the-art模型,如VDCNN、DPCNN、Region Embedding、AttentiveConvNet、DRNN、Transformer等,並方便支持用戶自定義模型結構

支持主流機制,如Attention、Pre-trained embedding等

支持數據輸入的多線程加速讀取、變長和定長輸入、詞和字符級輸入、自定義輸入等

支持多種損失函數,如Softmax/Sigmoid交叉熵、Focal Loss等

NeuralClassifier的一個特色是提供了對於層次多標籤分類(Hierarchical Multi-label Classification, HMC)任務的支持,同時集成了非常多的文本分類模型。層次多標籤分類的神經網絡模型目前業界還主要針對特定的模型結構,並沒有集成到一起的比較好用的工具。與業界層次多標籤分類工具對比情況如下表所示。



NeuralClassifier採用分層的架構設計,從下到上依次為:input layer、embedding layer、encoder layer、output layer。input層負責讀取文本輸入並做格式處理,embedding層對文本進行embedding處理,並在encoder層進行編碼表示。output層負責對encoder層輸出的信息做基於目標分類任務的轉換,如二分類、多分類、層次分類等。用戶可以通過一個配置文件方便的配置不同層的各種模型和Features。

我們選取了業界主流的兩個層次多標籤分類數據集:RCV1和Yelp,並在其上對比了和SOTA的效果,結果表明根據NeuralClassifier提供的豐富模型和Features,可以取得和SOTA相當的效果。此外,我們還對比了NeuralClassifier提供的不同的文本分類模型(Text encoder)的效果,以及層次分類和普通單層分類的效果。


0. Dataset


1. Compare with SOTA


HR-DGCNN (Peng et al., 2018)

HMCN (Wehrmann et al., 2018)


2. Different text encoders



3. Hierarchical vs Flat


我們期望NeuralClassifier工具能夠幫助業界的同仁快速的搭建深度學習文本分類應用,也希望我們實現的功能,尤其是對於多標籤分類和層次分類,能夠有助於業界相關領域的應用。深度學習的自然語言處理技術發展非常迅速,神經網絡的模型和實現方式也很靈活,NeuralClassifier期待大家共同完善。

NeuralClassifier詳細的介紹也可以參考我們發表在ACL2019的System demonstration paper: NeuralClassifier: An Open-source Neural Hierarchical Multi-label Text Classification Toolkit.

NeuralClassifier 正式開源

Github 開源地址:
https://github.com/Tencent/NeuralNLP-NeuralClassifier

(點擊文末閱讀原文直接訪問)

請給 NeuralClassifier一個 Star !

歡迎提出你的 issue 和 PR!

NeuralClassifier 國內鏡像地址:

https://git.code.tencent.com/Tencent_Open_Source/NeuralNLP-NeuralClassifier

騰訊工蜂源碼系統為開源開發者提供完整、最新的騰訊開源項目國內鏡像



相關焦點

  • 深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統
    事實上,從分詞、詞性、語法解析、信息抽取等基礎模塊,到自然語言生成、機器翻譯、對話管理、知識問答等高層的 NLP 領域,幾乎都可以應用以 CNN、RNN 為代表的深度學習模型,且確實能夠取得不錯的效果。深度學習模型有效降低了語言模型輸入特徵的維度,降低了輸入層的複雜性。另外,深度學習模型具有其他淺層模型不能比擬的靈活性。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。生成學習算法 (Stanford CS229)http://cs229.stanford.edu/notes/cs229-notes2.pdf貝葉斯分類算法之實例解析(monkeylearn.com)https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。(Stanford CS231n)http://cs231n.github.io/optimization-2/10、深度學習果殼裡的深度學習(nikhilbuduma.com)
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。 生成學習算法 (Stanford CS229)http://cs229.stanford.edu/notes/cs229-notes2.pdf 貝葉斯分類算法之實例解析(monkeylearn.com)https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier
  • 斯坦福發布重磅NLP工具包StanfordNLP,支持中文等53種語言
    新智元報導 來源:stanfordnlp.github.io編輯:肖琴【新智元導讀】斯坦福團隊最新發布一個NLP任務的軟體包StanfordNLP,通過Python接口為53種語言提供標記、依存句法分析等NLP任務的重要工具
  • 基於Bert和通用句子編碼的Spark-NLP文本分類
    文本分類是現代自然語言處理的主要任務之一,它是為句子或文檔指定一個合適的類別的任務。類別取決於所選的數據集,並且可以從主題開始。每一個文本分類問題都遵循相似的步驟,並用不同的算法來解決。更不用說經典和流行的機器學習分類器,如隨機森林或Logistic回歸,有150多個深度學習框架提出了各種文本分類問題。
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    另外,雷鋒網 AI 研習社在原文的基礎上補充了部分開源項目,為 AI 開發者提供更加詳細的 AI 項目和資源。機器學習是用數據來學習、概括、預測的研究。近幾年,隨著數據的開發、算法的改進以及硬體計算能力的提升,機器學習技術得以快速發展,不斷延伸至新的領域。
  • 實踐入門NLP:基於深度學習的自然語言處理
    【課程概述 】本課程將首先介紹自然語言處理的發展現狀與挑戰,同時,講解深度學習和自然語言處理的結合應用。除了基本算法外,本課程還配備實踐環節,從一些典型的方向:機器翻譯、文本分類、問答等。如何利用開源工具包完成什麼是統計自然語言處理?
  • 教程| 利用AllenNLP,百行Python代碼訓練情感分類器
    情感分析是一種流行的文本分析技術,用來對文本中的主觀信息進行自動識別和分類。它被廣泛用於量化觀點、情感等通常以非結構化方式記錄的信息,而這些信息也因此很難用其他方式量化。只關注單個單詞的樸素詞袋分類器很難對上面的例句進行正確的分類。要想正確地對上述例句的極性進行分類,你需要理解否定詞(neither ... nor ...)對語義的影響。由於 SST 具備這樣的特性,它被用作獲取句子句法結構的神經網絡模型的標準對比基準(https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf)。
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    ,我將使用NLP和Python來解釋3種不同的文本多分類策略:老式的詞袋法(tf-ldf),著名的詞嵌入法(Word2Vec)和最先進的語言模型(BERT)。NLP常用於文本數據的分類。文本分類是指根據文本數據內容對其進行分類的問題。我們有多種技術從原始文本數據中提取信息,並用它來訓練分類模型。本教程比較了傳統的詞袋法(與簡單的機器學習算法一起使用)、流行的詞嵌入模型(與深度學習神經網絡一起使用)和最先進的語言模型(和基於attention的transformers模型中的遷移學習一起使用),語言模型徹底改變了NLP的格局。
  • 最新中文NLP開源工具箱來了!支持6大任務,面向工業應用|資源
    銅靈 發自 凹非寺量子位 出品 | 公眾號 QbitAI對於開發者來說,又有一個新的NLP工具箱可以使用了,代號PaddleNLP,目前已開源。在這個基於百度深度學習平臺飛槳(PaddlePaddle)開發的工具箱裡,裝有大量工業級中文NLP開源工具與預訓練模型。
  • 回望2017,基於深度學習的NLP研究大盤點
    在過去的幾年裡,深度學習(DL)架構和算法在諸如圖像識別和語音處理等領域取得了世人矚目的進步。然而在最開始的時候,深度學習在自然語言處理(Natural Language Processing, NLP)領域的效果一般,但是現在已經被證實深度學習在自然語言處理領域依然能夠發揮巨大的作用。並且在一些常見的自然語言處理任務中,基於深度學習的方法已經取得了最佳的結果。
  • 使用PyTorch建立你的第一個文本分類模型
    概述學習如何使用PyTorch執行文本分類理解解決文本分類時所涉及的要點學習使用包填充(Pack Padding)特性介紹我總是使用最先進的架構來在一些比賽提交模型結果。得益於PyTorch、Keras和TensorFlow等深度學習框架,實現最先進的體系結構變得非常容易。
  • 126篇殿堂級深度學習論文分類整理 從入門到應用 | 乾貨
    [pdf] (Ian Goodfellow 等大牛所著的教科書,乃深度學習聖經。接下來的論文,將帶你深入探索深度學習方法、在不同領域的應用和前沿尖端技術。我建議,你可以根據興趣和工作/研究方向進行選擇性的閱讀。2 深度學習方法2.1 模型█[14] Hinton, Geoffrey E., et al.
  • 掌握深度學習,數據不足也能進行圖像分類!
    ——吳恩達圖像分類即根據固定類別對輸入的圖像設置標籤。儘管計算機視覺過於簡單,但是它在實際中仍有廣泛的應用,而圖像分類就是其中的核心問題之一。在本文中,小芯將示範如何在數據不足的情況下應用深度學習。現已創建特製汽車和巴士分類器兩個數據集,每個數據集包含100個圖像。其中,訓練集有70個圖像,驗證集有30個。挑戰1.
  • 專欄| NLP概述和文本自動分類算法詳解
    針對中文分詞的這個應用,有多種處理方法,包括基於詞典的方法、隱馬爾可夫模型(HMM)、最大熵模型、條件隨機場(CRF)、深度學習模型(雙向 LSTM 等)和一些無監督學習的方法(基於凝聚度與自由度)。 4.
  • 機器學習初學者入門實踐:怎樣輕鬆創造高精度分類網絡
    /首先,我們要使用來自伯克利視覺和學習中心(Berkely Vision and Learning Center)的 Caffe 深度學習框架(BSD 授權)。你可以聲明性地完成所有工作(Caffe 使用結構化的文本文件來定義網絡架構),並且也可以使用命令行工具。另外,你也可以為 Caffe 使用一些漂亮的前端,這能讓你的訓練和驗證過程簡單很多。基於同樣的原因,下面我們會選擇 NVIDIA 的 DIGITS。Caffe 的安裝有點麻煩。
  • 搞定NLP領域的「變形金剛」!教你用BERT進行多標籤文本分類
    大數據文摘出品來源:medium編譯:李雷、睡不著的iris、Aileen過去的一年,深度神經網絡的應用開啟了自然語言處理的新時代。預訓練模型在研究領域的應用已經令許多NLP項目的最新成果產生了巨大的飛躍,例如文本分類,自然語言推理和問答。
  • 對抗深度學習:魚(模型準確性)與熊掌(模型魯棒性)能否兼得?
    分類的準確度長期以來都是評價圖像分類模型性能的最核心甚至唯一標準。但最近研究表明,即使是充分訓練好的深度神經網絡模型也很容易被對抗攻擊算法攻破。對抗攻擊是指在圖像上加入特定的且人眼無法察覺的微量噪聲,使得目標模型對加噪之後得到的對抗樣本做出錯誤分類。
  • 深度學習零基礎進階第四彈​|乾貨分享
    系列,相信讀者一定對深度學習的歷史有了一個基本了解,其基本的模型架構(CNN/RNN/LSTM)與深度學習如何應用在圖片和語音識別上肯定也不在話下了。今天這一部分,我們將通過新一批論文,讓你對深度學習在不同領域的運用有個清晰的了解。由於第三部分的論文開始向細化方向延展,因此你可以根據自己的研究方向酌情進行選擇。雷鋒網對每篇論文都增加了補充介紹。