主頁 >  其他 > NLP文本分類

NLP文本分類

2021-06-09 18:03:17 其他

引言

其實最近挺糾結的,有一點點焦慮,因為自己一直都期望往自然語言處理的方向發展,夢想成為一名NLP演算法工程師,也正是我喜歡的事,而不是為了生存而作業,我覺得這也是我這輩子為數不多的剩下的可以自己去追求自己喜歡的東西的機會了,然而現實很殘酷,大部分的公司演算法工程師一般都是名牌大學,碩士起招,如同一個跨不過的門檻,讓人望而卻步,即使我覺得可能這個方向以后的路并不如其他的唾手可得的路輕松,但我的心中卻一直有一股信念讓我義無反顧,不管怎樣,夢還是要有的,萬一實作了呢~

扯得有點遠了hhh,回到文章,因為目前有在做涉及到文本分析(情感分析)的專案,也想為以后的相關專案做下知識儲備,最近開始入坑Tensorflow的一些深度學習的NLP相關實踐,同時學習了文本分類領域中基于深度學習的模型的一些應用知識(然而還是個菜鳥,半懂不懂的哈哈哈),這里對相關知識進行了總結,鞏固個人知識體系,同時分享給大家~

(提前宣告:菜雞觀點,非大佬觀點,歡迎糾正,也會不斷修正的)

持續更新........

基于深度學習的文本分類

文本分類領域,目前主要可分為:

  • 情感分析
  • 新聞分析
  • 主題分類
  • 問答系統
  • 自然語言推理(NLI)

五大領域(當然也有一些其他細分領域,這里不進行討論),近幾年隨著深度學習在自然語言處理領域的應用,文本分類也進入了由深度學習模型所導引的第三個階段,逐漸超越了基于傳統機器學習的方法,


目前,學術界針對文本分類所提出的深度學習模型大致有150多種,根據結構可分為11大類:

  • 前饋網路:將文本視為詞袋
  • 基于RNN的模型:將文本視為一系列單詞,旨在捕獲文本單詞依存關系和文本結構
  • 基于CNN的模型:經過訓練,可以識別文本分類的文本模式(例如關鍵短語),
  • 膠囊網路(Capsule networks):解決了CNN在池化操作時所帶來的資訊丟失問題,
  • 注意力機制:可有效識別文本中的相關單詞,并已成為開發DL模型的有用工具,
  • 記憶體增強網路:將神經網路與某種外部存盤器結合在一起,該模型可以讀取和寫入,
  • 圖神經網路:旨在捕獲自然語言的內部圖結構,例如句法和語意決議樹,
  • 暹羅神經網路(Siamese):專門用于文本匹配,這是文本分類的特殊情況,
  • 混合模型(Hybrid models):結合了注意力,RNN,CNN等以捕獲句子和檔案的區域和全域特征,
  • Transformers:比RNN擁有更多并行處理,從而可以使用GPU高效的(預)訓練非常大的語言模型,
  • 監督學習之外的建模技術:包括使用自動編碼器和對抗訓練的無監督學習,以及強化學習,


阿巴阿巴,如果看不太懂也沒關系,我也只認識比較經典的幾個hhh,但是可以了解下做儲備嘛,也許哪一天就接觸到了呢~下面這張圖是2013年至2020年發布的一些很經典的深度學習文本嵌入和分類模型,我們可以看到入門的word2vec在2013年就已經提出來了,還有當下比較熱門的Tree-LSTM、BERT也是前幾年提出來的,的確是更新很快啊emmmm...
image.png

如何選擇合適的神經網路模型

我們在針對文本分類任務選擇最佳的神經網路結構時,常常會很迷茫,像我這種菜鳥就是百度下哪個模型社區比較火就用大佬們的代碼來復現hhh(當然使用比較多也說明這個模型的性能和適用性不會太差),老師常說,其實要多試,采用精度最高的,嗚嗚嗚,然而現實是前期用來做精度驗證的資料集的標注就是一個很大的工程量了,然后每一個模型的實作也.....很!復!雜!啊!超級燒腦,畢竟神經網路的構建可不是傳統機器學習演算法那樣調一兩個引數就好了~
當然,多試肯定是要多試的,但是我們應該有選擇性的試,那么,初步的篩選、確定模型的類別就很重要了,這一點其實很靠經驗,我這個菜雞就不教壞大家了,我們來看下大佬的官方思路:


