機器學(xué)習(xí)服務(wù)提取圖片的特征向量">使用SAP Leonardo上的機器學(xué)習(xí)服務(wù)提取圖片的特征向量
1896
2025-03-31
1、情感分析任務(wù)介紹
文本情感分析(Sentiment Analysis)是指利用自然語言處理和文本挖掘技術(shù),對帶有情感色彩的主觀性文本進行分析、處理和抽取的過程[1]。目前,文本情感分析研究涵蓋了包括自然語言處理、文本挖掘、信息檢索、信息抽取、機器學(xué)習(xí)和本體學(xué)等多個領(lǐng)域,得到了許多學(xué)者以及研究機構(gòu)的關(guān)注,近幾年持續(xù)成為自然語言處理和文本挖掘領(lǐng)域研究的熱點問題之一。從人的主觀認知來講,情感分析任務(wù)就是回答一個如下的問題“什么人?在什么時間?對什么東西?哪一個屬性?表達了怎樣的情感?”因此情感分析的一個形式化表達可以如下:(entity,aspect,opinion,holder,time)。比如以下文本“我覺得2.0T的XX汽車動力非常澎湃。”其中將其轉(zhuǎn)換為形式化元組即為(XX汽車,動力,正面情感,我,/)。需要注意的是當前的大部分研究中一般都不考慮情感分析五要素中的觀點持有者和時間。
情感分析問題可以劃分為許多個細分的領(lǐng)域,下面的思維導(dǎo)圖[2]展示了情感分析任務(wù)的細分任務(wù):
其中詞級別和句子級別的分析對象分別是一個詞和整個句子的情感正負向,不區(qū)分句子中具體的目標,如實體或?qū)傩裕喈斢诤雎粤宋逡刂械膶嶓w和屬性這兩個要素。詞級別情感分析,即情感詞典構(gòu)建,研究的是如何給詞賦予情感信息。句子級/文檔級情感分析研究的是如何給整個句子或文檔打情感標簽。而目標級情感分析是考慮了具體的目標,該目標可以是實體、某個實體的屬性或?qū)嶓w加屬性的組合。具體可分為三種:Target-grounded aspect based sentiment analysis (TG-ABSA), Target no aspect based sentiment analysis (TN-ABSA), Target aspect based sentiment analysis (T-ABSA). 其中TG-ABSA的分析對象是給定某一個實體的情況下該實體給定屬性集合下的各個屬性的情感分析;TN-ABSA的分析對象是文本中出現(xiàn)的實體的情感正負向;T-ABSA的分析對象是文本中出現(xiàn)的實體和屬性組合。下表例舉了不同目標的情感分析任務(wù):
2、情感分析常用文本預(yù)處理方法
2.1中文分詞技術(shù)
詞是最小的能夠獨立活動的有意義的語言成分,英文單詞之間是以空格作為自然分界符的,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區(qū)分標記,因此,中文詞語分析是中文信息處理的基礎(chǔ)與關(guān)鍵。研究表明特征粒度為詞粒度遠遠好于字粒度,其大部分分類算法不考慮詞序信息,基于字粒度的損失了過多的n-gram信息。
中文分詞主要分為兩類方法:基于詞典的中文分詞和基于統(tǒng)計的(HMM,CRF)中文分詞。舉個例子:“網(wǎng)商銀行是螞蟻金服微貸事業(yè)部的最重要產(chǎn)品”,其對應(yīng)的分詞結(jié)果為:網(wǎng)商銀行/是/螞蟻金服/微貸事業(yè)部/的/最重要/產(chǎn)品。
當前我們討論的分詞算法可分為兩大類:基于字典、詞庫匹配的分詞方法;基于詞頻度統(tǒng)計(HMM,CRF)的分詞方法。第一類方法應(yīng)用詞典匹配、漢語詞法或其它漢語語言知識進行分詞,核心是首先建立統(tǒng)一的詞典表,當需要對一個句子進行分詞時,首先將句子拆分成多個部分,將每一個部分與字典一一對應(yīng),如果該詞語在詞典中,分詞成功,否則繼續(xù)拆分匹配直到成功。如:最大匹配法、最小分詞方法等。這類方法簡單、分詞效率較高,但漢語語言現(xiàn)象復(fù)雜豐富,詞典的完備性、規(guī)則的一致性等問題使其難以適應(yīng)開放的大規(guī)模文本的分詞處理。第二類基于統(tǒng)計的分詞方法則基于字和詞的統(tǒng)計信息,統(tǒng)計學(xué)認為分詞是一個概率最大化問題,即拆分句子,基于語料庫,統(tǒng)計相鄰的字組成的詞語出現(xiàn)的概率,相鄰的詞出現(xiàn)的次數(shù)多,就出現(xiàn)的概率大,按照概率值進行分詞,所以一個完整的語料庫很重要。
當前中文分詞技術(shù)已經(jīng)非常成熟,下表[3]展示了當前業(yè)界主流的分詞服務(wù)支持的功能:
2.2去除停用詞
停用詞是指在信息檢索中,為節(jié)省存儲空間和提高搜索效率,在處理自然語言數(shù)據(jù)(或文本)之前或之后會自動過濾掉某些字或詞,這些字或詞即被稱為Stop Words(停用詞)。這些停用詞都是人工輸入、非自動化生成的,生成后的停用詞會形成一個停用詞表。但是,并沒有一個明確的停用詞表能夠適用于所有的工具。甚至有一些工具是明確地避免使用停用詞來支持短語搜索的。
2.3 文本特征提取
2.3.1 Bag of words
BoW模型最初應(yīng)用于文本處理領(lǐng)域,用來對文檔進行分類和識別。其核心思想是建立一個詞典庫,該詞典庫包含訓(xùn)練語料庫的所有詞語,每個詞語對應(yīng)一個唯一識別的編號,利用one-hot文本表示。文檔的詞向量維度與單詞向量的維度相同,每個位置的值是對應(yīng)位置詞語在文檔中出現(xiàn)的次數(shù),即詞袋模型(BOW)BoW 模型因為其簡單有效的優(yōu)點而得到了廣泛的應(yīng)用。如下示例,給定兩句簡單的文檔:
文檔 1:“我喜歡跳舞,小明也喜歡。”
文檔 2:“我也喜歡唱歌。”
基于以上這兩個文檔,便可以構(gòu)造一個由文檔中的關(guān)鍵詞組成的詞典:
詞典={1:“我”,2:“喜歡”,3:“跳舞”,4:“小明”,5:“也”,6:“唱歌”}
這個詞典一共包含6個不同的詞語,利用詞典的索引號,上面兩個文檔每一個都可以用一個6維向量表示(用整數(shù)數(shù)字0~n(n為正整數(shù))表示某個單詞在文檔中出現(xiàn)的次數(shù)。這樣,根據(jù)各個文檔中關(guān)鍵詞出現(xiàn)的次數(shù),便可以將上述兩個文檔分別表示成向量的形式:
文檔 1:[1, 2, 1, 1, 1, 0]
文檔 2:[1, 1, 0, 0, 1, 1]
通過上面的例子可以看出,雖然BOW模型理解和實行起來簡單,但是他有以下缺點問題:
(1)容易引起維度災(zāi)難問題,語料庫太大,字典的大小為每個詞的維度,高維度導(dǎo)致計算困難,每個文檔包含的詞語數(shù)少于詞典的總詞語數(shù),導(dǎo)致文檔稀疏。(2)僅僅考慮詞語出現(xiàn)的次數(shù),沒有考慮句子詞語之間的順序信息,即語義信息未考慮。
2.3.2 TF-IDF
TF-IDF(term frequency–inverse document frequency)是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù)。TF是詞頻(Term Frequency),IDF是逆文本頻率指數(shù)(Inverse Document Frequency)。TF-IDF的主要思想是:如果某個詞或短語在一篇文章(句子)中出現(xiàn)的頻率TF高,并且在其他文章(句子)中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。其中其計算方法如下:
如下示例可以清楚說明TF-IDF的計算方法:
假如一篇文件的總詞語數(shù)是100個,而詞語“母牛”出現(xiàn)了3次,那么“母牛”一詞在該文件中的詞頻就是3/100=0.03。
一個計算文件頻率 (IDF) 的方法是文件集里包含的文件總數(shù)除以測定有多少份文件出現(xiàn)過“母牛”一詞。所以,如果“母牛”一詞在1,000份文件出現(xiàn)過,而文件總數(shù)是10,000,000份的話,其逆向文件頻率就是 lg(10,000,000 / 1,000+1)=4。
最后的TF-IDF的分數(shù)為0.03 * 4=0.12。
2.3.3 預(yù)訓(xùn)練模型
當我們用機器學(xué)習(xí)或者深度學(xué)習(xí)方法來處理NLP任務(wù)時,為了使自然語言成為計算機可以讀懂的語言,首先我們需要對文本進行編碼。在編碼時,我們期望句子之間保持詞語間的相似行,詞的向量表示是進行機器學(xué)習(xí)和深度學(xué)習(xí)處理NLP任務(wù)的基礎(chǔ)。由此也催生了各種各樣的預(yù)訓(xùn)練模型發(fā)展,同時預(yù)訓(xùn)練加模型微調(diào)(Pre-training and fine tuning)的方法也是當前NLP領(lǐng)域各種任務(wù)state-of-art的方法的基本流程。預(yù)訓(xùn)練的方法最初是在圖像領(lǐng)域提出的,達到了良好的效果,后來被應(yīng)用到自然語言處理。預(yù)訓(xùn)練一般分為兩步,首先用某個較大的數(shù)據(jù)集訓(xùn)練好模型(這種模型往往比較大,訓(xùn)練需要大量的內(nèi)存資源),使模型訓(xùn)練到一個良好的狀態(tài),然后下一步根據(jù)不同的任務(wù),改造預(yù)訓(xùn)練模型,用這個任務(wù)的數(shù)據(jù)集在預(yù)訓(xùn)練模型上進行微調(diào)。這種做法的好處是訓(xùn)練代價很小,預(yù)訓(xùn)練的模型參數(shù)可以讓新的模型達到更快的收斂速度,并且能夠有效地提高模型性能,尤其是對一些訓(xùn)練數(shù)據(jù)比較稀缺的任務(wù),在神經(jīng)網(wǎng)絡(luò)參數(shù)十分龐大的情況下,僅僅依靠任務(wù)自身的訓(xùn)練數(shù)據(jù)可能無法訓(xùn)練充分,預(yù)訓(xùn)練方法可以認為是讓模型基于一個更好的初始狀態(tài)進行學(xué)習(xí),從而能夠達到更好的性能。
預(yù)訓(xùn)練模型的發(fā)展也反映了深度學(xué)習(xí)在NLP領(lǐng)域的進步。NLP領(lǐng)域的預(yù)訓(xùn)練模型大致可以分為以下兩類:
基于詞嵌入的預(yù)訓(xùn)練方法
2003年,Bengio等人提出了神經(jīng)語言模型(Neural Network Language Model)[4],神經(jīng)語言模型在訓(xùn)練過程中,不僅學(xué)習(xí)到預(yù)測下一個詞的概率分布,同時也得到了一個副產(chǎn)品:詞嵌入表示。相比隨機初始化的詞嵌入,模型訓(xùn)練完成后的詞嵌入已經(jīng)包含了詞匯之間的信息。2013年,Mikolov等人提出了word2vec工具,其中包含了CBOW(Continue Bag of Words)模型和Skip-gram模型[5-6],該工具僅僅利用海量的單語數(shù)據(jù),通過無監(jiān)督的方法訓(xùn)練得到詞嵌入,在很長一段時間內(nèi)word2vec在各種任務(wù)中都被廣泛使用。
基于語言模型的預(yù)訓(xùn)練方法
詞嵌入本身具有局限性,最主要的缺點是無法解決一詞多義問題,即不同的詞在不同的上下文中會有不同的意思,但是詞嵌入對模型中的每個詞都分配了一個固定的表示。針對上述問題,Peters等人提出了ELMo(Embedding from Language Model)[7],即使用語言模型來獲取深層的上下文表示。ELMo的具體做法是,基于每個詞所在的上下文,利用雙向LSTM的語言模型來獲取這個詞的表示。ELMo的方法能夠提取豐富的特征給下游任務(wù)使用,但是ELMo僅僅進行特征提取而沒有預(yù)訓(xùn)練整個網(wǎng)絡(luò),遠遠沒有發(fā)揮預(yù)訓(xùn)練的潛力。針對上述兩個問題,Radford等人提出了 GPT Generative Pre-Training)[8],即生成式的預(yù)訓(xùn)練。GPT將LSTM換成了Transformer,獲得了更高的成績,但是由于使用的是單向模型,只能通過前面詞預(yù)測后面的詞,可能會遺漏信息。Devlin等人提出了BERT(Bidirectional Encoder Representations from Transformers)[9],即基于Transformer的雙向編碼器表示。BERT和GPT的結(jié)構(gòu)和方法十分相似,最主要的不同之處在于GPT模型使用的是單向語言模型,可以認為是基于Transformer的解碼器表示,而BERT使用的基于Transformer的編碼器能夠?qū)碜赃^去和未來的信息進行建模,能夠提取更豐富的信息。三個預(yù)訓(xùn)練模型的圖如下所示:
BERT提出后大火,也許是因為BERT的效果太好。目前絕大多數(shù)的預(yù)訓(xùn)練模型都是在BERT上改造而來。清華大學(xué)的王曉智和張正彥同學(xué)給出了目前的預(yù)訓(xùn)練模型關(guān)系圖,這里引用一下,如下圖所示:
總結(jié)
本篇博文主要介紹了情感分析任務(wù)的概述以及進行情感分析任務(wù)之前我們需要進行的準備工作,其中著重介紹了NLP領(lǐng)域最重要的預(yù)訓(xùn)練模型的主要里程碑。下一篇博文將著重介紹進行情感分析任務(wù)的具體方法,包括傳統(tǒng)基于統(tǒng)計的方法和深度學(xué)習(xí)方法。
參考文獻
PANG B,LEE L. Opinion mining and sentiment analysis[J].Foundations and Trends in InformationRetrieval,2008,2 (1 -2) :130 - 135.
https://www.infoq.cn/article/XGoSsRfZRSupblTGGJCM
https://blog.csdn.net/fendouaini/article/details/82027310
Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model.
Mikolov T, Chen K, Corrado G S, et al. Efficient Estimation of Word Representations in Vector Space.
Mikolov T, Sutskever I, Chen K, et al. Distributed Representations of Words and Phrases and their Compositionality.
Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep Contextualized Word Representations.
Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving Language Understanding by Generative Pre-Training.
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
網(wǎng)絡(luò)智能體
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。