中文情感分析 (Sentiment Analysis) 的難點在哪?現在做得比較好的有哪幾家?
相關問題:聊天中的情感分析有多難? - 知乎
最近正在做相關的項目,給題主一些相關的資料。
假設分析的對象是iphone5s的手機評論。從京東、亞馬遜或者中關村都可以找到這款手機的評論。大致都如圖所示。第二步,就是識別一個句子是積極還是消極,是主觀還是客觀。
有詞典的時候,好辦。直接去匹配看一個句子有什麼詞典裡面的詞,然後加總就可以計算出句子的情感分值。但由於不同領域有不同的情感詞,比如看上面的例子,「藍屏」這個詞一般不會出現在情感詞典之中,但這個詞明顯表達了不滿的情緒。因此需要另外根據具體領域構建針對性的情感詞典。如果不那麼麻煩,就可以用有監督的機器學習方法。把一堆評論扔到一個演算法裡面訓練,訓練得到分類器之後就可以把評論分成積極消極、主觀客觀了。
分成積極和消極也好辦,還是上面那個例子。5顆星的評論一般來說是積極的,1到2顆星的評論一般是消極的,這樣就可以不用人工標註,直接進行訓練。但主客觀就不行了,一般主客觀還是需要人來判斷。加上中文主客觀詞典不給力,這就讓機器學習判斷主客觀更為困難。中文領域的難度:還是詞典太差。還有就是用機器學習方法判斷主客觀非常麻煩,一般需要人工標註。另外中文也有找到過資源,比如這個用Python編寫的類庫:SnowNLP. 就可以計算一句話的積極和消極情感值。但我沒用過,具體效果不清楚。到了第三步,情感挖掘就升級到意見挖掘(Opinion Mining)了。
這一步需要從評論中找出產品的屬性。拿手機來說,屏幕、電池、售後等都是它的屬性。到這一步就要看評論是如何評價這些屬性的。比如說「屏幕不錯」,這就是積極的。「電池一天都不夠就用完了,坑爹啊」,這就是消極的,而且強度很大。這就需要在情感分析的基礎上,先挖掘出產品的屬性,再分析對應屬性的情感。分析完每一條評論的所有屬性的情感後,就可以匯總起來,形成消費者對一款產品各個部分的評價。接下來還可以對比不同產品的評價,並且可視化出來。如圖。這一步的主要在於準確挖掘產品屬性(一般用關聯規則),並準確分析對應的情感傾向和情感強度。因此這需要情感分析作為基礎。首先要找到評論裡面的主觀句子,再找主觀句子里的產品屬性,再計算屬性對應的情感分。所以前面基礎不牢固,後面要準確分析就有難度。
中文這個領域的研究其實很完善了,技術也很成熟。但需要完善前期情感分析的準確度。總的來說,就是中文詞典資源不好,工作做得不是很細很准。前期的一些基礎不牢固,後面要得到準確的分析效果就不容易了。作為句子和篇章級的應用問題,感覺中英文處理不會有本質的區別,不如好好閱讀這個領域的兩本經典文獻,然後再考慮具體的研究問題:
1. Bing Liu的 Sentiment Analysis and Opinion Mining Morgan Claypool Publishers
2. Bo Pang的 Opinion Mining and Sentiment Analysis容哲的回答總結了利用情感詞典從詞/句子/特徵等方面進行情感分析, 識別主客觀情感句, 以及對產品特徵更為細節的情感分值分析和可視化.
情感分析也可以利用機器學習來做, 其核心就是獲取 new representation of the original text, 這裡的 text 可以是一句話/一條評論等. 新的 representation 中行代表 Data point, 列代表 features. 現在獲取特徵比較傳統的方法有 Bag of Words (with or without its TFIDF), Bag of ngrams (with or without its TFIDF), Bag of means on word embedding (e.g. using word2vec embedding). 然後就可以利用一些機器學習的經典演算法做分類任務, 如 SVM, Logistics Reg, Naive Bayes, Neural Net 等.
Deep Learning 現正在顛覆各個領域的傳統方法, 其在 Computer Vision, NLP 方向更是產生了極大的影響, 在最近很多顛覆性演算法中都可見其身影. 學術界當然不乏將其用在 sentiment classification 的例子. 一年前用於這類任務的常見 Deep learning 方法有: Word-level Convolutional Neural Net (CNN), Word-level Recurrent Neural Network (RNN), and Word-level Long Short Term Memory (LSTM) 等, 這些都曾經取得過 state-of-the-art 的準確率. 關於 word-level 的 CNN 模型, 可以參考這篇論文: http://emnlp2014.org/papers/pdf/EMNLP2014181.pdf"
深度學習模型的特點是參數非常多, 動輒百萬級, 但是由於神經網路具備模擬任何函數的能力, 所以在數據量極其大的情況下, 訓練出的模型是可以避免過擬合的, 因此這類模型具有很好的泛化能力, 預測新數據的能力也很強.
為了擴大數據量, researchers 最近從 computer vision task 中借鑒經驗, 提出了基 character level 的 CNN 模型. 其思想就是將文本中詞的每個字元類比成圖片中一個個像素, 通過預處理 (如限制 vocabulary 大小, 設定句子的 max length 等) 和 embedding, 將文本轉化成一張類似圖片的矩陣, 這樣就可以進行和圖片一樣的 convolution operation 了.
從 word-level 到 character-level, 數據量會增長好幾倍 (一個詞平均有5個字母). 乍一看, 這類模型連 word 都不需要了, 直接從 character-level 學習特徵, 似乎太過天真. 可以這樣現象一下, 英文中, I love you, 通過前兩個單詞"I", "love", 推出下一個詞 "you", 這個模型, 我們人類還可以理解; 然而通過字母"I", "space", "L", "O", "V", "E", "space" 推出"Y", "O", "U"這三個字母就不是我們能理解的了. 但現實中, character-level的 CNN 模型在 sentiment classification (or text classification) 中表現非常好, 可以超越 word-level 的 CNN 模型, 具體可以參考Facebook 最近的 Paper : http://arxiv.org/abs/1509.01626
筆者利用 word-level 的 CNN 在 Yelp Challenge 2016 review dataset 中取得了高於 SVM, NN 的準確率, 具體項目在這裡 : GitHub - haoopeng/CNN-yelp-challenge-2016-sentiment-classification: code for training a word level CNN for sentiment classification on yelpamp;amp;amp;amp;#x27;s review dataset 2016.
有興趣的同學可以看看. 個人認為Deep learning非常有趣, 值得學習. 目前正在實現 character-level 的 CNN 模型.
fine-grained資源不夠多。
比如 - ChineseLDC.Org國內研究使用授權費 5000 RMB國外研究使用授權費 35000 RMB
(不過這個是研究說話語氣的emotion)牛逼閃閃的LIWC
Product Catalog收費是$89.95美元(稅前)真是研究不起中文啊。。。
====好的噴完了來更新一下答案====
國內COAE和日本舉辦的NTCIR的評測不錯。樓主可以參考。現在的sentiment analysis比較傾向於machine learning的方法。語料庫越大才能搞出來好的性能。演算法什麼的都可以通用。還有一點,大多數語料庫都是基於商品評論的。比如電腦、相機、酒店,等等。新聞評論這樣的文章中,標註很細緻的語料庫不多。COAE和NTCIR還是有一些的。伸手黨戳這個鏈接:
信息分類與情感發現
也可以參考bilingual的方法。比如這些論文:
http://aclweb.org/anthology/P/P11/P11-1033.pdfhttp://aclweb.org/anthology//P/P09/P09-1027.pdf再找到好的中文鏈接持續更新中,也算是給自己做個筆記。。。目前國內公司的話,中文情感分析做的最好的肯定是百度了。
我認為的文本情感分析包括如下幾個方面:情感極性分析(情感分類、情感傾向性分析)、情感標籤抽取(屬性+評價詞:待機時間很長、特殊標籤:特別水潤)、觀點挖掘、觀點聚類、評論主體識別、意圖識別(需求識別)、評論摘要的生成、主觀分析等。 個人認為情感分析目前的難題包括:1.反諷問題,比如「你牛逼你上啊」;2.領域相關的問題,「我的電腦散熱聲音很大」、「我家洗衣機聲音很大」這些很可能是差評,而「我家音響聲音很大」很可能就是好評;3.網路流行語也會影響情感分析,比如「給力」、「不明覺厲」、「累覺不愛」、「細思極恐」等,這些詞利用傳統的分詞一般都會被切開,而且會影響詞性標註,如果想避免只能加入人工干預,修改分詞的粒度和詞性標註的結果;4.文本比較短,省略較嚴重,導致出現歧義或指代錯誤等,比如「咬死獵人的狗」。 鑒於目前這些難題,單純用統計方法很難達到比較好的效果,一般都是規則+統計。比如評論主體的識別這個任務,可以用基於CRF、基於規則、基於entity_link三種方式來召回候選集,然後再用一定的策略來排序。基於CRF的泛化能力強,基於entity_link的質量較高,基於規則的話能增加召回率。情感傾向性分析因為有很多領域問題,一般基於規則的效果更好一點,當然融合規則和統計的話效果更好,一般可以用PMI+一些優化策略達到比較好的效果。情感標籤的抽取因為屬性、評價詞之前可能距離較遠,一般需要句法依存分析,這個是利器,效果很顯著。觀點挖掘一般需要融合規則和統計,一般用規則挖取種子,然後再用規則+統計的去挖掘(統計的目的是泛化能力好,規則的話是過濾不好的case、提高準確率)。觀點聚類的話一般多層次聚類比較好,一步到位的聚類效果比較差。意圖識別的話比較複雜,影響因素也比較多,比如同樣是「iPhone6s怎麼樣?」這句話,如果在產品發布前提問很可能是想購買,而在產品開始銷售後提問很可能就是關注售後居多,因此在此不做贅述。摘要生成主要是根據評論代表句和評論上下文,自動生成一段關於某實體的描述,至於評論代表句可以通過觀點聚類然後選取中心句來完成。主觀分析的話,一般設計觀點挖掘、主體識別、觀點聚類、中心句確定等。 總結一下:1、文本情感分析,大多任務目前規則相對統計更勝一籌;2、長距離依賴任務引入句法分析能明顯提升效果;2、極性分析相關任務在用PMI時最好對互信息進行歸一化,對不均衡問題計算PMI時對正負極性分開計算,這一類任務一般不需要句法分析;4、深層次的情感分析,一般還需要語義角色標註。我只說商業解決方案的難點在哪。
最大的難點是這是一個自定義需求的問題。我們可以看到很多paper提供了各種分類演算法解決方案,我們曾經也努力做到過微博正負面九成準確率,後來發現並沒什麼卵用。有的企業要中性,這好說;有的企業還要中性偏負面,什麼鬼。。;有的認為廣告宣傳是正面,有的覺得是垃圾信息要過濾;有的部分廣告認為正面部分認為負面;有的做電商的一點負面聽不得,不管後面誇得多好,只要提到負面的都要提取出來;有的情感詞或表述在不同領域或不同數據源可能情感極性是不一樣的。
每個都做監督訓練的話還要不要活了,二分類還好說,多分類的話通常幾千條監督標註還是不夠準的,就不說電商和微博還得分開做了。
另一個問題是相關性,比如我說[寶馬很差,但賓士很好,外形漂亮,logo大氣,blahblah],可能整條文本整體偏正面,畢竟絕大多數都在讚美賓士。但如果要監測的企業是寶馬,那就不好玩了。因此又轉化成一些三元組類抽取、句法分析、詞搭配等問題。
其他比較常見的問題還有中文的博大精深導致的,比如反話等,這些就更不能局限於單條文本自身了,有條件的還要考慮上下文,又可能涉及到一些消岐、上下文分類等問題。
因此學術與實際應用還是有距離的。。。除非你就是做通用的或只在某個特定範圍做(比如大公司自己特定的需求),那可能比較幸福對OM來說的話,我覺得中文和英文處理方式上沒太大區別,也沒什麼特別的難點。
最常見的方法還是基於lexicon的打分,或者lexical層面上的classifier,而這些對語種來說沒太大影響,相對來說中文語料比英文少不少,標註得也少。去年Coling上有一篇用discourse relation做om的文章就是用的中文語料,結果還挺好的首先,對於情感分類來說,中文情感分類的效果不差的,而且因為通常中文的特徵空間更小一點,中文情感分類的效果還會好一點的。當然中文需要分詞,這個對分類結果也會有點影響的。
其次,對於評價對象抽取等偏mining的任務,由於中文的語料偏少一點,而且評價對象抽取等任務通常需要先做句法分析,而中文句法分析效果也不好的,所以中文評價對象抽取等偏mining的任務的效果就沒有英文好了哦。
如果實際做項目的話,可能還是要結合一些規則和人工檢查的(如果數量不多的話)。
當然如果是做研究的話,做英文的比較多,這也造成了中文情感分析效果不佳的。。。
可以關注一下中文情感分析的評測,比如COAE還有去年在NLPCC上舉辦的那個。
據我所知,哈工大,復旦都有做的,你看看評測都有哪些單位參加,哪些單位的成績比較好,也就知道了哦。bosonNLP,這個做的不錯
利益相關:與我無關(最近在研究情感分析,無意中搜到這個產品,準確度很高的了)
------------------------------------------------------------------------------------------------------------------------------
更新:NLPIR做的其他模塊很不錯,情感分析,感覺做的不太好,連接:NLPIR漢語分詞系統
提供java,c#,c++介面,可以用用看
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2017.7.31更新
情感分析就是一個分類問題,如果表徵輸入文本是主要要做的部分,如何把句子表示成向量就是主要工作了
可以轉化為針對特定領域的分類問題。
比如手機,認為確定幾個評價對象,例如:外觀、待機時間、屏幕等等。1. 判斷主客觀2. 判斷屬於哪個評價對象3. 判斷極性(消極還是積極)4. 針對每個評價對象,分別人工總結消極和積極的描述語句。比如:「這款手機的屏幕很大」
可以輸出:「屏幕給力」「手機屏幕有點小」輸出:「屏幕一般」碩士就是研究這個課題的。
其實傾向性分析沒有什麼難得,就是文本挖掘的範疇,有自己的特點,更依賴語言和語法,但是確實本質上西方語言東方語言差別不大。什麼叫做得好的有哪幾家?哪幾家公司?哪幾家大學?大學的話,只聽說過NLP出名,沒有人說自己傾向性分析出名,因為,講真,這個是文本一個小方向。
為什麼是小方向呢?因為!
你分析的工具再牛逼,都比不上用戶直接打分來的靠譜!!!!!!你分析的工具再牛逼,都比不上用戶直接打分來的靠譜!!!!!!你分析的工具再牛逼,都比不上用戶直接打分來的靠譜!!!!!!現在的分析還是很初級的,積極,消極,再加個中立,能把這三個分出來就很不錯了,還要做到5分制?10分制?請看樓上那堆感嘆號。我說」現在「,其實是比較多餘的,發展那麼多年了,從來都是這麼初級的不騙你。
對於描述對象的具體分析,涉及到命名主體識別和傾向性分析兩個領域,然而!
你分析的工具再牛逼,都比不上用戶貼的標籤!!!!!!你分析的工具再牛逼,都比不上用戶貼的標籤!!!!!!你分析的工具再牛逼,都比不上用戶貼的標籤!!!!!!以上兩點可能是大家很少看到傾向分分析成果出現在各大網站的原因。不過它也不是完全沒有應用場景的,呵呵,具體不表難點在於多維情緒解析。
目前在中文環境下的文本理解技術,主要可以做到判斷文本的情感極性(積極/消極)。然而這只是文本情緒理解領域內的第一步,技術完善性很低。只有極少數企業能做到基於中文文本的多維情緒能力。這裡拿我們舉個栗子~ 語憶科技是由一位哥倫比亞大學人工智慧碩士所創建的,我們專註於中文文本的多維情感解析技術,能對12種細節情緒(如興奮、喜悅、悲傷、憤怒等)作深度解析,並同時能夠對長文本中的具體關鍵詞(如長篇小說中的某個人物)進行情緒判斷,實現了從第一步到第三步的跨越。
如上圖所示,目前最新的情感解析引擎可以通過某一句語句,如「今天是個好日子,心情不錯」 先進行常規的二維正負極判斷——情感極性值。然而還提供了情感濃度判斷,告訴你其感情激烈程度。接下來是最核心的多維細節情緒提煉,如上圖所示。
下面再舉幾個栗子:
從上圖可以看到,最新的情感解析引擎不僅可以提取關鍵詞(觀點)還可以對關鍵詞進行情緒解析。如「我對套餐挺滿意,就是價格有些貴」這句話,對「套餐」和「價格」兩個關鍵詞分別求取的情感值是不同的。
然而最終有一個問題是逃不掉的,那邊是準確率。這裡可以提一下,語憶科技所提供的的情緒解析引擎經過某985/211大學認證,準確率高達90%
任何細節問題歡迎聯繫我,也可以訪問我們的官網 http://yuyidata.com ~ 我們鼓勵任何形式的溝通
沒有用過特別好的,情感判斷太主觀了,你覺得中性,客戶覺得負面。另附上斯坦福大學的公開課 斯坦福大學自然語言處理第七課「情感分析(Sentiment Analysis)」
tecdat:看推特數據如何quot;塑造quot;地區形象
可以看下我們做的一個案例:
圖文版鏈接:看推特數據如何amp;quot;塑造amp;quot;地區形象
「
高度信息化的今天,社交媒體向我們提供直接認識外界的一個窗口,決定著大家對一個地區的認知,像是一雙對地區形象「塑型」的「看不見」的手。
▼
根據這個背景,tecdat對素有「塞上江南」之稱的寧夏熱門推文(hot tweet,推特中的熱門推文是指被轉推或被收藏過的推文,相比普通推文影響力更大)進行了分析。
研究人員發現網友們關注的主題,同時傾聽大家呈現出來的態度及情感。根據對135,592條推特用戶自主在線發布消息的分析,我們發現了一些值得注意的內容。
▍「消費購物」 成為關注度最高主題, 超過十分之一的推文與飲食有關
可以看到,熱門推文中有關的主題有4個,根據場景的不同分別為 「消費購物」、「工業經濟」、「健康養生」、「休閑生活」。 有關消費購物的推文所佔比例最高,推特用戶中最關心的寧夏議題是消費購物。
屬於消費購物類的主題包括Market, oilsoil,food,wolf berries,drinking,wine,共6項,所佔比例為32.6%;
屬於工業經濟的包括energy, automous ,industry, coal , province等5個主題, 所佔比例為26.4%。
屬於健康養生的主題包括 living , heal ,nural, antioxidant , goji ,dried,共計6個,所佔比例為21%。
屬於休閑生活的主題包括twter , instagram ,pic, youngliving , shot,共計5個,所佔比例為20%。
從消費購物詞雲中,我們發現驢友愛買的寧夏特產,如干紅葡萄酒、枸杞酒、賀蘭石等。
從工業詞雲中,我們發現煤炭是寧夏的優勢礦產資源。寧夏境內能源資源豐富,可利用的有石油、天然氣、煤層氣、水能、風能、光能等。這些資源為寧夏建設能源基地提供了強有力的保證。
從健康養生詞雲中我們發現作為寧夏特產的枸杞,具有一定的養生抗氧化功效。
從休閑生活詞雲中,我們發現寧夏作為旅遊勝地,吸引了大量年輕人前來拍照遊玩。
▍熱門推文總體上以積極正向為主
從變化的情況來看,2016年的推文積極正面的評價比例最低,為42%,消極負面評價的比例為58%,是歷年來最高的。
通過2016年推特的關鍵詞,我們發現負面的議題包括:驢友評論寧夏乾燥的天氣、寧夏部分地區犧牲環境換髮展、以及導遊強迫購物現象。
按照四個主題來看,在健康養生議題中,積極正面的評價為77.05%,略高於其他議題中正面評價的比例。同時可以看到休閑生活的負面評價比例最低。
▍熱門推文中只有四分之一表現出了明顯的情感
識別情感時,共有六種情感:anger(憤怒)、disgust(厭惡)、fear(恐懼)、joy(喜悅)、sadness(悲傷)和surprise(驚奇),在分析時會先為每條推文的每種可能情感打分。
如果六種情感可能性得分相差不大時,則情感類擬合為unknown(未知)。 如果某條推文被擬合得到某一類情感,該情感一定是強烈的情感。
從情感分析的結果來看,只有25.54%的推文表現出了強烈的情感。近四分之三的推文都沒有表現出強烈的情感,情感擬合為unknown。
歷時來看,隨著時間的推移,熱門推文表現出強烈情感的比例越來越多。在2008年,只有30.3%表達出了強烈的情感,而2016年,這個比例已經提升到42.8%。這表明,就寧夏地區議題而言,推特用戶越來越傾向於表達出強烈的情感。
▍從情感的比例情況來看,喜悅高居第一位,且有上升的趨勢
從所表達出來的情感來看,比例最高的情感是喜悅,佔比16.19%;其次為悲傷,佔4.49%。
joy呈現出逐年提高的趨勢, 這說明熱門推文中,含有喜悅情感的比例越來越多,而sadness呈現出小幅上下波動減小的態勢。
版權聲明:為拓端數據原創文章,未經允許不得轉載!
【拓端數據 http://tecdat.cn】第三方數據服務提供商,提供全面的統計分析與數據挖掘諮詢服務,為客戶定製個性化的數據解決方案與行業報告等。
帥的小夥伴都關注了拓端數據團隊^..^~
QQ交流群:186388004
微信公眾號:拓端數據
微信客服號:lico_9e
我對這個題目其實很感興趣,可惜我沒有學過專業知識。
我膚淺的思考,其中一個難點是不是中文的語法不嚴密,省略和指代不明的情況比較多。
難得很呢
推薦閱讀:
※文本情感分析有什麼好資料、網站、工具推薦呢?
※Tagxedo個性化詞雲的繪圖思路是什麼?
TAG:數據挖掘 | 文本挖掘 | SentimentAnalysis |