神經網路結構的選擇取決于目標任務和領域,領域內標簽的可用性,應用程式的延遲和容量限制等,這些導致選擇差異會很大,盡管毫無疑問,開發一個文本分類器是反復試錯的程序,但通過在公共基準(例如GLUE )上分析最近的結果,我們提出了以下方法來簡化該程序,該程序包括五個步驟:

  • 選擇PLM(PLM,pretraining language model預訓練語言模型):使用PLM可以顯著改善所有流行的文本分類任務,并且自動編碼的PLM(例如BERT或RoBERTa)通常比自回歸PLM(例如OpenAI GPT)更好,Hugging face擁有為各種任務開發的豐富的PLM倉庫,
  • 領域適應性:大多數PLM在通用領域的文本語料庫(例如Web)上訓練,如果目標領域與通用的領域有很大的不同,我們可以考慮使用領域內的資料,不斷地預訓練該PLM來調整PLM,對于具有大量未標記文本的領域資料,例如生物醫學,從頭開始進行語言模型的預先訓練也可能是一個不錯的選擇,
  • 特定于任務的模型設計:給定輸入文本,PLM在背景關系表示中產生向量序列,然后,在頂部添加一個或多個特定任務的層,以生成目標任務的最終輸出,特定任務層的體系結構的選擇取決于任務的性質,例如,需要捕獲文本的語言結構,比如,前饋神經網路將文本視為詞袋,RNN可以捕獲單詞順序,CNN擅長識別諸如關鍵短語之類的模式,注意力機制可以有效地識別文本中的相關單詞,而暹羅神經網路則可以用于文本匹配任務,如果自然語言的圖形結構(例如,分析樹)對目標任務有用,那么GNN可能是一個不錯的選擇,
  • 特定于任務的微調整:根據領域內標簽的可用性,可以使用固定的PLM單獨訓練特定任務的層,也可以與PLM一起訓練特定任務的層,如果需要構建多個相似的文本分類器(例如,針對不同領域的新聞分類器),則多任務微調是利用相似領域的標記資料的好選擇,
  • 模型壓縮:PLM成本很高,它們通常需要通過例如知識蒸餾進行壓縮,以滿足實際應用中的延遲和容量限制,


是不是看不懂了,我攤牌了,第一遍讀完我整個人都是懵的,然后又仔細讀了兩遍,好像懂了一點點,又百度了一些專業名詞,又懂了一丟丟了,但還是懂一半啊哈哈哈哈,估計要真正走一遍流程之后采用完全解讀吧!等之后有時間實踐一遍我再重新更新解讀一下!

模型性能分析

當下常用的用于評估文本分類模型性能的指標,以下介紹4種:

  • 準確率和錯誤率(Accuracy and Error Rate):評估分類模型質量的主要指標,是從整體角度出發的,假設TP,FP,TN,FN分別表示真積極,假積極,真消極和假消極,??為樣本總數,分類精度和錯誤率在等式中定義如下:

    • Accuracy=(TP+TN)/N
    • Error Rate=(FP+FN)/N
    • Error Rate= 1-Accuracy
  • 精度/召回率/ F1分數(Precision / Recall / F1 score):也是主要指標,針對于預測結果而言的,F1分數是精度和查全率的調和平均值,一般情況下用于單個分類類別樣本的驗證,對于多類別分類問題,也可以為每個類別標簽計算精度和召回率,并分析類別標簽上的各個性能,或者對這些值取平均值以獲取整體精度和召回率,F1較高說明模型比較理想,

    • Precision = TP/(TP+FP)
    • Recall = TP/(TP+TN)
    • F1 score = 2Precision*Recall/(Precision+Recall)
  • Exact Match(EM):精確匹配度量標準是問答系統的一種流行度量標準,它可以測量與任何一個基本事實答案均精確匹配的預測百分比,EM是用于SQuAD的主要指標之一,

  • Mean Reciprocal Rank(MRR):MRR通常用于評估NLP任務中的排名演算法的性能,例如查詢檔案排名和QA,??是所有可能答案的集合,ranki是真相答案的排名位置,

image.png

  • 其他廣泛使用的指標包括平均精度Mean Average Precision(MAP),曲線下面積 Area Under Curve(AUC),錯誤發現率False DiscoveryRate,錯誤遺漏率False Omission Rate,僅舉幾例,


