情感分析是學術領域研究多年的課題,用google學術搜尋可以找到很多*****,基本的方法上有基於詞典規則的方法、語言文法的方法,此外還有分類器以及近幾年比較火的深度學習的方法(稍後有詳細介紹)。
各類*****是有一定的借鑑意義的,不過這主要是學術界在單個問題上的細化,要真正從研究領域落地到大資料的處理還有很多任務作要做。
一、工程上的處理流程
工程上的處理流程具體包括以下幾個方面:
1、情感分析任務的界定
在進**感分析任務的界定時,要弄清楚工程的需求到底是什麼;要分析文字的哪個層面上的情感,比如篇章、段落、句子、短語、詞等粒度;是不是要分析所有的文字還是分析其中的部分文字;准許的錯誤誤差是在個什麼範圍內等。
2、情感分析標準的制定
在實際的企業應用中往往要根據行業的特點來制定一些情感分析的標準,甚至要從客戶的立場中去建立標準。根據國雙實際接觸客戶的經驗,在行業上建立標準後,還需要再具體跟客戶做一些適度調整。
3、 語料資料加工、詞典加工
有了上一步的工作, 接下來進行加工語料或者字典的總結。這一步中不同的方法要做的工作不同,基本上是鋪人力的工作,難點是讓各個語料加工人員能協調一致,執行統一的標準 (通常會在這個過程中還會反作用到第二步情感分析標準的制定,因為看到實際資料後會發現標準總會有一些模糊地帶) 。
4、根據資料特徵、規模等選擇合適的方法,並評測方法的優劣
工程中的方法並不是單一的方法,想用乙個方法或者模型來解決各類資料來源上的問題是不可能的。想要做出好的效果一定是採用分而治之的思想,比如,能用規則精準過的就不需要用分類器。
當應用在實際產品時,最好能結合產品的垂直特點,充分利用垂直行業的特性,比如在金融行業、汽車行業,它們一定有自己的行話,這些行話具有非常明顯的規則或者特徵。
二、情感分析方法及工具
情感分析物件的粒度最小是詞彙,但是表達乙個情感的最基本的單位則是句子,詞彙雖然能描述情感的基本資訊,但是單一的詞彙缺少物件,缺少關聯程度,並且不同的詞彙組合在一起所得到的情感程度不同甚至情感傾向都相反。所以以句子為最基本的情感分析粒度是較為合理的。篇章或者段落的情感也可以通過句子的情感來計算。
現階段關於情感分析方法主要有兩類:
(一)、基於詞典的方法:
基於詞典的方法主要通過制定一系列的情感詞典和規則,對文字進行拆句、分析及匹配詞典(一般有詞性分析,句法依存分析),計算情感值,最後通過情感值來作為文字的情感傾向判斷的依據。
做法: 基於詞典的情感分析大致步驟如下:
如果是對篇章或者段落級別的情感分析任務,按照具體的情況,可以以對每個句子進行單一情感分析並融合的形式進行,也可以先抽取情感主題句後進行句子情感分析,得到最終情感分析結果。
1. 常見英文情感詞庫:gi(the general inquirer)、sentiwordnet等;
2. 常見中文情感詞庫:知網、台灣大學的情感極性詞典;
(二)、 基於機器學習的方法:
情感詞典準確率高,但存在召回率比較低的情況。對於不同的領域,構建情感詞典的難度是不一樣的,精準構建成本較高。另外一種解決情感分析的思路是使用機器學習的方法,將情感分析作為乙個有監督的分類問題。對於情感極性的判斷,將目標情感分為三類:正、中、負。對訓練文字進行人工標註,然後進行有監督的機器學習過程,並對測試資料用模型來**結果。
處理過程:
基於機器學習的情感分析思路是將情感分析作為乙個分類問題來處理,具體的流程如下:
1、 文字預處理
文字的預處理過程是使用機器學習作用於文字分類的基礎操作。由於文字是非結構化資料及其特殊性,計算機並不能直接理解,所以需要一系列的預處理操作後,轉換為計算機可以處理的結構化資料。在實際分析中,文字更為複雜,書寫規範也更為隨意,且很有可能摻雜部分雜訊資料。整體上來說,文字預處理模組包括去噪、特徵提取、文字結構化表示等。
特徵抽取:中文最小語素是字,但是往往詞語才具有更明確的語義資訊,但是隨著分詞,可能出現詞語關係丟失的情況。n-元文法正好解決了這個問題,它也是傳統機器學習分類任務中最常用的方法。
文字向量化:對抽取出來的特徵,向量化是乙個很重要的過程,是實現由人可以理解的文字轉換為計算機可以處理資料的重要一步。這一步最常用到的就是詞袋模型(bag-of-words )以及最近新出的連續分布詞向量模型(word embedding)。詞袋模型長度為整個詞表的長度,詞語對應維度置為詞頻,文件的表示往往比較稀疏且維度較高。embedding的表示方式,能夠有效的解決資料稀疏且降維到固定維度,更好的表示語義資訊。對於文件表示,詞袋模型可以直接疊加,而embedding的方法可以使用深度學習的方法,通過pooling得到最終表示。
特徵選擇:在機器學習分類演算法的使用過程中,特徵好壞直接影響機器的準確率及召回率。選擇有利於分類的特徵,可以有效的減少訓練開支及防止模型過擬合,尤其是資料量較大的情況下,這一部分工作的重要性更加明顯。其選擇方法為,將所有的訓練語料輸入,通過一定的方法,選擇最有效的特徵,主要的方法有卡方,資訊熵,dp深層感知器等等。
目前也有一些方法,從比句子粒度更細的層次去識別情感,如基於方面的情感分析(aspect based sentiment analysis),他們從產品的評價屬性等更細粒度的方面對評價主體進**感傾向性分析。
2、分類演算法選擇
文字轉換為機器可處理的結構後,接下來便要選擇進行機器學習的分類演算法。目前,使用率比較高的是深度學習(cnn,rnn)和支援向量機(svm)。深度學習的方法,運算量大,準確率有一定的提高,所以都在做這方面的嘗試。而支援向量機則是比較傳統的方法,其準確率及資料處理能力也比較出色,很多人都在用它來做分類任務。
1. svm分類 libsvm
2. python 機器學習工具scikit-learn
3. 深度學習框架:tensorflow、theano
Python 情感分析
今天修改了情感分析的程式發現之前有一些不足。這個最簡單的實現乙個string情感分析的小函式,載入了積極詞典,消極詞典,程度詞典,以及一些反轉詞等的詞典。這裡我沒有做符號的分析和判斷,因為的東西暫時用不到,需要的童鞋可以自己新增。import jieba import cpickle as pick...
分類 情感分析
此課程是coursera 華盛頓大學開設的machine learning 專項的第一部分內容,僅做筆記 學習使用。通過使用者對amazon 產品的評價,通過對評價文字進行分詞,建立分類器分辨使用者評價屬於好評還是差評 不涉及中評 使用第三方庫為graphlab create。對於句子進行分詞,將帶...
酒店情感分析
對於預料集,可以從這個資料堂拿資料 其中關於酒店情感資料分析部分 data shop page.html?k e9 85 92 e5 ba 97 e6 83 85 e6 84 9f 對於酒店情感分析,很重要的一點就是語料庫要好,同時,分詞時需要的有好的情感詞庫,這樣才能得到更好的分詞結果。在得到好的...