『壹』 情感分析器的研究方法
監督學習
目前,基於監督學習的情感分析仍然是主流,除了(Li et al.,2009)基於非負矩陣三分解(Non-negative Matrix Tri-factorization),(Abbasi et al.,2008)基於遺傳演算法(Genetic Algorithm)的情感分析之外,使用的最多的監督學習演算法是樸素貝葉斯,k最近鄰(k-Nearest Neighbor,k-NN),最大熵和支持向量機的。而對於演算法的改進主要在對文本的預處理階段。
基於規則/無監督學習
和基於監督學習的情感分析相比,基於規則和無監督學習方面的研究不是很多。除了(Turney,2002)之外,(朱嫣嵐 et al.,2002)利用HowNet對中文詞語語義的進行了情感傾向計算。(婁德成 et al.,2006)利用句法結構和依存關系對中文句子語義進行了情感分析,(Hiroshi et al.,2004)通過改造一個基於規則的機器翻譯器實現日文短語級情感分析,(Zagibalov et al.,2008)在(Turney,2002)的SO-PMI演算法的基礎上通過對於中文文本特徵的深入分析以及引入迭代機制從而在很大程度上提高了無監督學習情感分析的准確率。
跨領域情感分析
跨領域情感分析在情感分析中是一個新興的領域,目前在這方面的研究不是很多,主要原因是目前的研究還沒有很好的解決如何尋找兩個領域之間的一種映射關系,或者說如何尋找兩個領域之間特徵權值之間的平衡關系。對於跨領域情感分析的研究開始於(Blitzer et al.,2007)將結構對應學習(Structural Correspondence Learning,SCL)引入跨領域情感分析,SCL是一種應用范圍很廣的跨領域文本分析演算法,SCL的目的是將訓練集上的特徵盡量對應到測試集中。(Tan et al.,2009)將SCL引入了中文跨領域情感分析中。(Tan2 et al.,2009)提出將樸素貝葉斯和EM演算法的一種半監督學習方法應用到了跨領域的情感分析中。(Wu et al.,2009)將基於EM的思想將圖排序(Graph Ranking)演算法應用到跨領域的情感分析中,圖排序演算法可以認為是一種迭代的k-NN
『貳』 怎樣通過句法分析分析句子情感演算法例子
怎樣通過句法分析分析句子情感演算法例子?現階段主要的情感分析方法主要有兩類:
基於詞典的方法
基於機器學習的方法
基於詞典的方法主要通過制定一系列的情感詞典和規則,對文本進行段落拆借、句法分析,計算情感值,最後通過情感值來作為文本的情感傾向依據。
基於機器學習的方法大多將這個問題轉化為一個分類問題來看待,對於情感極性的判斷,將目標情感分類2類:正、負。對訓練文本進行人工標標注,然後進行有監督的機器學習過程。例如想在較為常見的基於大規模語料庫的機器學習等。
『叄』 情感分析技術有哪些應用
情感分析(又稱為觀點挖掘或感情AI)是指使用自然語言處理、文本分析、計算語言學和生物特徵識別來系統地識別、提取、量化和研究情感狀態和主觀信息。情感分析廣泛應用於分析客戶的心聲,如評論和調查回復,在線和社交媒體,以及從市場營銷到客戶服務再到臨床醫學的保健材料。
情感分析的一個基本任務是在文檔、句子或特徵/方面級別對給定文本的極性進行分類,判斷在文檔、句子或實體特徵/方面中表達的意見是積極的、消極的還是中性的。高級的「超越極性」情感分類著眼於諸如「憤怒」、「悲傷」和「快樂」等情緒狀態。
進行情感分析的先驅包括「一般詢問者」(General Inquirer),它提供了量化文本模式的線索,另外,還提供了基於對人的言語行為進行分析來檢查一個人的心理狀態的心理學研究。
『肆』 人工智慧技術應用:情感分析概述
與其他的人工智慧技術相比,情感分析(Sentiment Analysis)顯得有些特殊,因為其他的領域都是根據客觀的數據來進行分析和預測,但情感分析則帶有強烈的個人主觀因素。情感分析的目標是從文本中分析出人們對於實體及其屬性所表達的情感傾向以及觀點,這項技術最早的研究始於2003年Nasukawa和Yi兩位學者的關於商品評論的論文。
隨著推特等社交媒體以及電商平台的發展而產生大量帶蘆旁緩有觀點的內容,給情感分析提供了所需的數據基礎。時至今日,情感識別已經在多個領域被廣泛的應用。例如在商品零售領域,用戶的評價對於零售商和生產商都是非常重要的反饋信息,通過對海量用戶的評價進行情感分析,可以量化用戶對產品及其競品的褒貶程度,從而了解用戶對於產品的訴求以及自己產品與競品的對比優劣。在社會輿情領域,通過分析大眾對於社會熱點事件的點評可以有效的掌握輿論的走向。在企業輿情方面,利用情感分析可以快速了解社會對企業的評價,為企業的戰略規劃提供決策依據,提升企業在市場中的競爭力。在金融交易領域,分析交易者對於股票及其他金融衍生品的態度,為行情交易提供輔助依據。
目前,絕大多數的陪模人工智慧開放平台都具備情感分析的能力,如圖所示是玻森中文語義開放平台的情啟納感分析功能演示,可以看出除了通用領域的情感分析外,還有汽車、廚具、餐飲、新聞和微博幾個特定領域的分析。
那麼到底什麼是情感分析呢?從自然語言處理技術的角度來看,情感分析的任務是從評論的文本中提取出評論的實體,以及評論者對該實體所表達的情感傾向,自然語言所有的核心技術問題,例如:詞彙語義,指代消解,此役小氣,信息抽取,語義分析等都會在情感分析中用到。因此,情感分析被認為是一個自然語言處理的子任務,我們可以將人們對於某個實體目標的情感統一用一個五元組的格式來表示:(e,a,s,h,t)
以圖為例,e是指某餐廳,a為該餐廳的性價比屬性,s是對該餐廳的性價比表示了褒義的評價,h為發表評論者本人,t是19年7月27日。所以這條評論的情感分析可以表示為五元組(某餐廳,性價比,正向褒義,評論者,19年7月27日)。
情感分析根據處理文本顆粒度的不同,大致可以分為三個級別的任務,分別是篇章級、句子級和屬性級。我們分別來看一下。
1. 篇章級情感分析
篇章級情感分析的目標是判斷整篇文檔表達的是褒義還是貶義的情感,例如一篇書評,或者對某一個熱點時事新聞發表的評論,只要待分析的文本超過了一句話的范疇,即可視為是篇章級的情感分析。
對於篇章級的情感分析而言有一個前提假設,那就是全篇章所表達的觀點僅針對一個單獨的實體e,且只包含一個觀點持有者h的觀點。這種做法將整個文檔視為一個整體,不對篇章中包含的具體實體和實體屬性進行研究,使得篇章級的情感分析在實際應用中比較局限,無法對一段文本中的多個實體進行單獨分析,對於文本中多個觀點持有者的觀點也無法辨別。
例如評價的文本是:「我覺得這款手機很棒。」評價者表達的是對手機整體的褒義評價,但如果是:「我覺得這款手機拍照功能很不錯,但信號不是很好」這樣的句子,在同一個評論中出現了褒義詞又出現了貶義詞,篇章級的分析是無法分辨出來的,只能將其作為一個整體進行分析。
不過好在有很多的場景是不需要區分觀點評價的實體和觀點持有者,例如在商品評論的情感分析中,可以默認評論的對象是被評論的商品,評論的觀點持有者也是評論者本人。當然,這個也需要看被評論的商品具體是什麼東西,如果是親子旅遊這樣的旅遊服務,那麼評論中就很有可能包含一個以上的觀點持有者。
在實際工作中,篇章級的情感分析無法滿足我們對於評價更細致,如果需要對評論進行更精確,更細致的分析,我們需要拆分篇章中的每一句話,這就是句子級的情感分析研究的問題。
2. 句子級情感分析
與篇章級的情感分析類似,句子級的情感分析任務是判斷一個句子表達的是褒義還是貶義的情感,雖然顆粒度到了句子層級,但是句子級分析與篇章級存在同樣的前提假設是,那就是一個句子只表達了一個觀點和一種情感,並且只有一個觀點持有人。如果一個句子中包含了兩種以上的評價或多個觀點持有人的觀點,句子級的分析是無法分辨的。好在現實生活中,絕大多數的句子都只表達了一種情感。
既然句子級的情感分析在局限性上與篇章級是一樣的,那麼進行句子級的情感分析意義何在呢?關於這個問題,需要先解釋一下語言學上主觀句與客觀句的分別。在我們日常用語當中,根據語句中是否帶有說話人的主觀情感可以將句子分為主觀句和客觀句,例如:「我喜歡這款新手機。」就是一個主觀句,表達了說話人內心的情感或觀點,而:「這個APP昨天更新了新功能。」則是一個客觀句,陳述的是一個客觀事實性信息,並不包含說話人內心的主觀情感。通過分辨一個句子是否是主觀句,可以幫助我們過濾掉一部分不含情感的句子,讓數據處理更有效率。
但是在實操過程中,我們會發現這樣的分類方法似乎並不是特別准確,因為一個主觀句也可能沒有表達任何的情感信息,知識表達了期望或者猜測,例如:「我覺得他現在已經在回家的路上了。」這句話是一個主觀句,表達了說話人的猜測,但是並沒有表達出任何的情感。而客觀句也有可能包含情感信息,表明說話者並不希望這個事實發生,例如:「昨天剛買的新車就被人刮花了。」這句話是一個客觀句,但結合常識我們會發現,這句話中其實是包含了說話人的負面情感。
所以,僅僅對句子進行主客觀的分類還不足以達到對數據進行過濾的要求,我們需要的是對句子是否含有情感信息進行分類,如果一個句子直接表達或隱含了情感信息,則認為這個句子是含有情感觀點的,對於不含情感觀點的句子則可以進行過濾。目前對於句子是否含有情感信息的分類技術大多都是採用有監督的學習演算法,這種方法需要大量的人工標注數據,基於句子特徵來對句子進行分類。
總之,我們可以將句子級的情感分析分成兩步,第一步是判斷待分析的句子是否含有觀點信息,第二步則是針對這些含有觀點信息的句子進行情感分析,發現其中情感的傾向性,判斷是褒義還是貶義。關於分析情感傾向性的方法與篇章級類似,依然是可以採用監督學習或根據情感詞詞典的方法來處理,我們會在後續的小節詳細講解。
句子級的情感分析相較於篇章級而言,顆粒度更加細分,但同樣只能判斷整體的情感,忽略了對於被評價實體的屬性。同時它也無法判斷比較型的情感觀點,例如:「A產品的用戶體驗比B產品好多了。」對於這樣一句話中表達了多個情感的句子,我們不能將其簡單的歸類為褒義或貶義的情感,而是需要更進一步的細化顆粒度,對評價實體的屬性進行抽取,並將屬性與相關實體之間進行關聯,這就是屬性級情感分析。
3. 屬性級情感分析
上文介紹的篇章級和句子級的情感分析,都無法確切的知道評價者喜歡和不喜歡的具體是什麼東西,同時也無法區分對某一個被評價實體的A屬性持褒義傾向,對B屬性卻持貶義傾向的情況。但在實際的語言表達中,一個句子中可能包含了多個不同情感傾向的觀點,例如:「我喜歡這家餐廳的裝修風格,但菜的味道卻很一般。」類似於這樣的句子,很難通過篇章級和句子級的情感分析了解到對象的屬性層面。
為了在句子級分析的基礎上更加細化,我們需要從文本中發現或抽取評價的對象主體信息,並根據文本的上下文判斷評價者針對每一個屬性所表達的是褒義還是貶義的情感,這種就稱之為屬性級的情感分析。屬性級的情感分析關注的是被評價實體及其屬性,包括評價者以及評價時間,目標是挖掘與發現評論在實體及其屬性上的觀點信息,使之能夠生成有關目標實體及其屬性完整的五元組觀點摘要。具體到技術層面來看,屬性級的情感分析可以分為以下6個步驟:
關於文本中的實體抽取和指代消解問題,我們已經在知識圖譜的相關章節中做了介紹,這里就不再贅述。針對篇章級、句子級、屬性級這三種類型的情感分析任務,人們做了大量的研究並提出了很多分類的方法,這些方法大致可以分為基於詞典和基於機器學習兩種,下面我們進行詳細的講解。
做情感分析離不開情感詞,情感詞是承載情感信息最基本的單元,除了基本的詞之外,一些包含了情感含義的短語和成語我們也將其統稱為情感詞。基於情感詞典的情感分析方法,主要是基於一個包含了已標注的情感詞和短語的詞典,在這個詞典中包括了情感詞的情感傾向以及情感強度,一般將褒義的情感標注為正數,貶義的情感標注為負數。
具體的步驟如圖所示,首先將待分析的文本先進行分詞,並對分詞後的結果做去除停用詞和無用詞等文本數據的預處理。然後將分詞的結果與情感詞典中的詞進行匹配,並根據詞典標注的情感分對文本進行加法計算,最終的計算結果如果為正則是褒義情感,如果為負則是貶義情感,如果為0或情感傾向不明顯的得分則為中性情感或無情感。
情感詞典是整個分析流程的核心,情感詞標注數據的好壞直接決定了情感分類的結果,在這方面可以直接採用已有的開源情感詞典,例如BosonNLP基於微博、新聞、論壇等數據來源構建的情感詞典,知網(Hownet)情感詞典,台灣大學簡體中文情感極性詞典(NTSUSD),snownlp框架的詞典等,同時還可以使用哈工大整理的同義詞詞林拓展詞典作為輔助,通過這個詞典可以找到情感詞的同義詞,拓展情感詞典的范圍。
當然,我們也可以根據業務的需要來自己訓練情感詞典,目前主流的情感詞詞典有三種構建方法:人工方法、基於字典的方法和基於語料庫的方法。對於情感詞的情感賦值,最簡單的方法是將所有的褒義情感詞賦值為+1,貶義的情感詞賦值為-1,最後進行相加得出情感分析的結果。
但是這種賦值方式顯然不符合實際的需求,在實際的語言表達中,存在著非常多的表達方式可以改變情感的強度,最典型的就是程度副詞。程度副詞分為兩種,一種是可以加強情感詞原本的情感,這種稱之為情感加強詞,例如「很好」相較於「好」的情感程度會更強烈,「非常好」又比「很好」更強。另外一種是情感減弱詞,例如「沒那麼好」雖然也是褒義傾向,但情感強度相較於「好」會弱很多。如果出現了增強詞,則需要在原來的賦值基礎上增加情感得分,如果出現了減弱詞則需要減少相應的情感得分。
另一種需要注意的情況是否定詞,否定詞的出現一般會改變情感詞原本的情感傾向,變為相反的情感,例如「不好」就是在「好」前面加上了否定詞「不」,使之變成了貶義詞。早期的研究會將否定詞搭配的情感詞直接取相反數,即如果「好」的情感傾向是+1,那麼「不好」的情感傾向就是-1。但是這種簡單粗暴的規則無法對應上真實的表達情感,例如「太好」是一個比「好」褒義傾向更強的詞,如果「好」的值為+1,那麼「太好」可以賦值為+3,加上否定詞的「不太好」變成-3則顯然有點過於貶義了,將其賦值為-1或者-0.5可能更合適。
基於這種情況,我們可以對否定詞也添加上程度的賦值而不是簡單的取相反數,對於表達強烈否定的詞例如「不那麼」賦值為±4,當遇到與褒義詞的組合時褒義詞則取負數,與貶義詞的組合則取正數,例如貶義詞「難聽」的賦值是-3,加上否定詞變成「不那麼難聽」的情感得分就會是(-3+4=1)。
第三種需要注意的情況是條件詞,如果一個條件詞出現在句子中,則這個句子很可能不適合用來做情感分析,例如「如果我明天可以去旅行,那麼我一定會非常開心。」,在這句話中有明顯的褒義情感詞,但是因為存在條件詞「如果」,使得這個句子的並沒有表達觀點持有者的真實情感,而是一種假設。
除了條件句之外,還有一種語言表達也是需要在數據預處理階段進行排除的,那就是疑問句。例如「這個餐廳真的有你說的那麼好嗎?」,雖然句子中出現了很強烈的褒義情感詞「那麼好」,但依然不能將它分類為褒義句。疑問句通常會有固定的結尾詞,例如「……嗎?」或者「……么?」,但是也有的疑問句會省略掉結尾詞,直接使用標點符號「?」,例如「你今天是不是不開心?」,這個句子中含有否定詞和褒義片語成的「不開心」,但不能將其分類為貶義情感。
最後一種需要注意的情況是轉折詞,典型詞是「但是」,出現在轉折詞之前的情感傾向通常與轉折詞之後的情感傾向相反,例如:「我上次在這家酒店的住宿體驗非常好,但是這次卻讓我很失望。」在這個轉折句中,轉折詞之前的「非常好」是一個很強的褒義詞,但真實的情感表達卻是轉折詞之後的「很失望」,最終應該將其分類為貶義情感。當然,也存在出現了轉折詞,但語句本身的情感並沒有發生改變的情況,例如「你這次考試比上次有了很大的進步,但是我覺得你可以做得更好」,這里的轉折詞沒有轉折含義,而是一種遞進含義。在實際操作中,我們所以需要先判斷轉折句真實的情感表達到底是哪個,才能進行正確的分析計算。
構建情感詞典是一件比較耗費人工的事情,除了上述需要注意的問題外,還存在精準度不高,新詞和網路用語難以快速收錄進詞典等問題。同時基於詞典的分析方法也存在很多的局限性,例如一個句子可能出現了情感詞,但並沒有表達情感。或者一個句子不含任何情感詞,但卻蘊含了說話人的情感。以及部分情感詞的含義會隨著上下文語境的變化而變化的問題,例如「精明」這個詞可以作為褒義詞誇獎他人,也可以作為貶義詞批評他人。
盡管目前存在諸多問題,但基於字典的情感分析方法也有著不可取代的優勢,那就是這種分析方法通用性較強,大多數情況下無需特別的領域數據標注就可以分析文本所表達的情感,對於通用領域的情感分析可以將其作為首選的方案。
我們在機器學習演算法的章節介紹過很多分類演算法,例如邏輯回歸、樸素貝葉斯、KNN等,這些演算法都可以用於情感識別。具體的做法與機器學習一樣需要分為兩個步驟,第一步是根據訓練數據構建演算法模型,第二步是將測試數據輸入到演算法模型中輸出對應的結果,接下來做具體的講解。
首先,我們需要准備一些訓練用的文本數據,並人工給這些數據做好情感分類的標注,通常的做法下,如果是褒義和貶義的兩分類,則褒義標注為1,貶義標注為0,如果是褒義、貶義和中性三分類,則褒義標注為1,中性標注為0,貶義標注為-1.
在這一環節中如果用純人工方法來進行標注,可能會因為個人主觀因素對標注的結果造成一定影響,為了避免人的因素帶來的影響,也為了提高標注的效率,有一些其他取巧的方法來對數據進行自動標注。比如在電商領域中,商品的評論除了文本數據之外通常還會帶有一個5星的等級評分,我們可以根據用戶的5星評分作為標注依據,如果是1-2星則標注為貶義,如果是3星標注為中性,4-5星標注為褒義。又比如在社區領域中,很多社區會對帖子有贊和踩的功能,這一數據也可以作為情感標注的參考依據。
第二步是將標注好情感傾向的文本進行分詞,並進行數據的預處理,前文已經對分詞有了很多的介紹,這里就不再過多的贅述。第三步是從分詞的結果中標注出具備情感特徵的詞,這里特別說一下,如果是對情感進行分類,可以參考情感詞典進行標注,也可以採用TF-IDF演算法自動抽取出文檔的特徵詞進行標注。如果分析的是某個特定領域的,還需要標注出特定領域的詞,例如做商品評價的情感分析,需要標注出商品名稱,品類名稱,屬性名稱等。第四步根據分詞統計詞頻構建詞袋模型,形成特徵詞矩陣,如表所示。在這一步可以根據業務需要給每個特徵詞賦予權重,並通過詞頻乘以權重得到特徵詞分數。最後一步就是根據分類演算法,將特徵詞矩陣作為輸入數據,得到最終的分類模型。
當訓練好分類模型之後,就可以對測試集進行分類了,具體的流程與建模流程類似,先對測試的文本數據進行分詞並做數據預處理,然後根據特徵詞矩陣抽取測試文本的特徵詞構建詞袋矩陣,並將詞袋矩陣的詞頻數據作為輸入數據代入之前訓練好的模型進行分類,得到分類的結果。
採用基於機器學習的方法進行情感分析有以下幾個不足之處,第一是每一個應用領域之間的語言描述差異導致了訓練得到的分類模型不能應用與其他的領域,需要單獨構建。第二是最終的分類效果取決於訓練文本的選擇以及正確的情感標注,而人對於情感的理解帶有主觀性,如果標注出現偏差就會對最終的結果產生影響。
除了基於詞典和基於機器學習的方法,也有一些學者將兩者結合起來使用,彌補兩種方法的缺點,比單獨採用一種方法的分類效果要更好,另外,也有學者嘗試使用基於LSTM等深度學習的方法對情感進行分析,相信在未來,情感分析會應用在更多的產品中,幫助我們更好的理解用戶需求,提升用戶使用智能產品的體驗。
隨著深度神經網路等演算法的應用,情感分析的研究方向已經有了非常大的進展,但依然存在著一些難題是目前尚未解決的,在實操過程中需特別注意以下幾種類型數據:
情緒輪在用戶體驗設計上被廣泛的應用,很多情感化設計都是基於情緒輪進行的。但是在人工智慧領域,將情緒進行多分類比情感分析的三分類任務要難得多,目前大多數分類方法的結果准確性都不到50%。這是因為情緒本身包含了太多的類別,而且不同的類別之間又可能具有相似性,一個情緒詞在不同的語境下有可能表達的是不同的情緒類別,演算法很難對其進行分類。即使是人工對文本進行情緒類別標注也往往效果不佳,因為情緒是非常主觀性的,不同的人對不同的文本可能產生不同的理解,這使得人工標注情緒類比的過程異常困難。如何讓機器可以理解真實的情緒目前還是一個未能攻克的難題。
『伍』 目前深度學習在文本情感分析上都有哪些方法
有兩大類,一類是主觀性:主觀、客觀、中性;一類是情感傾向:褒義、貶義、中性。
文本分析的話,主要是對詞、句子中觀點的挖掘。
你所說的機器學習法,現在基本用於對電影觀點的打分系統吧。基本上就是利用分類計數,對文檔中存在的情感進行分類的。
就我個人理解而言,我認為機器學習法只是情感文本分析的方法論之一,至於數據挖掘,也是通過對文檔的數據收取,進行情感分析的。也是對情感文本分析的方法論之一。
所以,情感分析是主體的話,文本分類、機器學習、數據挖掘都是方式方法。這些方法可以共同應用在一個情感分析中,也可以分別獨立存在。
目前英文類的文本情感分析比較多,中文類的相對少一點,你要做這方面的研究路漫漫其修遠啊。嘿嘿。