相關的定義百度很多hhh,這里有幾個點是我在學習程序中注意到的:

  • 很多人會把Accuracy和Precision搞混,雖然中文轉換過來經常回混用,但切記這是兩個不同的東西,一個時相對整體的指標,一個是相對于預測結果的,
  • 一般情況下,查準率(精度)和查全率(召回率)不能同時提高,這是很多人都不太會注意的點,所以解釋一下,一般當查準率比較低時,我們會提高閾值,即減少輸入的測驗樣本,從而保證模型預測出的正例都是真實的正例,很明顯這個時候雖然查準率提高了,但我輸入的總測驗樣本減少了,導致有些樣本你本來可以正確預測的,但你并沒有輸入,這個就是提高 Precision 而導致 Recall 降低的程序,你也可以反過來,得到的就是提高 Recall 而導致 Precision 降低的程序,所以,一般Precision高,Recall低;Recall低高,Precision低
  • P-R曲線問題,這里貼一張在網上淘到的某位大佬的筆記hhh,所以就截圖放進來了,講的很透徹:

image.png


當然深度學習模型性能分析除了使用常用的評估文本分類模型性能的指標進行評估外,還可以與傳統的機器學習演算法或其他非深度學習模型指標進行一個對比,進一步來凸顯性能的提升,

看法:機遇與挑戰

深度學習其實是一個很早前提出來的東西,卻在近幾年火得一塌糊涂,不僅源于相關理論、硬體條件的發展,當然也源于其強大的應用成效,借助深度學習模型,CV和NLP的相關領域也取得了很大的進步,前沿、先進的新穎思路也層出不窮,如神經嵌入,注意力機制,自我注意力,Transformer,BERT和XLNet,這些思想導致了過去十年的快速發展,在這方面,國內其實做的還不夠完善,相比于國外大量成熟的落地專案和開源工具,然而,由于中文語言的特殊性,我們也看到中文自然語言處理,中文文本分析還具有很大的發展改善空間,很多公司也開拓了中文文本分析的一站式業務,并致力于 提升其適用性和精確度,

缺少大規模的中文領域資料集,這是我在中文自然語言探索時所發現的一個國內學術的重大缺失,這在一定程度上也抑制了一些相關領域的發展,同時也難以形成一個微細分通用領域的模型評測度量,這也導致了很多小型團隊的研究成果也難以推廣,在這個基礎上,針對更具挑戰性的文本分類任務構建新的資料集,例如具有多步推理的QA,針對多語言檔案的文本分類,用于極長的檔案的文本分類也將成為下一個中文文本分析領域飛速發展的突破口,(僅代表個人觀點hhh)

除此之外,因為目前大多數的深度學習模型是受監督型別,所以需要大量的領域標注文本,需要大量人力和時間成本的投入,雖然目前已經有了少量學習和零學習Few-Shot and Zero-Shot Learning概念的提出,但仍不夠成熟,如何更好地、較為平衡地降低模型的輸入成本是一個下一個待解決的問題,

增加對常識知識進行建模的探索,在這一點上,領域知識圖譜的構建是一個重要的分支,結合知識圖譜進行深度學習,進而提高模型性能的能力,在提高解釋性的同時,無疑也增加了機器對語意的理解,這和人的思維是很接近的,而不只是一個不可預測的黑箱模型,在此基礎上,實作以人們類似的思維方式基于對未知數的“默認”假設進行推理,而不只是依賴于數字模型,目前,知識圖譜構建的研究在國內已經有了大量的探索,趨向一個較為成熟的階段,而結合知識圖譜進行深度學習的研究卻鮮有團隊進行探索,或者說在萌芽階段(如果沒記錯大部分是基于圖資料庫的深度學習),至少還沒有較為著名的開源專案(可能是我沒發現哈哈哈),

黑箱模型的深層探索,雖然深度學習模型在具有挑戰性的基準上取得了可喜的性能,但是其中大多數模型都是無法解釋的,例如,為什么一個模型在一個資料集上勝過另一個模型,而在其他資料集上卻表現不佳?深度學習模型究竟學到了什么?能在給定的資料集上達到一定精度的最小神經網路架構是什么?盡管注意力和自我注意力機制為回答這些問題提供了一些見識,但仍缺乏對這些模型的基本行為和動力學的詳細研究,更好地了解這些模型的理論方面可以幫助開發針對各種文本分析場景的更好的模型,

博客首發于:https://www.wujunchao.top/?p=121

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285818.html

標籤:其他

上一篇:基于1588PTP精密時鐘同步(時間同步服務)技術介紹

下一篇:好文推薦 | 自然語言處理簡介

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more